| 
					
				 | 
			
			
				@@ -0,0 +1,86 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  <CyDialog 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      :title 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      ignore-error 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      body-width="60%" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      :body-height="windowSize" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    <el-upload 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        v-model:fileList="fileList" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        accept="image/png" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        drag 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        :onSuccess 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        :headers 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        :action 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        list-type="picture" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        :multiple 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      <el-icon class="el-icon--upload"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <UploadFilled/> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      </el-icon> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      <div class="el-upload__text"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        拖拽上传 或 <em>点击上传</em> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      <template #tip> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <div class="el-upload__tip"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          尺寸小于500KB的 PNG 文件 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      </template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    </el-upload> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  </CyDialog> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+</template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<script setup lang="ts"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import {UploadFilled} from '@element-plus/icons-vue' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import {isDev} from "@/utils/public"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import {UploadFile, UploadFiles, UploadUserFile} from "element-plus"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import {stringIsBlank} from "@/utils/blank-utils"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import XEUtils from "xe-utils"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import CyDialog from "@/components/cy/dialog/src/CyDialog.vue"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const props = withDefaults(defineProps<{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  code?: string, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  name?: string 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}>(), { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  code: null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  name: '' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const windowSize = `calc(${window.innerHeight}px - 500px)` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const multiple = computed(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  return stringIsBlank(props.code) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const title = multiple.value ? "批量上传,根据图片的名称上传,如(3891.png),格式为 工号.png" : props.name + ":上传签名" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const fileList = ref<UploadUserFile[]>([]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const url = isDev ? 'http://172.16.30.66:8706/' : 'http://172.16.32.167:8706' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const action = computed(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  if (multiple.value) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    return url + `/settings/putAutographImage`; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    return url + `/settings/putAutographImage?code=${props.code}`; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const headers = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  token: localStorage.token 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+function onSuccess(response: any, uploadFile: UploadFile, uploadFiles: UploadFiles) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  const index = XEUtils.findLastIndexOf(fileList.value, (item: UploadUserFile) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    return item.uid === uploadFile.uid; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  if (response.code === 200) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    fileList.value[index] = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      ...fileList.value[index], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      ...response.data 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    fileList.value[index].status = 'fail' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+</script> 
			 |