gaoluyang
2025-05-12 a387732bcbcc421aeac814fa078778774f546848
src/views/salesManagement/salesLedger/index.vue
@@ -159,14 +159,16 @@
          <el-col :span="24">
            <el-form-item label="附件材料·:" prop="remark">
              <el-upload
                  :file-list="fileList"
                  action="https://run.mocky.io/v3/9d059bf9-4660-45f2-925d-ce80ad6c4d15"
                  v-model:file-list="fileList"
                  :action="upload.url"
                  multiple
                  ref="fileUpload"
                  :headers="proxy.uploadHeader"
                  auto-upload
                  :headers="upload.headers"
                  :before-upload="handleBeforeUpload"
                  :on-error="handleUploadError"
                  :on-success="handleUploadSuccess"
                  :on-remove="handleRemove"
              >
                <el-button type="primary">上传</el-button>
                <template #tip>
@@ -268,6 +270,7 @@
</template>
<script setup>
import { getToken } from "@/utils/auth"
import pagination from '@/components/PIMTable/Pagination.vue'
import { ref } from 'vue'
import {Search} from "@element-plus/icons-vue";
@@ -278,7 +281,7 @@
  productList,
  customerList,
  addOrUpdateSalesLedger,
  getSalesLedgerWithProducts, delLedger, addOrUpdateSalesLedgerProduct, delProduct
  getSalesLedgerWithProducts, delLedger, addOrUpdateSalesLedgerProduct, delProduct, delLedgerFile
} from "@/api/salesManagement/salesLedger.js";
const { proxy } = getCurrentInstance()
const tableData = ref([])
@@ -294,7 +297,6 @@
})
const total = ref(0)
const fileList = ref([])
const uploadList = ref([])
// 用户信息表单弹框数据
const operationType = ref('')
@@ -353,6 +355,12 @@
  }
})
const { productForm, productRules } = toRefs(productFormData)
const upload = reactive({
  // 上传的地址
  url: import.meta.env.VITE_APP_BASE_API + "/file/upload",
  // 设置上传的请求头部
  headers: { Authorization: "Bearer " + getToken() },
})
// 查询列表
/** 搜索按钮操作 */
@@ -465,6 +473,7 @@
    getSalesLedgerWithProducts({id: row.id}).then(res => {
      form.value = {...res}
      productData.value = form.value.productData
      fileList.value = form.value.salesLedgerFiles
    })
  }
  dialogFormVisible.value = true
@@ -472,11 +481,9 @@
// 上传前校检
function handleBeforeUpload(file) {
  // 校检文件大小
  if (props.fileSize) {
    if (file.size > 1024 * 1024) {
      proxy.$modal.msgError('上传文件大小不能超过10MB!')
      return false
    }
  if (file.size > 1024 * 1024) {
    proxy.$modal.msgError('上传文件大小不能超过10MB!')
    return false
  }
  proxy.$modal.loading("正在上传文件,请稍候...")
  return true
@@ -487,15 +494,26 @@
  proxy.$modal.closeLoading()
}
// 上传成功回调
function handleUploadSuccess(res, file) {
function handleUploadSuccess(res, file, uploadFiles) {
  proxy.$modal.closeLoading()
  if (res.code === 200) {
    uploadList.value.push({ name: res.fileName, url: res.fileName })
    fileList.value = fileList.value.filter(f => f.url !== undefined).concat(uploadList.value)
    uploadList.value = []
    file.tempId = res.data.tempId
    proxy.$modal.msgSuccess("上传成功")
  } else {
    proxy.$modal.closeLoading()
    proxy.$modal.msgError(res.msg)
    proxy.$refs.fileUpload.handleRemove(file)
  }
}
// 移除文件
function handleRemove (file) {
  console.log('handleRemove', file)
  console.log('operationType.value', operationType.value)
  if (operationType.value === 'edit') {
    let ids = []
    ids.push(file.id)
    delLedgerFile(ids).then(res => {
      proxy.$modal.msgSuccess("删除成功")
    })
  }
}
// 提交表单
@@ -508,6 +526,11 @@
        proxy.$modal.msgWarning('请添加产品信息')
        return
      }
      let tempFileIds = []
      if (fileList.value.length > 0) {
        tempFileIds = fileList.value.map(item => item.tempId)
      }
      form.value.tempFileIds = tempFileIds
      addOrUpdateSalesLedger(form.value).then(res => {
        proxy.$modal.msgSuccess("提交成功")
        closeDia()
@@ -632,8 +655,8 @@
  ).then(() => {
    delLedger(ids).then(res => {
      proxy.$modal.msgSuccess("删除成功")
      getList()
    })
    getList()
  }).catch(() => {
    proxy.$modal.msg("已取消")
  })