文件上传

master
lion 4 months ago
parent edac2f8f56
commit 3e45443650

@ -256,6 +256,7 @@ export default function formBuilder(
})
.then((response) => {
window.$_uploading = false;
console.log("response",response)
if (response.status === 200 && !response.data.code) {
if (!(row[info.name] instanceof Array)) {
row[info.name] = [];
@ -276,6 +277,7 @@ export default function formBuilder(
}
})
.catch((err) => {
console.log("err",err)
window.$_uploading = false;
});
},
@ -318,6 +320,11 @@ export default function formBuilder(
window.$_uploading = true;
},
onSuccess: (response, file, fileList) => {
console.log("response",response,file,fileList)
if (response.code) {
fileList.splice(fileList.indexOf(file), 1)
this.$message.warning(response.msg)
}
window.$_uploading = false;
fileList.forEach((file) => {
if (file.response?.data && !file.response?.code) {
@ -331,6 +338,11 @@ export default function formBuilder(
this.form[info.name] = fileList;
},
onError: (err, file, fileList) => {
console.log("err",err,file,fileList)
if (err.code) {
fileList.splice(fileList.indexOf(file), 1)
this.$message.warning(err.msg)
}
window.$_uploading = false;
this.form[info.name] = fileList;
this.$message({
@ -1445,6 +1457,11 @@ export default function formBuilder(
},
onSuccess: (response, file, fileList) => {
window.$_uploading = false;
console.log("response",response,file,fileList)
if (response.code) {
fileList.splice(fileList.indexOf(file), 1)
this.$message.warning(response.msg)
}
fileList.forEach((file) => {
if (file.response?.data && !file.response?.code) {
file.response = file.response?.data;
@ -1457,7 +1474,12 @@ export default function formBuilder(
target[info.name] = fileList;
},
onError: (err, file, fileList) => {
console.log("err",err,file,fileList)
window.$_uploading = false;
if (err.code) {
fileList.splice(fileList.indexOf(file), 1)
this.$message.warning(err.msg)
}
target[info.name] = fileList;
this.$message({
type: "warning",

@ -310,12 +310,9 @@
/>
</el-tab-pane>
<el-tab-pane
:label="`明细拆分前${
beforeSplitBadgeCount ? '' + beforeSplitBadgeCount + '' : ''
}`"
name="beforeSplit"
>
<el-tab-pane label="已支付" name="paid">
<div
style="
margin-bottom: 10px;
@ -326,14 +323,14 @@
"
>
<el-input
v-model="beforeSplitQuery.keywords"
v-model="paidQuery.keywords"
placeholder="关键词"
size="small"
clearable
style="width: 200px"
/>
<el-select
v-model="beforeSplitQuery.creator_department_id"
v-model="paidQuery.creator_department_id"
placeholder="科室"
size="small"
clearable
@ -347,7 +344,7 @@
/>
</el-select>
<el-select
v-model="beforeSplitQuery.created_by"
v-model="paidQuery.created_by"
placeholder="发起人"
size="small"
clearable
@ -361,9 +358,8 @@
:value="item.id"
/>
</el-select>
<el-select
v-model="beforeSplitQuery.chengbanren_id"
v-model="paidQuery.chengbanren_id"
placeholder="采购负责人"
size="small"
clearable
@ -378,7 +374,7 @@
/>
</el-select>
<el-select
v-model="beforeSplitQuery.caigouneirong"
v-model="paidQuery.caigouneirong"
placeholder="采购类别"
size="small"
clearable
@ -392,34 +388,30 @@
:value="item"
/>
</el-select>
<el-button
type="primary"
<el-select
v-model="paidQuery.status"
placeholder="是否支付完成"
size="small"
icon="el-icon-search"
@click="handleBeforeSplitQueryChange"
>查询</el-button
clearable
filterable
style="width: 150px"
>
<el-option
v-for="item in [{label: '是', value: 1}, {label: '否', value: 0}]"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
<el-button
type="primary"
size="small"
icon="el-icon-edit"
@click="handleBatchPayBeforeSplit"
>批量支付</el-button
icon="el-icon-search"
@click="handlePaidQueryChange"
>查询</el-button
>
</div>
<el-table
ref="beforeSplitTable"
:data="beforeSplitRows"
border
style="width: 100%"
row-key="id"
@selection-change="handleBeforeSplitSelectionChange"
>
<el-table-column
type="selection"
width="50"
reserve-selection
></el-table-column>
<el-table :data="paidRows" border style="width: 100%" row-key="id">
<el-table-column label="申请人" width="80" align="center">
<template #default="{ row }">
{{ row.applicant }}
@ -461,105 +453,44 @@
</template>
</el-table-column>
<el-table-column label="本次报销数量" width="120" align="center">
<el-table-column label="已报销数量" width="100" align="center">
<template #default="{ row }">
<el-input-number
v-model="row.applyNum"
:min="0"
:controls="false"
size="small"
:class="{ 'error-input': isApplyNumInvalid(row) }"
style="width: 90px"
@change="validateApplyNum(row)"
/>
{{ row.paidNum }}
</template>
</el-table-column>
<el-table-column label="付款金额" width="120" align="center">
<el-table-column label="付款金额" width="100" align="center">
<template #default="{ row }">
<el-input-number
v-model="row.money"
:min="0"
:precision="2"
:controls="false"
size="small"
style="width: 90px"
/>
{{ row.money }}
</template>
</el-table-column>
<el-table-column label="已报销数量" width="100" align="center">
<el-table-column label="数量" width="100" align="center">
<template #default="{ row }">
{{ row.paidNum }}
{{ row.total }}
</template>
</el-table-column>
<el-table-column label="数量" width="100" align="center">
<el-table-column label="是否支付完成" width="120" align="center">
<template #default="{ row }">
{{ row.total }}
{{ row.fund_log.status ? '是' : '否' }}
</template>
</el-table-column>
<el-table-column label="是否合同审批" width="120" align="center">
<template #default="{ row }">
<el-select
v-model="row.shifouhetongshenpi"
placeholder="是否合同审批"
size="small"
@change="
(val) =>
handleBeforeSplitFieldUpdate(row, 'shifouhetongshenpi', val)
"
style="width: 90px"
>
<el-option label="是" value="是" />
<el-option label="否" value="否" />
</el-select>
{{ row.shifouhetongshenpi || "" }}
</template>
</el-table-column>
<el-table-column label="清单情况" width="120" align="center">
<template #default="{ row }">
<el-select
v-model="row.shifouqingdan"
placeholder="清单情况"
size="small"
@change="
(val) =>
handleBeforeSplitFieldUpdate(row, 'shifouqingdan', val)
"
style="width: 90px"
>
<el-option label="清单内" value="清单内" />
<el-option label="清单外" value="清单外" />
</el-select>
{{ row.shifouqingdan || "" }}
</template>
</el-table-column>
<el-table-column label="是否比价" width="120" align="center">
<el-table-column label="是否比价" width="100" align="center">
<template #default="{ row }">
<el-select
v-model="row.shifoubijia"
placeholder="是否比价"
size="small"
@change="
(val) => handleBeforeSplitFieldUpdate(row, 'shifoubijia', val)
"
style="width: 90px"
>
<el-option label="是" value="是" />
<el-option label="否" value="否" />
</el-select>
{{ row.shifoubijia || "" }}
</template>
</el-table-column>
<el-table-column label="是否收货" width="120" align="center">
<el-table-column label="是否收货" width="100" align="center">
<template #default="{ row }">
<el-select
v-model="row.shifoufahuo"
placeholder="是否收货"
size="small"
@change="
(val) => handleBeforeSplitFieldUpdate(row, 'shifoufahuo', val)
"
style="width: 90px"
>
<el-option label="是" value="是" />
<el-option label="否" value="否" />
</el-select>
{{ row.shifoufahuo || "" }}
</template>
</el-table-column>
@ -603,17 +534,22 @@
</el-table>
<el-pagination
style="margin-top: 10px"
@size-change="handleBeforeSplitSizeChange"
@current-change="handleBeforeSplitPageChange"
:current-page="beforeSplitPage"
@size-change="handlePaidSizeChange"
@current-change="handlePaidPageChange"
:current-page="paidPage"
:page-sizes="[10, 20, 30, 40, 50, 100]"
:page-size="beforeSplitPageSize"
:page-size="paidPageSize"
layout="total, ->, prev, pager, next, sizes, jumper"
:total="beforeSplitTotal"
:total="paidTotal"
/>
</el-tab-pane>
<el-tab-pane label="已支付" name="paid">
<el-tab-pane
:label="`明细拆分前${
beforeSplitBadgeCount ? '' + beforeSplitBadgeCount + '' : ''
}`"
name="beforeSplit"
>
<div
style="
margin-bottom: 10px;
@ -624,14 +560,14 @@
"
>
<el-input
v-model="paidQuery.keywords"
v-model="beforeSplitQuery.keywords"
placeholder="关键词"
size="small"
clearable
style="width: 200px"
/>
<el-select
v-model="paidQuery.creator_department_id"
v-model="beforeSplitQuery.creator_department_id"
placeholder="科室"
size="small"
clearable
@ -645,7 +581,7 @@
/>
</el-select>
<el-select
v-model="paidQuery.created_by"
v-model="beforeSplitQuery.created_by"
placeholder="发起人"
size="small"
clearable
@ -659,8 +595,9 @@
:value="item.id"
/>
</el-select>
<el-select
v-model="paidQuery.chengbanren_id"
v-model="beforeSplitQuery.chengbanren_id"
placeholder="采购负责人"
size="small"
clearable
@ -675,7 +612,7 @@
/>
</el-select>
<el-select
v-model="paidQuery.caigouneirong"
v-model="beforeSplitQuery.caigouneirong"
placeholder="采购类别"
size="small"
clearable
@ -689,30 +626,34 @@
:value="item"
/>
</el-select>
<el-select
v-model="paidQuery.status"
placeholder="是否支付完成"
size="small"
clearable
filterable
style="width: 150px"
>
<el-option
v-for="item in [{label: '是', value: 1}, {label: '否', value: 0}]"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
<el-button
type="primary"
size="small"
icon="el-icon-search"
@click="handlePaidQueryChange"
@click="handleBeforeSplitQueryChange"
>查询</el-button
>
<el-button
type="primary"
size="small"
icon="el-icon-edit"
@click="handleBatchPayBeforeSplit"
>批量支付</el-button
>
</div>
<el-table :data="paidRows" border style="width: 100%" row-key="id">
<el-table
ref="beforeSplitTable"
:data="beforeSplitRows"
border
style="width: 100%"
row-key="id"
@selection-change="handleBeforeSplitSelectionChange"
>
<el-table-column
type="selection"
width="50"
reserve-selection
></el-table-column>
<el-table-column label="申请人" width="80" align="center">
<template #default="{ row }">
{{ row.applicant }}
@ -754,44 +695,105 @@
</template>
</el-table-column>
<el-table-column label="已报销数量" width="100" align="center">
<el-table-column label="本次报销数量" width="120" align="center">
<template #default="{ row }">
{{ row.paidNum }}
<el-input-number
v-model="row.applyNum"
:min="0"
:controls="false"
size="small"
:class="{ 'error-input': isApplyNumInvalid(row) }"
style="width: 90px"
@change="validateApplyNum(row)"
/>
</template>
</el-table-column>
<el-table-column label="付款金额" width="100" align="center">
<el-table-column label="付款金额" width="120" align="center">
<template #default="{ row }">
{{ row.money }}
<el-input-number
v-model="row.money"
:min="0"
:precision="2"
:controls="false"
size="small"
style="width: 90px"
/>
</template>
</el-table-column>
<el-table-column label="数量" width="100" align="center">
<el-table-column label="已报销数量" width="100" align="center">
<template #default="{ row }">
{{ row.total }}
{{ row.paidNum }}
</template>
</el-table-column>
<el-table-column label="是否支付完成" width="120" align="center">
<el-table-column label="数量" width="100" align="center">
<template #default="{ row }">
{{ row.fund_log.status ? '是' : '否' }}
{{ row.total }}
</template>
</el-table-column>
<el-table-column label="是否合同审批" width="120" align="center">
<template #default="{ row }">
{{ row.shifouhetongshenpi || "" }}
<el-select
v-model="row.shifouhetongshenpi"
placeholder="是否合同审批"
size="small"
@change="
(val) =>
handleBeforeSplitFieldUpdate(row, 'shifouhetongshenpi', val)
"
style="width: 90px"
>
<el-option label="是" value="是" />
<el-option label="否" value="否" />
</el-select>
</template>
</el-table-column>
<el-table-column label="清单情况" width="120" align="center">
<template #default="{ row }">
{{ row.shifouqingdan || "" }}
<el-select
v-model="row.shifouqingdan"
placeholder="清单情况"
size="small"
@change="
(val) =>
handleBeforeSplitFieldUpdate(row, 'shifouqingdan', val)
"
style="width: 90px"
>
<el-option label="清单内" value="清单内" />
<el-option label="清单外" value="清单外" />
</el-select>
</template>
</el-table-column>
<el-table-column label="是否比价" width="100" align="center">
<el-table-column label="是否比价" width="120" align="center">
<template #default="{ row }">
{{ row.shifoubijia || "" }}
<el-select
v-model="row.shifoubijia"
placeholder="是否比价"
size="small"
@change="
(val) => handleBeforeSplitFieldUpdate(row, 'shifoubijia', val)
"
style="width: 90px"
>
<el-option label="是" value="是" />
<el-option label="否" value="否" />
</el-select>
</template>
</el-table-column>
<el-table-column label="是否收货" width="100" align="center">
<el-table-column label="是否收货" width="120" align="center">
<template #default="{ row }">
{{ row.shifoufahuo || "" }}
<el-select
v-model="row.shifoufahuo"
placeholder="是否收货"
size="small"
@change="
(val) => handleBeforeSplitFieldUpdate(row, 'shifoufahuo', val)
"
style="width: 90px"
>
<el-option label="是" value="是" />
<el-option label="否" value="否" />
</el-select>
</template>
</el-table-column>
@ -835,13 +837,13 @@
</el-table>
<el-pagination
style="margin-top: 10px"
@size-change="handlePaidSizeChange"
@current-change="handlePaidPageChange"
:current-page="paidPage"
@size-change="handleBeforeSplitSizeChange"
@current-change="handleBeforeSplitPageChange"
:current-page="beforeSplitPage"
:page-sizes="[10, 20, 30, 40, 50, 100]"
:page-size="paidPageSize"
:page-size="beforeSplitPageSize"
layout="total, ->, prev, pager, next, sizes, jumper"
:total="paidTotal"
:total="beforeSplitTotal"
/>
</el-tab-pane>
</el-tabs>
@ -2167,6 +2169,14 @@ export default {
</script>
<style scoped>
::v-deep .el-tabs__nav{
width:100%;
position: relative;
}
::v-deep #tab-beforeSplit{
position: absolute;
right:0;
}
.icon-space {
margin-right: 6px;
}

Loading…
Cancel
Save