24282 před 11 měsíci
rodič
revize
31485f9d5e

+ 1 - 1
jy-starter/src/main/resources/application.yml

@@ -53,7 +53,7 @@ spring:
         # 此属性控制池中连接的最长生命周期,值0表示无限生命周期,默认30分钟
         maxLifetime: 7000000
         # 多久检查一次连接的活性
-        keepaliveTime: 10000
+        keepaliveTime: 30000
 
   data:
     redis:

+ 53 - 11
jy-ui/src/components/FlieUpload/index.vue

@@ -6,23 +6,45 @@ import router from '@/router'
 
 const props = withDefaults(
   defineProps<{
-    modelValue?: string
+    modelValue: string | undefined
     tip?: string
     limit?: number
+    disabled?: boolean
+    width?: string
   }>(),
-  {}
+  {
+    disabled: false,
+    width: '350px'
+  }
 )
 
+const fileList = ref([])
+
 const emits = defineEmits(['update:modelValue'])
 
-const fileList = computed({
+const computedModelValue = computed({
   get() {
     return props.modelValue ? JSON.parse(props.modelValue) : []
   },
   set(newValue) {
-    emits('update:modelValue', JSON.stringify(newValue))
+    const result = newValue.map((item) => {
+      return { name: item.name, url: item.url }
+    })
+    emits('update:modelValue', JSON.stringify(result))
   }
 })
+
+watch(
+  computedModelValue,
+  (data) => {
+    fileList.value = data
+  },
+  {
+    immediate: true,
+    once: true
+  }
+)
+
 const headers = ref({})
 const action = import.meta.env.VITE_APP_BASE_API + '/file/upload'
 
@@ -31,34 +53,54 @@ const beforeUpload = () => {
 }
 
 const onSuccess = (resp: StrAnyObj) => {
-  console.log(resp)
   // 登录失效
   if (resp.code == 401) {
     removeToken()
     ElMessage.error(resp.message)
     router.replace(LOGIN_URL).then()
     return Promise.reject(resp)
-  }
-  else if (resp.code != 200) {
+  } else if (resp.code != 200) {
     ElMessage.error(resp.message)
     return Promise.reject(resp)
   }
-  fileList.value.push(resp.data)
+  computedModelValue.value = [...computedModelValue.value, resp.data]
   ElMessage.success('上传成功')
 }
+
+const onRemove = (data) => {
+  computedModelValue.value = computedModelValue.value.filter(
+    (item) => item.url !== data?.response?.data?.url && item.url !== data.url
+  )
+}
+
+const onPreview = (data) => {
+  window.open(data.url, '_blank')
+}
+
+const onError = (data) => {
+  ElMessage.error(`文件上传失败:${data.message}`)
+}
+
+const onExceed = () => {
+  ElMessage.error(`最多上传${props.limit}个文件`)
+}
 </script>
 
 <template>
   <el-upload
-    v-model:file-list="fileList"
+    :file-list="fileList"
     class="upload-demo"
     :headers="headers"
     :action="action"
-    :multiple="limit > 1"
+    :multiple="!limit || limit > 1"
     :before-upload="beforeUpload"
     :on-success="onSuccess"
+    :on-remove="onRemove"
+    :on-preview="onPreview"
+    :on-error="onError"
+    :on-exceed="onExceed"
     :limit="limit"
-    style="{width: 100%}"
+    :style="{ width }"
   >
     <el-button type="primary">上传文件</el-button>
     <template v-if="tip" #tip>

+ 1 - 1
jy-ui/src/views/business/payment/requests/index.vue

@@ -456,7 +456,7 @@ function updateAmount() {
           <dept-tree-select ref="deptIdRef" v-model="formData.deptId" />
         </template>
         <template #atts>
-          <file-upload v-model="formData.atts" style="width: 50%" />
+          <file-upload v-model="formData.atts" />
         </template>
         <template #detailTable>
           <a-table

+ 1 - 1
pom.xml

@@ -28,7 +28,7 @@
         <nashorn-core.version>15.4</nashorn-core.version>
         <beetl.version>3.17.0.RELEASE</beetl.version>
         <warm-flow.version>1.2.10</warm-flow.version>
-        <esdk-obs-java.version>3.19.7</esdk-obs-java.version>
+        <esdk-obs-java.version>3.24.9</esdk-obs-java.version>
     </properties>
 
     <modules>