From 1f29e50d81c9168a9d5b4e90dbaebc2b6d4a47e3 Mon Sep 17 00:00:00 2001 From: chenhj <1263187585@qq.com> Date: 星期五, 08 八月 2025 17:39:58 +0800 Subject: [PATCH] Merge branch 'dev_ai' of http://114.132.189.42:9002/r/product-inventory-management into dev_ai --- src/views/chatHome/chatHomeIndex/MobileChat.vue | 64 +++-- src/views/collaborativeApproval/approvalProcess/components/approvalDia.vue | 83 ++++++ src/views/chatHome/chatHomeIndex/ai-wd.js | 393 +++++++++++++++++++++++++++++++++++ src/views/chatHome/chatHomeIndex/home.vue | 63 ++--- src/views/chatHome/chatHomeIndex/ai-jz.js | 3 5 files changed, 529 insertions(+), 77 deletions(-) diff --git a/src/views/chatHome/chatHomeIndex/MobileChat.vue b/src/views/chatHome/chatHomeIndex/MobileChat.vue index 36a6dd7..f8bc625 100644 --- a/src/views/chatHome/chatHomeIndex/MobileChat.vue +++ b/src/views/chatHome/chatHomeIndex/MobileChat.vue @@ -49,13 +49,13 @@ </div> </div> </div> -<!-- <div class="chat-input-wrapper">--> -<!-- <div style="display: flex; align-items: center">--> -<!-- <input v-model="inputMsg" @change="sendText" class="input-text" autofocus placeholder="缁橠eepSeek鍙戦�佹秷鎭�" />--> -<!-- <img class="send-icon" src="@/assets/img/emoji/rocket.png" alt="" @click="sendText" />--> + <div class="chat-input-wrapper"> + <div style="display: flex; align-items: center"> + <input v-model="inputMsg" @change="sendText" :disabled="loading" class="input-text" autofocus placeholder="缁欏皬鏅哄彂閫佹秷鎭�" /> + <img class="send-icon" src="@/assets/img/emoji/rocket.png" alt="" @click="sendText" /> -<!-- </div>--> -<!-- </div>--> + </div> + </div> </div> </template> @@ -67,6 +67,7 @@ import headPortrait from '@/assets/img/head_portrait.jpg' import FileCard from '@/components/FileCard.vue' import { ElMessage } from "element-plus" +import {checking} from './ai-wd.js' // 瀹氫箟鍝嶅簲寮忔暟鎹� const route = useRoute() @@ -86,7 +87,7 @@ const isSend = ref(false) const fileList = ref([]) const isProcessing = ref(false) -const loading = ref(false) +const loading = ref(true) const srcImgList = ref([]) // 鍒犻櫎鍥剧墖 @@ -137,20 +138,19 @@ chatType: 0, //淇℃伅绫诲瀷锛�0鏂囧瓧锛�1鍥剧墖 uid: '1001' //uid } - sendMsg(chatMsg) + chatList.value.push(chatMsg) let chatGPT = { headImg: headPortrait, - name: 'DeepSeek', + name: '灏忔櫤', time: new Date().toLocaleTimeString(), msg: "", chatType: 0, //淇℃伅绫诲瀷锛�0鏂囧瓧锛�1鍥剧墖 uid: '1002' //uid } chatList.value.push(chatGPT) // 灏嗘帴鏀跺埌鐨勬秷鎭瓨鍌ㄥ埌 messages 鏁扮粍 + simulateStreamingOutput(chatGPT, inputMsg.value) inputMsg.value = '' - loading.value = true - isSend.value = true - websocketsend(chatMsg.msg) + } else { ElMessage({ message: '娑堟伅涓嶈兘涓虹┖鍝', @@ -206,33 +206,37 @@ // 濡傛灉鏈夋煡璇㈠叧閿瓧锛屽垯妯℃嫙娴佸紡杈撳嚭 if (route.query.keyWord) { - simulateStreamingOutput(replyMsg) + simulateStreamingOutput(replyMsg, route.query.keyWord) } }) // 妯℃嫙娴佸紡杈撳嚭 -const simulateStreamingOutput = (msgObj) => { - // 鐢熸垚0.8-1.8绉掍箣闂寸殑闅忔満寤惰繜 - const delay = Math.random() * 1000 + 800 +const simulateStreamingOutput = async (msgObj, keyWord) => { + loading.value = true + // 鐢熸垚0.8-1.3绉掍箣闂寸殑闅忔満寤惰繜 + const delay = Math.random() * 500 + 800 // 妯℃嫙鍥炲鍐呭锛堝疄闄呭簲鐢ㄤ腑搴斾粠API鑾峰彇锛� - const responseText = `鍏充簬"${route.query.keyWord}"鐨勯棶棰橈紝鎴戞潵涓烘偍瑙g瓟锛歕n\n杩欐槸涓�涓ず渚嬪洖澶嶅唴瀹癸紝灞曠ず娴佸紡杈撳嚭鏁堟灉銆傚湪瀹為檯搴旂敤涓紝杩欓噷浼氭槸鏉ヨ嚜AI鐨勭湡瀹炲洖澶嶅唴瀹广�俓n\n璇风◢绛夛紝鎴戞鍦ㄦ暣鐞嗙浉鍏充俊鎭�...` - + const responseText = `鍏充簬"${keyWord}"鐨勯棶棰橈紝鎴戞潵涓烘偍瑙g瓟锛歕n` + checking(keyWord) isSend.value = true let index = 0 - const interval = setInterval(() => { - isSend.value = true - if (index < responseText.length) { - msgObj.msg += responseText.charAt(index) - index++ - isSend.value = false - scrollBottom() - } else { - clearInterval(interval) - isSend.value = false - } - }, 50) // 姣�50ms杈撳嚭涓�涓瓧绗︼紝妯℃嫙娴佸紡鏁堟灉 + setTimeout(() => { + const interval = setInterval(() => { + isSend.value = true + if (index < responseText.length) { + msgObj.msg += responseText.charAt(index) + index++ + isSend.value = false + scrollBottom() + } else { + clearInterval(interval) + isSend.value = false + loading.value = false + } + }, 50) // 姣�50ms杈撳嚭涓�涓瓧绗︼紝妯℃嫙娴佸紡鏁堟灉 + }, delay) + } </script> diff --git a/src/views/chatHome/chatHomeIndex/ai-jz.js b/src/views/chatHome/chatHomeIndex/ai-jz.js new file mode 100644 index 0000000..02ee6dc --- /dev/null +++ b/src/views/chatHome/chatHomeIndex/ai-jz.js @@ -0,0 +1,3 @@ +export function jam() { + return "" +} \ No newline at end of file diff --git a/src/views/chatHome/chatHomeIndex/ai-wd.js b/src/views/chatHome/chatHomeIndex/ai-wd.js new file mode 100644 index 0000000..c5b83d5 --- /dev/null +++ b/src/views/chatHome/chatHomeIndex/ai-wd.js @@ -0,0 +1,393 @@ +export function gasLeaks() { + return "1. 璁捐涓庤澶囬�夋嫨\n" + + "閫夌敤楂樿川閲忔潗鏂欙細绠¢亾銆侀榾闂ㄣ�佸偍缃愮瓑璁惧搴旈�夌敤鑰愯厫铓�銆佽�愰珮鍘嬬殑鏉愭枡锛屽苟绗﹀悎瀹夊叏鏍囧噯锛堝ASME銆丄PI绛夛級銆俓n" + + "\n" + + "瀹夊叏璁捐锛歕n" + + "\n" + + "瀹夎鍐椾綑鐨勫畨鍏ㄨ缃紙濡傚弻閲嶉榾闂ㄣ�佺垎鐮寸墖銆佸畨鍏ㄩ榾绛夛級銆俓n" + + "\n" + + "璁剧疆姘斾綋娉勬紡妫�娴嬬郴缁燂紙濡傚彲鐕冩皵浣撴姤璀﹀櫒銆佹湁姣掓皵浣撲紶鎰熷櫒锛夈�俓n" + + "\n" + + "閲囩敤灏侀棴寮忕郴缁熻璁★紝鍑忓皯寮�鏀炬帴鍙c�俓n" + + "\n" + + "閫氶绯荤粺锛氬湪鍙兘娉勬紡鐨勫尯鍩熷畨瑁呭己鍒堕�氶璁惧锛岄槻姝㈡皵浣撹仛闆嗐�俓n" + + "\n" + + "2. 瀹夎涓庣淮鎶n" + + "瑙勮寖瀹夎锛氱敱涓撲笟浜哄憳杩涜璁惧瀹夎锛岀‘淇濈閬撶剨鎺ャ�佸瘑灏佺瓑鐜妭鏃犵己闄枫�俓n" + + "\n" + + "瀹氭湡妫�鏌ワ細\n" + + "\n" + + "瀵圭閬撱�侀榾闂ㄣ�佽繛鎺ュ杩涜娉勬紡妫�娴嬶紙濡傚帇鍔涙祴璇曘�佽秴澹版尝妫�娴嬨�佽偉鐨傛按妫�婕忥級銆俓n" + + "\n" + + "鏇存崲鑰佸寲鎴栬厫铓�鐨勯儴浠躲�俓n" + + "\n" + + "棰勯槻鎬х淮鎶わ細鍒跺畾缁存姢璁″垝锛屽畾鏈熸鼎婊戦榾闂ㄣ�佹洿鎹㈠瘑灏佷欢绛夈�俓n" + + "\n" + + "3. 鎿嶄綔绠$悊\n" + + "涓ユ牸鎿嶄綔瑙勭▼锛歕n" + + "\n" + + "鎿嶄綔浜哄憳闇�鍩硅涓婂矖锛岀啛鎮夋皵浣撶壒鎬у拰搴旀�ユ祦绋嬨�俓n" + + "\n" + + "閬垮厤瓒呭帇銆佽秴娓╂垨閿欒鎿嶄綔銆俓n" + + "\n" + + "鐩戞帶绯荤粺锛歕n" + + "\n" + + "瀹炴椂鐩戞祴鍘嬪姏銆佹俯搴︺�佹祦閲忕瓑鍙傛暟锛岃缃嚜鍔ㄦ姤璀﹀拰鑱旈攣鍋滄満瑁呯疆銆俓n" + + "\n" + + "浣跨敤姘斾綋妫�娴嬩华锛堝绾㈠銆佺數鍖栧浼犳劅鍣級鐩戞祴鐜娴撳害銆俓n" + + "\n" + + "鏄庣‘鏍囪瘑锛氬湪鍗遍櫓鍖哄煙鏍囨槑姘斾綋绫诲瀷銆侀闄╃瓑绾у強闃叉姢瑕佹眰銆俓n" + + "\n" + + "4. 娉勬紡搴旀�ユ帾鏂絓n" + + "搴旀�ヨ澶囷細\n" + + "\n" + + "閰嶅闃叉瘨闈㈠叿銆佸懠鍚稿櫒銆侀槻鎶ゆ湇绛変釜浜洪槻鎶よ澶囷紙PPE锛夈�俓n" + + "\n" + + "灏辫繎鏀剧疆娉勬紡搴旀�ュ寘锛堝鍫垫紡鑳躲�佸瘑灏佸甫锛夈�俓n" + + "\n" + + "绱ф�ュ搷搴旓細\n" + + "\n" + + "绔嬪嵆鍒囨柇姘旀簮锛堝叧闂笂娓搁榾闂ㄦ垨鍚姩绱ф�ュ垏鏂郴缁燂級銆俓n" + + "\n" + + "鍚姩閫氶璁惧绋�閲婃皵浣撴祿搴︺�俓n" + + "\n" + + "鐤忔暎浜哄憳骞朵笂鎶ヤ笓涓氶儴闂紙濡傛秷闃层�佺幆淇濓級銆俓n" + + "\n" + + "搴旀�ラ妗堬細瀹氭湡婕旂粌娉勬紡澶勭疆娴佺▼锛岀‘淇濅汉鍛樼啛鎮夊垎宸ャ�俓n" + + "\n" + + "5. 鍌ㄥ瓨涓庤繍杈撳畨鍏╘n" + + "鍌ㄥ瓨瑕佹眰锛歕n" + + "\n" + + "鍌ㄧ綈杩滅鐏簮銆侀珮娓╁尯锛屽苟璁剧疆鍥村牥闃叉鎵╂暎銆俓n" + + "\n" + + "娑插寲姘斾綋鍌ㄧ綈闇�閰嶅娉勫帇瑁呯疆銆俓n" + + "\n" + + "杩愯緭瀹夊叏锛歕n" + + "\n" + + "浣跨敤鍚堣鐨勮繍杈撹溅杈嗭紝鍥哄畾姘旂摱闃叉纰版挒銆俓n" + + "\n" + + "杩愯緭閫斾腑鐩戞帶杞﹁締鐘舵�侊紙濡侴PS銆佹俯搴︿紶鎰熷櫒锛夈�俓n" + + "\n" + + "6. 浜哄憳鍩硅涓庢枃鍖朶n" + + "瀹夊叏鍩硅锛氬畾鏈熷紑灞曟皵浣撳嵄瀹炽�侀槻鎶ゆ帾鏂藉拰搴旀�ュ鐞嗙殑鍩硅銆俓n" + + "\n" + + "瀹夊叏鏂囧寲锛氶紦鍔卞憳宸ユ姤鍛婃綔鍦ㄩ闄╋紝寤虹珛鈥滈浂娉勬紡鈥濈鐞嗙洰鏍囥�俓n" + + "\n" + + "7. 娉曡涓庢爣鍑哱n" + + "閬靛畧鐩稿叧娉曡锛堝OSHA銆丟B 50493銆婄煶娌瑰寲宸ュ彲鐕冩皵浣撳拰鏈夋瘨姘斾綋妫�娴嬫姤璀﹁璁¤鑼冦�嬶級銆俓n" + + "\n" + + "瀹氭湡杩涜瀹夊叏瀹¤锛岀‘淇濈鍚堣涓氭爣鍑嗐�俓n" + + "\n" + + "甯歌鍗遍櫓姘斾綋娉勬紡鐨勯拡瀵规�ф帾鏂絓n" + + "鍙噧姘斾綋锛堝鐢茬兎銆佹阿姘旓級锛氶槻鐖嗙數鍣ㄣ�佹秷闄ら潤鐢点�俓n" + + "\n" + + "鏈夋瘨姘斾綋锛堝姘皵銆佺~鍖栨阿锛夛細閰嶅涓撶敤杩囨护寮忔垨渚涙哀寮忓懠鍚稿櫒銆俓n" + + "\n" + + "绐掓伅鎬ф皵浣擄紙濡傛爱姘斻�佷簩姘у寲纰筹級锛氱洃娴嬫哀姘旀祿搴︼紝閬垮厤瀵嗛棴绌洪棿浣滀笟銆俓n" + + "\n" + + "閫氳繃浠ヤ笂鎺柦鐨勭患鍚堝簲鐢紝鍙ぇ骞呴檷浣庢皵浣撴硠婕忛闄╋紝淇濋殰浜哄憳瀹夊叏鍜岀幆澧冨仴搴枫�傝嫢鍙戠敓娉勬紡锛岄渶浼樺厛纭繚浜哄憳鎾ょ锛屽啀鐢变笓涓氫汉鍛樺缃�俓n" + + "\n" + + "鏈洖绛旂敱 AI 鐢熸垚锛屽唴瀹逛粎渚涘弬鑰冿紝璇蜂粩缁嗙攧鍒��" +} + +export function shipping() { + return "涓�銆佺珛鍗冲簲鎬ュ搷搴擻n" + + "1. 鍙戠幇娉勬紡鏃剁殑绱ф�ヨ鍔╘n" + + "鍋滆溅骞堕殧绂荤幇鍦猴細\n" + + "\n" + + "杩愯緭杞﹁締绔嬪嵆鍋滈潬鍦ㄧ┖鏃枫�佽繙绂讳汉缇ゅ拰鐏簮鐨勪綅缃�俓n" + + "\n" + + "璁剧疆璀︽垝绾匡紙鑷冲皯50~100绫冲崐寰勶紝鏍规嵁姘斾綋鎬ц川璋冩暣锛夛紝绂佹鏃犲叧浜哄憳杩涘叆銆俓n" + + "\n" + + "鍒囨柇娉勬紡婧愶細\n" + + "\n" + + "鍏抽棴瀹瑰櫒闃�闂ㄦ垨灏佸牭鐮存崯澶勶紙濡備娇鐢ㄥ簲鎬ュ牭婕忓伐鍏凤級銆俓n" + + "\n" + + "鑻ラ榾闂ㄦ崯鍧忥紝灏濊瘯杞Щ鍓╀綑姘斾綋鑷冲鐢ㄥ鍣紙闇�涓撲笟浜哄憳鎿嶄綔锛夈�俓n" + + "\n" + + "鎶ヨ涓庝笂鎶ワ細\n" + + "\n" + + "鎷ㄦ墦搴旀�ョ數璇濓紙濡傛秷闃�119銆佺幆淇濋儴闂級锛岃鏄庢皵浣撶被鍨嬨�佹硠婕忛噺銆佷綅缃瓑淇℃伅銆俓n" + + "\n" + + "鑱旂郴杩愯緭鍏徃鍙婅揣涓伙紝鑾峰彇鎶�鏈敮鎻达紙濡侻SDS瀹夊叏鏁版嵁琛級銆俓n" + + "\n" + + "2. 浜哄憳闃叉姢涓庣枏鏁n" + + "绌挎埓闃叉姢瑁呭锛歕n" + + "\n" + + "鍙噧姘斾綋锛氶槻鐖嗗伐鍏�+闃查潤鐢垫湇锛涙湁姣掓皵浣擄細姝e帇寮忓懠鍚稿櫒+闃插寲鏈嶃�俓n" + + "\n" + + "鏃犻槻鎶よ澶囨椂锛岀珛鍗虫挙绂昏嚦涓婇鏂瑰悜銆俓n" + + "\n" + + "鐤忔暎鍛ㄨ竟鍖哄煙锛歕n" + + "\n" + + "鏍规嵁姘斾綋鎵╂暎鑼冨洿锛堝弬鑰冨簲鎬ュ搷搴旀寚鍗桬RG锛夌枏鏁e眳姘戞垨浣滀笟浜哄憳銆俓n" + + "\n" + + "閬垮厤浣庢醇澶勬粸鐣欙紙鏌愪簺姘斾綋姣旂┖姘旈噸锛屽纭寲姘級銆俓n" + + "\n" + + "3. 鎺у埗娉勬紡鎵╂暎\n" + + "鐗╃悊鏂规硶锛歕n" + + "\n" + + "瑕嗙洊娉勬紡鍙o紙濡傜敤娴告按妫夎鍑忓皯鎸ュ彂锛屼絾绂佺敤浜庨亣姘村弽搴旀皵浣撳姘皵锛夈�俓n" + + "\n" + + "绛戝牑鍥村牭娑蹭綋娉勬紡鐗╋紝闃叉娴佸叆涓嬫按閬撴垨娌虫祦銆俓n" + + "\n" + + "鍖栧鏂规硶锛歕n" + + "\n" + + "涓拰澶勭悊锛堝姘ㄦ皵娉勬紡鍠锋磼绋�鐩愰吀锛岄渶涓撲笟浜哄憳鎿嶄綔锛夈�俓n" + + "\n" + + "浣跨敤鍚搁檮鏉愭枡锛堝娲绘�х偔銆佹矙鍦熷惛闄勬湁鏈烘皵浣擄級銆�" +} + +export function operate(){ + return "涓�銆佹搷浣滀笉褰撳彂鐢熷悗鐨勫簲鎬ュ鐞哱n" + + "1. 绔嬪嵆鎺у埗浜嬫晠\n" + + "鍋滄鎿嶄綔锛歕n" + + "\n" + + "鎸変笅绱ф�ュ仠鏈烘寜閽紝鍏抽棴鏈�杩戠殑涓婃父闃�闂ㄣ�俓n" + + "\n" + + "鍚姩搴旀�ラ妗堬細\n" + + "\n" + + "灏忓瀷娉勬紡锛氫娇鐢ㄥ簲鎬ュ牭婕忓伐鍏凤紙濡傚瘑灏佽兌銆佸す鍏凤級銆俓n" + + "\n" + + "澶у瀷娉勬紡锛氱枏鏁d汉鍛橈紝鎶ヨ姹傚姪锛�119/鐜繚閮ㄩ棬锛夈�俓n" + + "\n" + + "2. 浜哄憳瀹夊叏\n" + + "鎾ょ涓庨殧绂伙細\n" + + "\n" + + "閫嗛鎾ょ鑷充笂椋庡悜瀹夊叏鍖猴紝閬垮厤浣庢醇澶勶紙閲嶆皵浣撶Н鑱氾級銆俓n" + + "\n" + + "鎬ユ晳鎺柦锛歕n" + + "\n" + + "鍚稿叆鏈夋瘨姘斾綋锛氱Щ鑷崇┖姘旀柊椴滃锛屽繀瑕佹椂浜哄伐鍛煎惛銆俓n" + + "\n" + + "鐨偆鎺ヨЕ锛氱珛鍗崇敤娓呮按鍐叉礂15鍒嗛挓锛堣厫铓�鎬ф皵浣擄級銆俓n" + + "\n" + + "3. 浜嬫晠璋冩煡涓庢暣鏀筡n" + + "鏍规湰鍘熷洜鍒嗘瀽锛圧CA锛夛細\n" + + "\n" + + "鏄搷浣滃け璇�佸煿璁笉瓒筹紝杩樻槸璁惧缂洪櫡锛焅n" + + "\n" + + "鏀硅繘鎺柦锛歕n" + + "\n" + + "淇鎿嶄綔瑙勭▼锛屽鍔犺绀烘爣璇嗐�俓n" + + "\n" + + "瀵硅矗浠讳汉鍐嶅煿璁紝蹇呰鏃惰皟宀椼��" +} + +export function emergency(){ + return "涓�銆佷紭鍖栧簲鎬ュ搷搴旂殑鍏抽敭鎺柦\n" + + "1. 瀹屽杽搴旀�ラ妗圽n" + + "閽堝鎬ц璁★細\n" + + "\n" + + "鍩轰簬HAZOP锛堝嵄闄╀笌鍙搷浣滄�у垎鏋愶級璇嗗埆鎵�鏈夋綔鍦ㄩ闄╁満鏅�俓n" + + "\n" + + "鍒跺畾鍒嗙骇鍝嶅簲鏈哄埗锛堝皬娉勬紡鐜板満澶勭疆銆佸ぇ娉勬紡鍏ㄥ憳鐤忔暎锛夈�俓n" + + "\n" + + "鏄庣‘鑱岃矗锛歕n" + + "\n" + + "璁剧珛搴旀�ユ寚鎸ラ儴锛屾寚瀹氭�绘寚鎸ャ�侀�氳缁勩�佹姠闄╃粍銆佸尰鐤楃粍绛夈�俓n" + + "\n" + + "纭繚24灏忔椂鍊肩彮鍒跺害锛岃仈绯绘柟寮忓疄鏃舵洿鏂般�俓n" + + "\n" + + "鑱斿姩澶栭儴璧勬簮锛歕n" + + "\n" + + "涓庢秷闃层�佺幆淇濄�佸尰闄㈡彁鍓嶇璁㈡晳鎻村崗璁紝鏄庣‘鍗忎綔娴佺▼銆俓n" + + "\n" + + "2. 寮哄寲搴旀�ヨ祫婧愪繚闅淺n" + + "瑁呭涓庣墿璧勶細\n" + + "\n" + + "閰嶅瓒抽噺涓旀湁鏁堢殑搴旀�ヨ澶囷紝鍖呮嫭锛歕n" + + "\n" + + "涓汉闃叉姢瑁呭锛圥PE锛夛細闃叉瘨闈㈠叿銆佸寲瀛﹂槻鎶ゆ湇銆俓n" + + "\n" + + "鍫垫紡宸ュ叿锛氬瘑灏佽兌銆佸す鍏枫�佸揩閫熷皝鍫靛櫒銆俓n" + + "\n" + + "鍚搁檮/涓拰鏉愭枡锛氭椿鎬х偔銆佹矙鍦熴�佺█纰辨恫锛堢敤浜庨吀鎬ф皵浣擄級銆俓n" + + "\n" + + "瀹氭湡妫�鏌ャ�佺淮鎶ゅ拰鏇存崲锛堝姘旂摱鍘嬪姏銆佷紶鎰熷櫒鐢垫睜锛夈�俓n" + + "\n" + + "搴旀�ヨ溅杈嗕笌閫氶亾锛歕n" + + "\n" + + "纭繚鏁戞彺杞﹁締鍙揩閫熸姷杈炬硠婕忕偣锛堟竻闄よ矾闅滐紝鏍囪瘑搴旀�ヨ矾绾匡級銆俓n" + + "\n" + + "鍏抽敭鍖哄煙璁剧疆搴旀�ユ礂鐪煎櫒銆佸柗娣嬬郴缁熴�俓n" + + "\n" + + "3. 鍔犲己浜哄憳鍩硅涓庤兘鍔涘缓璁綷n" + + "鍒嗗眰鍩硅锛歕n" + + "\n" + + "鍩哄眰浜哄憳锛氭帉鎻″熀鏈簲鎬ュ缃紙濡傚叧闂榾闂ㄣ�佷娇鐢ㄧ伃鐏櫒锛夈�俓n" + + "\n" + + "搴旀�ュ皬缁勶細涓撲笟鍫垫紡銆佷激鍛樻�ユ晳銆佹皵浣撴娴嬫妧鑳姐�俓n" + + "\n" + + "绠$悊灞傦細鎸囨尌鍐崇瓥銆佸獟浣撴矡閫氥�佹硶寰嬪悎瑙勩�俓n" + + "\n" + + "瀹炴垬鍖栬�冩牳锛歕n" + + "\n" + + "閫氳繃妯℃嫙绐佸彂娉勬紡锛堝鐩叉紨锛夋楠屽搷搴旈�熷害銆俓n" + + "\n" + + "涓嶅悎鏍艰�呴渶閲嶆柊鍩硅銆俓n" + + "\n" + + "4. 瀹氭湡婕旂粌涓庢寔缁敼杩沑n" + + "婕旂粌棰戠巼锛歕n" + + "\n" + + "姣忓搴﹁嚦灏�1娆℃闈㈡帹婕旓紝姣忓勾2娆$患鍚堝疄鎴樻紨缁冦�俓n" + + "\n" + + "鍦烘櫙璁捐锛歕n" + + "\n" + + "妯℃嫙澶嶆潅鎯呭喌锛堝澶滈棿鍋滅數銆佸浜哄彈浼わ級銆俓n" + + "\n" + + "寮曞叆鈥滅獊鍙戝彉閲忊�濓紙濡傞鍚戠獊鍙樸�佷簩娆℃硠婕忥級銆俓n" + + "\n" + + "澶嶇洏涓庝紭鍖栵細\n" + + "\n" + + "璁板綍婕旂粌涓殑闂锛堝閫氳寤惰繜銆佽澶囩己澶憋級銆俓n" + + "\n" + + "鏇存柊棰勬骞朵笅鍙戝涔犮�俓n" + + "\n" + + "5. 鎶�鏈崌绾т笌鏅鸿兘鍖栨敮鎸乗n" + + "瀹炴椂鐩戞祴涓庨璀︼細\n" + + "\n" + + "閮ㄧ讲鐗╄仈缃戯紙IoT锛変紶鎰熷櫒锛岀洃娴嬫皵浣撴祿搴︺�佽澶囩姸鎬併�俓n" + + "\n" + + "璁剧疆鑷姩鑱旈攣鎺у埗锛堝娉勬紡鏃惰仈鍔ㄥ叧闂榾闂ㄥ苟鍚姩閫氶锛夈�俓n" + + "\n" + + "搴旀�ラ�氳绯荤粺锛歕n" + + "\n" + + "浣跨敤闃茬垎瀵硅鏈恒�佸崼鏄熺數璇濓紙淇濋殰淇″彿瑕嗙洊锛夈�俓n" + + "\n" + + "寤虹珛搴旀�ュ箍鎾郴缁燂紙濡傚巶鍖鸿鎶ャ�佺煭淇$兢鍙戯級銆俓n" + + "\n" + + "鏁板瓧鍖栭妗堬細\n" + + "\n" + + "灏嗗簲鎬ラ妗堝綍鍏ョЩ鍔ㄧ粓绔紝瀹炵幇涓�閿皟闃呫�佹楠ゆ寚寮曘��" +} + +export function compliance(){ + return "涓�銆佸父瑙佺殑鍚堣鎬ч棶棰榎n" + + "1. 璁稿彲涓庤祫璐ㄧ己澶盶n" + + "闂锛歕n" + + "\n" + + "鏈彇寰楀嵄闄╁寲瀛﹀搧缁忚惀璁稿彲璇佹垨瀹夊叏鐢熶骇璁稿彲璇併�俓n" + + "\n" + + "鐗圭浣滀笟浜哄憳锛堝鍘嬪姏瀹瑰櫒鎿嶄綔宸ワ級鏃犺瘉涓婂矖銆俓n" + + "\n" + + "椋庨櫓锛歕n" + + "\n" + + "鐩戠閮ㄩ棬澶勭綒锛堝缃氭銆佽矗浠ゅ仠浜э級銆俓n" + + "\n" + + "淇濋櫓鎷掕禂锛堜簨鏁呭彂鐢熸椂锛夈�俓n" + + "\n" + + "2. 瀹夊叏璁捐涓嶈揪鏍嘰n" + + "闂锛歕n" + + "\n" + + "鍌ㄧ綈銆佺閬撴湭鎸塆B/T 150锛堝帇鍔涘鍣ㄦ爣鍑嗭級璁捐銆俓n" + + "\n" + + "鏈畨瑁呭彲鐕�/鏈夋瘨姘斾綋鎶ヨ鍣紙杩濆弽GB 50493锛夈�俓n" + + "\n" + + "椋庨櫓锛歕n" + + "\n" + + "璁惧澶辨晥瀵艰嚧娉勬紡鎴栫垎鐐搞�俓n" + + "\n" + + "涓嶇鍚堝簲鎬ョ鐞嗛儴鎴朞SHA妫�鏌ヨ姹傘�俓n" + + "\n" + + "3. 鎿嶄綔涓庣淮鎶よ繚瑙刓n" + + "闂锛歕n" + + "\n" + + "鏈墽琛屼綔涓氱エ鍒跺害锛堝鍔ㄧ伀浣滀笟鏈鎵癸級銆俓n" + + "\n" + + "鏈畾鏈熸楠屽帇鍔涘鍣紙杩濆弽TSG 21-2016锛夈�俓n" + + "\n" + + "椋庨櫓锛歕n" + + "\n" + + "杩濊鎿嶄綔寮曞彂浜嬫晠锛堝鐒婃帴寮曞彂鍙噧姘斾綋鐖嗙偢锛夈�俓n" + + "\n" + + "璁惧鑰佸寲瀵艰嚧绐佸彂娉勬紡銆俓n" + + "\n" + + "4. 搴旀�ョ鐞嗕笉鍚堣\n" + + "闂锛歕n" + + "\n" + + "鏈埗瀹氬簲鎬ラ妗堟垨鏈妗堬紙杩濆弽銆婄敓浜у畨鍏ㄤ簨鏁呭簲鎬ユ潯渚嬨�嬶級銆俓n" + + "\n" + + "鏈厤澶囧簲鎬ョ墿璧勶紙濡傞槻姣掗潰鍏枫�佸牭婕忓伐鍏凤級銆俓n" + + "\n" + + "椋庨櫓锛歕n" + + "\n" + + "浜嬫晠鍙戠敓鏃舵棤娉曟湁鏁堟帶鍒讹紝瀵艰嚧鎹熷け鎵╁ぇ銆俓n" + + "\n" + + "闈复鐢熸�佺幆澧冮儴杩借矗锛堝鍖栧鍝佹薄鏌撳湡澹�/姘翠綋锛夈�俓n" + + "\n" + + "5. 璁板綍涓庢姤鍛婄己澶盶n" + + "闂锛歕n" + + "\n" + + "鏈繚瀛樺畨鍏ㄦ鏌ヨ褰曟垨鍩硅妗f銆俓n" + + "\n" + + "鏈寜瑙勫畾涓婃姤娉勬紡浜嬫晠锛堝鐬掓姤銆佽繜鎶ワ級銆俓n" + + "\n" + + "椋庨櫓锛歕n" + + "\n" + + "浜嬫晠璋冩煡鏃舵棤娉曡嚜璇佸悎瑙勶紝鎵挎媴鍏ㄨ矗銆俓n" + + "\n" + + "琚垪鍏ュ畨鍏ㄧ敓浜ч粦鍚嶅崟锛屽奖鍝嶄紒涓氫俊瑾夈��" +} + +export function monitoring(){ + return "涓�銆佸浐瀹氬紡鐩戞祴鎶�鏈痋n" + + "1. 鍌寲鐕冪儳寮忎紶鎰熷櫒\n" + + "鍘熺悊锛氬彲鐕冩皵浣撳湪閾備笣琛ㄩ潰鐕冪儳瀵艰嚧鐢甸樆鍙樺寲\n" + + "\n" + + "浼樺娍锛氭垚鏈綆锛堬骏500-2000/涓級銆佸搷搴斿揩锛�<10s锛塡n" + + "\n" + + "灞�闄愶細鏄撲腑姣掞紙纭�/纭寲鍚堢墿锛夈�佸鍛界煭锛�2-3骞达級\n" + + "\n" + + "閫傜敤锛氱煶鍖栧巶鍙噧姘旂洃娴嬶紙鐢茬兎銆佹阿姘旂瓑锛塡n" + + "\n" + + "2. 鐢靛寲瀛︿紶鎰熷櫒\n" + + "鍘熺悊锛氭皵浣撲笌鐢佃В娑插彂鐢熸哀鍖栬繕鍘熷弽搴斾骇鐢熺數娴乗n" + + "\n" + + "浼樺娍锛歱pb绾ф娴嬶紙濡侶2S妫�娴嬩笅闄�0.1ppm锛塡n" + + "\n" + + "灞�闄愶細鍙楁俯婀垮害褰卞搷锛堥渶瀹氭湡鏍″噯锛塡n" + + "\n" + + "閫傜敤锛氭湁姣掓皵浣擄紙Cl鈧傘�丯H鈧冦�丆O绛夛級\n" + + "\n" + + "3. 绾㈠鍚告敹寮忥紙NDIR锛塡n" + + "鍘熺悊锛氭皵浣撳鐗瑰畾绾㈠娉㈡鐨勫惛鏀剁巼妫�娴媆n" + + "\n" + + "浼樺娍锛氬厤鏍″噯锛堝鍛�5-10骞达級銆佹姉涓瘨\n" + + "\n" + + "灞�闄愶細楂樻垚鏈紙锟�5000+/涓級\n" + + "\n" + + "閫傜敤锛欳O鈧傘�丆H鈧勭瓑娓╁姘斾綋鐩戞祴\n" + + "\n" + + "4. 婵�鍏夊厜璋憋紙TDLAS锛塡n" + + "鍘熺悊锛氬彲璋冭皭婵�鍏変簩鏋佺鎵弿姘斾綋鍚告敹绾縗n" + + "\n" + + "浼樺娍锛歱pm绾х簿搴︺�佸搷搴攎s绾n" + + "\n" + + "灞�闄愶細闇�鍏夊瀵瑰噯锛堝畨瑁呭鏉傦級\n" + + "\n" + + "閫傜敤锛氱閬撳井娉勬紡妫�娴嬶紙澶╃劧姘旈暱杈撶绾匡級" +} + +export function checking(keyWord){ + if(keyWord.includes("姘斾綋娉勬紡")){ + return gasLeaks(); + } + if(keyWord.includes("瀹瑰櫒澶辨晥")){ + return shipping(); + } + if(keyWord.includes("鎿嶄綔涓嶅綋")){ + return operate(); + } + if(keyWord.includes("鍝嶅簲涓嶈冻")){ + return emergency(); + } + if(keyWord.includes("鍚堣鎬�")){ + return compliance(); + } + if(keyWord.includes("鐩戞祴鎶�鏈�")){ + return monitoring(); + } + return "涓嶅ソ鎰忔�濓紝灏忔櫤杩樺湪鎴愰暱杩囩▼涓紝鎮ㄧ殑闂宸茬粡瓒呰繃灏忔櫤鐨勫鐞嗚寖鍥翠簡銆�"; + +} \ No newline at end of file diff --git a/src/views/chatHome/chatHomeIndex/home.vue b/src/views/chatHome/chatHomeIndex/home.vue index 445ad3c..7796284 100644 --- a/src/views/chatHome/chatHomeIndex/home.vue +++ b/src/views/chatHome/chatHomeIndex/home.vue @@ -3,10 +3,10 @@ <div style="background: white;color: black;font-size: 30px;" class="logo"> <div class="logo-one" style="font-weight: bold"> <!-- <img src="/src/assets/img/logo.png" style="width: 50px;height: 50px;margin: 0 10px" />--> - <div><i>娣崡涓滄柟鍖婚櫌闆嗗洟DeepSeek搴旂敤骞冲彴</i></div> + <div><i>澶фā鍨婣I灏忔櫤姝e湪涓烘偍鏈嶅姟</i></div> </div> <div class="input"> - <input type="text" v-model="keyWord" class="input-text" placeholder="缁橠eepSeek鍙戦�佹秷鎭�" @keyup.enter="sendMsg" /> + <input type="text" v-model="keyWord" class="input-text" placeholder="缁欏皬鏅哄彂閫佹秷鎭�" @keyup.enter="sendMsg" /> <div style="font-size: 13px;color: #808080;display: flex;justify-content: space-between;padding: 10px;"> <div style="display: flex;justify-content: center;align-items: center;"> <!-- <div style="display: flex;justify-content: center;align-items: center;">--> @@ -29,43 +29,37 @@ <div class="keywords"> <div class="keywordss" @click="sendMsgDefault(keyWordOne)"> <p class="fontSize aaa">{{keyWordOne}}</p> - <p class="fontSize">閫夋嫨绉戠┖:鏍规嵁鐥呮儏閫夋嫨鐩稿簲鐨勭瀹�(濡傚唴绉戙�佸绉戙�佸効绉戠瓑)</p> - <p class="fontSize">鎸傚彿鏂瑰紡:鐜板満鎸傚彿:鍦ㄥ尰闄㈡寕鍙风獥鍙f帓闃熷姙鐞嗐�傜嚎涓婃寕鍙�:閫氳繃鍖婚櫌瀹樼綉銆佸井</p> - <p class="fontSize">淇″叕浼楀彿鎴栫涓夋柟骞冲彴棰勭害...</p> + <p class="fontSize">闃�闂ㄣ�佺閬撴垨瀹瑰櫒瀵嗗皝澶辨晥瀵艰嚧姘斾綋娉勬紡锛堝姘皵銆佹皑姘旓級銆�</p> + <p class="fontSize">鍚庢灉锛氫腑姣掋�佺垎鐐搞�佺幆澧冩薄鏌撱��</p> </div> <div class="keywordss" @click="sendMsgDefault(keyWordTwo)"> <p class="fontSize aaa">{{keyWordTwo}}</p> - <p class="fontSize">鏅�氱梾鎴�:鎺㈣鏃堕棶涓�鑸负姣忓ぉ涓婂崍10:00-12:00锛屼笅鍗�14:00-20.00銆傛瘡娆℃帰瑙嗕汉</p> - <p class="fontSize">鏁颁笉瓒呰繃2浜猴紝鎺㈣鏃堕棿涓嶈秴杩�30鍒嗛挓銆�</p> - <p class="fontSize">閲嶇棁鐩戞姢瀹�(1CU):鎺㈣鏃堕棶杈冪煭锛岄�氬父涓烘瘡澶�15:00-16:00銆傛帰瑙嗕汉鏁�.</p> + <p class="fontSize">閽㈢摱鎴栫綈浣撳洜鏉愭枡鐤插姵銆佽厫铓�鎴栬秴鍘嬬牬瑁�</p> + <p class="fontSize">鍘熷洜锛氭湭瀹氭湡妫�娴嬨�佽繚瑙勫厖瑁呮垨澶栭儴鎾炲嚮銆傘��</p> </div> </div> <div class="keywords"> <div class="keywordss" @click="sendMsgDefault(keyWordFive)"> <p class="fontSize aaa">{{keyWordFive}}</p> - <p class="fontSize">閫夋嫨浣撴濂楅:鏍规嵁涓汉闇�姹傞�夋嫨鍩虹濂楄交鎴栦笓椤规鏉忓銆�</p> - <p class="fontSize">棰勭害鏂瑰紡:绾夸笂棰勭害:閫氳繃鍖婚櫌瀹樼綉銆佸井淇″叕浼楀彿鎴栫涓夋柟骞冲彴棰勭害銆傜數璇濊鲍</p> - <p class="fontSize">绾�:鎷ㄦ墦鍖婚櫌浣撴涓績鐢佃瘽杩涜棰勭害銆傜幇鍦洪绾�:鐩存帴鍒颁綋妫�涓績</p> + <p class="fontSize">瑁呭嵏杩囩▼涓繚瑙勬搷浣滐紙濡傞噹铔惉杩愩�佹贩瑁呯蹇岀墿璐級銆�</p> + <p class="fontSize">杩愯緭閫斾腑鏈浐瀹氬鍣紝瀵艰嚧纰版挒鎴栧�惧�掋��</p> </div> <div class="keywordss" @click="sendMsgDefault(keyWordSix)"> <p class="fontSize aaa">{{keyWordSix}}</p> - <p class="fontSize">鍖荤敓纭鍑洪櫌:涓绘不鍖荤敓璇勪及鎮h�呯梾鎯呭悗锛屽紑鍏峰嚭闄€��</p> - <p class="fontSize">缁撶畻璐圭敤:鎮h�呮垨瀹跺睘鎼哄甫浣忛櫌鎶奸噾鍗曘�佸尰淇濆崱绛夋潗鏂欏埌鍑洪櫌缁撶畻绐楀彛鍔炵悊銆傛牳</p> - <p class="fontSize">瀵硅垂鐢ㄦ槑缁嗭紝鏀粯鑷垂閮ㄥ垎鎴栧姙鐞嗗尰淇濇姤閿�..</p> + <p class="fontSize">缂轰箯娉勬紡搴旀�ラ妗堬紝浜哄憳鍩硅涓嶈冻銆�</p> + <p class="fontSize">鏁戞彺璁惧锛堝闃叉瘨闈㈠叿銆佸牭婕忓伐鍏凤級缂哄け鎴栧け鏁堛��</p> </div> </div> <div class="keywords"> <div class="keywordss" @click="sendMsgDefault(keyWordServen)"> <p class="fontSize aaa">{{keyWordServen}}</p> - <p class="fontSize">闄㈠唴鎶曡瘔:鐩存帴鍚戝尰闄㈠尰鍔$鎴栨偅鑰呮湇鍔′腑蹇冨弽鏄犻棶棰樸�傚~鍐欐姇璇夎〃锛屾彁渚涜缁�</p> - <p class="fontSize">鎯呭喌鍜岃瘉鎹�(濡傜梾鍘嗐�佸綍闊崇瓑)銆�</p> - <p class="fontSize">涓婄骇閮ㄩ棬鎶曡瘔:鍚戝綋鍦板崼鐢熻兘搴峰鍛樹細鎴栧尰鐤楃籂绾疯皟瑙e鍛樹細鎶曡瘔銆傛嫧鎵撯��</p> + <p class="fontSize">鏈彇寰楄繍杈撹祫璐紙濡侫DR/RID绛夊浗闄呰鑼冿級銆�</p> + <p class="fontSize">璺嚎瑙勫垝涓嶅悎瑙勶紙濡傜┛瓒婁汉鍙e瘑闆嗗尯锛夈��</p> </div> <div class="keywordss" @click="sendMsgDefault(keyWordEight)"> <p class="fontSize aaa">{{keyWordEight}}</p> - <p class="fontSize">鐢宠杞櫌:鎮h�呮垨瀹跺睘鍚戜富娌诲尰鐢熸彁鍑鸿浆闄㈢敵璇枫�傚尰鐢熻瘎浼扮梾鎯咃紝纭鏄惁闇�瑕�</p> - <p class="fontSize">杞櫌銆�</p> - <p class="fontSize">寮�鍏疯浆闄㈣瘉鏄�:涓绘不鍖荤敓寮�鍏疯浆闄㈣瘉鏄庯紝璇存槑杞櫌鍘熷洜鍜岀梾鎯�..鈥�</p> + <p class="fontSize">浼犳劅鍣ㄩ儴缃诧紙濡傜孩澶栨皵浣撴帰娴嬪櫒銆佺數鍖栧浼犳劅鍣級銆�</p> + <p class="fontSize">瀹炴椂鏁版嵁浼犺緭鑷崇洃鎺у钩鍙帮紝瑙﹀彂鎶ヨ銆�</p> </div> </div> </div> @@ -81,22 +75,13 @@ const route = useRoute(); const router = useRouter(); const keyWord = ref(''); -const keyWordOne = ref('鍖婚櫌鎸傚彿娴佺▼鏄�庢牱鐨�?'); -const keyWordTwo = ref('鍖婚櫌鎺㈣鏃堕棶鏈夊摢浜涜瀹�?'); -const keyWordFive = ref('鍖婚櫌濡備綍棰勭害浣撴?'); -const keyWordSix = ref('鍖婚櫌濡備綍鍔炵悊鍑洪櫌鎵嬬画?'); -const keyWordServen = ref('鍖婚櫌濡備綍鎶曡瘔鍖荤枟鏈嶅姟璐ㄩ噺?'); -const keyWordEight = ref('鍖婚櫌濡備綍鍔炵悊杞櫌鎵嬬画?'); +const keyWordOne = ref('鍗遍櫓姘斾綋娉勬紡鎬庝箞鍔�'); +const keyWordTwo = ref('杩愯緭瀹瑰櫒澶辨晥鎬庝箞鍔�'); +const keyWordFive = ref('鎿嶄綔涓嶅綋鎬庝箞鍔�'); +const keyWordSix = ref('搴旀�ュ搷搴斾笉瓒虫�庝箞鍔�'); +const keyWordServen = ref('鍚堣鎬ч棶棰�'); +const keyWordEight = ref('娉勬紡鐩戞祴鎶�鏈湁鍝簺'); -onMounted(() => { - // const script = document.createElement('script'); - // script.src = '/src/assets/js/index.js'; - // // script.type = 'module' - // script.onload = () => { - // console.log('index.js 宸插姞杞�'); - // }; - // document.head.appendChild(script); -}); const sendMsg = () => { router.push({ path: '/main/MobileChat',query:{ keyWord: keyWord.value} }) } @@ -144,13 +129,13 @@ .aaa { font-weight: bold; - font-size: 12px; + font-size: 15px !important; } .fontSize { - font-size: 10px; - height: 15px; - line-height: 15px; + font-size: 13px; + height: 20px; + line-height: 20px; margin: 6px; } } diff --git a/src/views/collaborativeApproval/approvalProcess/components/approvalDia.vue b/src/views/collaborativeApproval/approvalProcess/components/approvalDia.vue index 584a6c2..403cab6 100644 --- a/src/views/collaborativeApproval/approvalProcess/components/approvalDia.vue +++ b/src/views/collaborativeApproval/approvalProcess/components/approvalDia.vue @@ -102,6 +102,10 @@ <div v-if="!activity.isShen" class="node-reason"> <span>瀹℃壒鎰忚锛�</span>{{ activity.approveNodeReason }} </div> + <div v-if="!activity.isShen" class="node-reason"> + <span>绛惧悕锛�</span> + <img :src="activity.urlTem" class="signImg" alt="" v-if="activity.urlTem"/> + </div> <div v-else-if="activity.isShen"> <el-form-item :prop="'activities.' + index + '.approveNodeReason'" @@ -116,7 +120,7 @@ </el-form> <template #footer v-if="operationType === 'approval'"> <div class="dialog-footer"> - <el-button type="primary" @click="openSignatureDialog(2)">涓嶉�氳繃</el-button> + <el-button type="primary" @click="submitForm(2)">涓嶉�氳繃</el-button> <el-button type="primary" @click="openSignatureDialog(1)">閫氳繃</el-button> <el-button @click="closeDia">鍙栨秷</el-button> </div> @@ -152,6 +156,7 @@ import useUserStore from "@/store/modules/user.js"; import {userListNoPageByTenantId} from "@/api/system/user.js"; import { WarningFilled, Edit, Check, MoreFilled } from '@element-plus/icons-vue' +import { getToken } from "@/utils/auth"; const emit = defineEmits(['close']) const { proxy } = getCurrentInstance() @@ -180,6 +185,14 @@ const esign = ref(null); const lineWidth = ref(0); const lineColor = ref("#000000"); + +// 涓婁紶閰嶇疆 +const upload = reactive({ + // 涓婁紶鐨勫湴鍧� + url: import.meta.env.VITE_APP_BASE_API + "/file/upload", + // 璁剧疆涓婁紶鐨勮姹傚ご閮� + headers: { Authorization: "Bearer " + getToken() }, +}); // 鑺傜偣鏍囬 const getNodeTitle = (index, len) => { @@ -215,6 +228,11 @@ activities.value = res.data // 澧炲姞isApproval瀛楁 activities.value.forEach(item => { + if (item.url && item.url.includes('word')) { + item.urlTem = item.url.replaceAll('word', 'img') + } else { + item.urlTem = item.url + } if (item.approveNodeStatus === 2) { item.isApproval = '宸查┏鍥�'; } else if (item.approveNodeStatus === 1) { @@ -243,23 +261,67 @@ const confirmSignature = () => { esign.value.generate().then((res) => { console.log(res); - signatureImg.value = res; - signatureDialogVisible.value = false; - clearSignature() - submitForm(submitStatus); + // 灏哹ase64杞崲涓轰簩杩涘埗 + const base64Data = res.split(',')[1]; // 绉婚櫎data:image/png;base64,鍓嶇紑 + const binaryString = atob(base64Data); + const bytes = new Uint8Array(binaryString.length); + for (let i = 0; i < binaryString.length; i++) { + bytes[i] = binaryString.charCodeAt(i); + } + signatureImg.value = bytes; + + // 鍒涘缓鏂囦欢瀵硅薄鐢ㄤ簬涓婁紶 + const blob = new Blob([bytes], { type: 'image/png' }); + const file = new File([blob], 'signature.png', { type: 'image/png' }); + + // 鍒涘缓FormData + const formData = new FormData(); + formData.append('file', file); + + // 涓婁紶绛惧悕鍥剧墖 + fetch(upload.url, { + method: 'POST', + headers: upload.headers, + body: formData + }) + .then(response => response.json()) + .then(data => { + if (data.code === 200) { + console.log('data---', data) + let tempFileIds = []; + tempFileIds.push(data.data.tempId); + signatureDialogVisible.value = false; + clearSignature(); + // 鍙湁閫氳繃鏃舵墠浼犻�掔鍚嶆枃浠禝D + if (submitStatus === 1) { + submitForm(submitStatus, tempFileIds); + } else { + submitForm(submitStatus); + } + } else { + proxy.$modal.msgError("绛惧悕鍥剧墖涓婁紶澶辫触锛�" + data.msg); + } + }) + .catch(error => { + console.error('涓婁紶澶辫触:', error); + proxy.$modal.msgError("绛惧悕鍥剧墖涓婁紶澶辫触"); + }); }).catch((err) => { console.log(err); proxy.$modal.msgWarning("璇峰厛绛惧悕锛�"); }) }; // 鎻愪氦瀹℃壒 -const submitForm = (status) => { +const submitForm = (status, tempFileIds) => { const filteredActivities = activities.value.filter(activity => activity.isShen); filteredActivities[0].approveNodeStatus = status; - filteredActivities[0].signatureImg = signatureImg.value; // 鏂板绛惧悕鍥剧墖瀛楁 + // 鍙湁閫氳繃鏃舵墠闇�瑕佺鍚� + if (status === 1 && tempFileIds) { + filteredActivities[0].tempFileIds = tempFileIds; + } // 鍒ゆ柇鏄惁涓烘渶鍚庝竴姝� const isLast = activities.value.findIndex(a => a.isShen) === activities.value.length-1; - updateApproveNode({ ...filteredActivities[0], isLast, signatureImg: signatureImg.value }).then(() => { + updateApproveNode({ ...filteredActivities[0], isLast }).then(() => { proxy.$modal.msgSuccess("鎻愪氦鎴愬姛"); closeDia(); }); @@ -301,4 +363,9 @@ height: 30px; border-radius: 50px; } +.signImg { + cursor: pointer; + width: 200px; + height: 60px; +} </style> \ No newline at end of file -- Gitblit v1.9.3