|
|
|
@ -1,57 +1,100 @@
|
|
|
|
|
<template>
|
|
|
|
|
<div class="JNPF-common-layout">
|
|
|
|
|
|
|
|
|
|
<div class="JNPF-common-layout-center">
|
|
|
|
|
<el-row class="JNPF-common-search-box" :gutter="16">
|
|
|
|
|
<el-form @submit.native.prevent>
|
|
|
|
|
<el-col :span="6">
|
|
|
|
|
<el-form-item label="磅单号">
|
|
|
|
|
<el-input v-model="query.poundlistNo" placeholder="请输入" clearable></el-input>
|
|
|
|
|
<el-input
|
|
|
|
|
v-model="query.poundlistNo"
|
|
|
|
|
placeholder="请输入"
|
|
|
|
|
clearable
|
|
|
|
|
></el-input>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-col>
|
|
|
|
|
<template v-if="showAll">
|
|
|
|
|
<el-col :span="6">
|
|
|
|
|
<el-form-item label="物料名称">
|
|
|
|
|
<el-input v-model="query.materialName" placeholder="请输入" clearable></el-input>
|
|
|
|
|
<el-input
|
|
|
|
|
v-model="query.materialName"
|
|
|
|
|
placeholder="请输入"
|
|
|
|
|
clearable
|
|
|
|
|
></el-input>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-col>
|
|
|
|
|
<el-col :span="6">
|
|
|
|
|
<el-form-item label="客户">
|
|
|
|
|
<el-input v-model="query.customerName" placeholder="请输入" clearable></el-input>
|
|
|
|
|
<el-input
|
|
|
|
|
v-model="query.customerName"
|
|
|
|
|
placeholder="请输入"
|
|
|
|
|
clearable
|
|
|
|
|
></el-input>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-col>
|
|
|
|
|
<el-col :span="6">
|
|
|
|
|
<el-form-item label="销售合同">
|
|
|
|
|
<el-input v-model="query.salesName" placeholder="请输入" clearable></el-input>
|
|
|
|
|
<el-input
|
|
|
|
|
v-model="query.salesName"
|
|
|
|
|
placeholder="请输入"
|
|
|
|
|
clearable
|
|
|
|
|
></el-input>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-col>
|
|
|
|
|
<el-col :span="6">
|
|
|
|
|
<el-form-item label="业务员名称">
|
|
|
|
|
<el-input v-model="query.businessName" placeholder="请输入" clearable></el-input>
|
|
|
|
|
<el-input
|
|
|
|
|
v-model="query.businessName"
|
|
|
|
|
placeholder="请输入"
|
|
|
|
|
clearable
|
|
|
|
|
></el-input>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-col>
|
|
|
|
|
<el-col :span="6">
|
|
|
|
|
<el-form-item label="车牌号">
|
|
|
|
|
<el-input v-model="query.vehicleName" placeholder="请输入" clearable></el-input>
|
|
|
|
|
<el-input
|
|
|
|
|
v-model="query.vehicleName"
|
|
|
|
|
placeholder="请输入"
|
|
|
|
|
clearable
|
|
|
|
|
></el-input>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-col>
|
|
|
|
|
<el-col :span="6">
|
|
|
|
|
<el-form-item label="磅单日期">
|
|
|
|
|
<el-date-picker v-model="query.poundDate" type="daterange"
|
|
|
|
|
value-format="timestamp" format="yyyy-MM-dd" start-placeholder="开始日期"
|
|
|
|
|
end-placeholder="结束日期">
|
|
|
|
|
<el-date-picker
|
|
|
|
|
v-model="query.poundDate"
|
|
|
|
|
type="daterange"
|
|
|
|
|
value-format="timestamp"
|
|
|
|
|
format="yyyy-MM-dd"
|
|
|
|
|
start-placeholder="开始日期"
|
|
|
|
|
end-placeholder="结束日期"
|
|
|
|
|
>
|
|
|
|
|
</el-date-picker>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-col>
|
|
|
|
|
</template>
|
|
|
|
|
<el-col :span="6">
|
|
|
|
|
<el-form-item>
|
|
|
|
|
<el-button type="primary" icon="el-icon-search" @click="search()">查询</el-button>
|
|
|
|
|
<el-button icon="el-icon-refresh-right" @click="resetAll()">重置</el-button>
|
|
|
|
|
<el-button type="text" icon="el-icon-arrow-down" @click="showAll=true"
|
|
|
|
|
v-if="!showAll">展开</el-button>
|
|
|
|
|
<el-button type="text" icon="el-icon-arrow-up" @click="showAll=false" v-else>
|
|
|
|
|
收起</el-button>
|
|
|
|
|
<el-button type="primary" icon="el-icon-search" @click="search()"
|
|
|
|
|
>查询</el-button
|
|
|
|
|
>
|
|
|
|
|
<el-button icon="el-icon-refresh-right" @click="resetAll()"
|
|
|
|
|
>重置</el-button
|
|
|
|
|
>
|
|
|
|
|
<el-button
|
|
|
|
|
type="text"
|
|
|
|
|
icon="el-icon-arrow-down"
|
|
|
|
|
@click="showAll = true"
|
|
|
|
|
v-if="!showAll"
|
|
|
|
|
>展开</el-button
|
|
|
|
|
>
|
|
|
|
|
<el-button
|
|
|
|
|
type="text"
|
|
|
|
|
icon="el-icon-arrow-up"
|
|
|
|
|
@click="showAll = false"
|
|
|
|
|
v-else
|
|
|
|
|
>
|
|
|
|
|
收起</el-button
|
|
|
|
|
>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-col>
|
|
|
|
|
</el-form>
|
|
|
|
@ -59,144 +102,304 @@
|
|
|
|
|
<div class="JNPF-common-layout-main JNPF-flex-main">
|
|
|
|
|
<div class="JNPF-common-head">
|
|
|
|
|
<div>
|
|
|
|
|
<el-button type="text" icon="el-icon-plus" @click="addOrUpdateHandle()" v-has="'btn_add'">新增
|
|
|
|
|
<el-button
|
|
|
|
|
type="text"
|
|
|
|
|
icon="el-icon-plus"
|
|
|
|
|
@click="addOrUpdateHandle()"
|
|
|
|
|
v-has="'btn_add'"
|
|
|
|
|
>新增
|
|
|
|
|
</el-button>
|
|
|
|
|
<el-button type="text" icon="el-icon-download" @click="exportData()" v-has="'btn_download'">导出
|
|
|
|
|
<el-button
|
|
|
|
|
type="text"
|
|
|
|
|
icon="el-icon-download"
|
|
|
|
|
@click="exportData()"
|
|
|
|
|
v-has="'btn_download'"
|
|
|
|
|
>导出
|
|
|
|
|
</el-button>
|
|
|
|
|
<!-- <el-button type="text" icon="el-icon-download" @click=""v-has="'btn_upload'">导入
|
|
|
|
|
</el-button> -->
|
|
|
|
|
<el-button type="text" icon="el-icon-delete" @click="handleBatchRemoveDel()" v-has="'btn_batchRemove'">批量删除
|
|
|
|
|
<el-button
|
|
|
|
|
type="text"
|
|
|
|
|
icon="el-icon-delete"
|
|
|
|
|
@click="handleBatchRemoveDel()"
|
|
|
|
|
v-has="'btn_batchRemove'"
|
|
|
|
|
>批量删除
|
|
|
|
|
</el-button>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="JNPF-common-head-right">
|
|
|
|
|
<el-tooltip effect="dark" content="刷新" placement="top">
|
|
|
|
|
<el-link icon="icon-ym icon-ym-Refresh JNPF-common-head-icon" :underline="false"
|
|
|
|
|
@click="reset()"/>
|
|
|
|
|
<el-link
|
|
|
|
|
icon="icon-ym icon-ym-Refresh JNPF-common-head-icon"
|
|
|
|
|
:underline="false"
|
|
|
|
|
@click="reset()"
|
|
|
|
|
/>
|
|
|
|
|
</el-tooltip>
|
|
|
|
|
<screenfull isContainer/>
|
|
|
|
|
<screenfull isContainer />
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<JNPF-table v-loading="listLoading" :data="list" @sort-change='sortChange' has-c
|
|
|
|
|
@selection-change="handleSelectionChange" custom-column border show-summary :summary-method="getSummaries">
|
|
|
|
|
<el-table-column prop="poundDate" label="磅单日期" width="200" align="center" sortable
|
|
|
|
|
<JNPF-table
|
|
|
|
|
v-loading="listLoading"
|
|
|
|
|
:data="list"
|
|
|
|
|
@sort-change="sortChange"
|
|
|
|
|
has-c
|
|
|
|
|
@selection-change="handleSelectionChange"
|
|
|
|
|
custom-column
|
|
|
|
|
border
|
|
|
|
|
show-summary
|
|
|
|
|
:summary-method="getSummaries"
|
|
|
|
|
>
|
|
|
|
|
<el-table-column type="index" fixed="left" width="1" />
|
|
|
|
|
<el-table-column
|
|
|
|
|
prop="poundDate"
|
|
|
|
|
label="磅单日期"
|
|
|
|
|
width="200"
|
|
|
|
|
align="center"
|
|
|
|
|
sortable
|
|
|
|
|
/>
|
|
|
|
|
<el-table-column prop="poundlistNo" label="磅单号" width="200" align="center" sortable
|
|
|
|
|
<el-table-column
|
|
|
|
|
prop="poundlistNo"
|
|
|
|
|
label="磅单号"
|
|
|
|
|
width="200"
|
|
|
|
|
align="center"
|
|
|
|
|
sortable
|
|
|
|
|
/>
|
|
|
|
|
<el-table-column prop="vehicleName" label="车牌号" width="150" align="center" sortable
|
|
|
|
|
<el-table-column
|
|
|
|
|
prop="vehicleName"
|
|
|
|
|
label="车牌号"
|
|
|
|
|
width="150"
|
|
|
|
|
align="center"
|
|
|
|
|
sortable
|
|
|
|
|
/>
|
|
|
|
|
<el-table-column prop="materialName" label="物料名称" width="200" align="center" sortable
|
|
|
|
|
<el-table-column
|
|
|
|
|
prop="materialName"
|
|
|
|
|
label="物料名称"
|
|
|
|
|
width="200"
|
|
|
|
|
align="center"
|
|
|
|
|
sortable
|
|
|
|
|
/>
|
|
|
|
|
<el-table-column prop="grossWeight" label="毛重" width="120" align="center" sortable
|
|
|
|
|
<el-table-column
|
|
|
|
|
prop="grossWeight"
|
|
|
|
|
label="毛重"
|
|
|
|
|
width="120"
|
|
|
|
|
align="center"
|
|
|
|
|
sortable
|
|
|
|
|
/>
|
|
|
|
|
<el-table-column prop="tareWeight" label="皮重" width="120" align="center" sortable
|
|
|
|
|
<el-table-column
|
|
|
|
|
prop="tareWeight"
|
|
|
|
|
label="皮重"
|
|
|
|
|
width="120"
|
|
|
|
|
align="center"
|
|
|
|
|
sortable
|
|
|
|
|
/>
|
|
|
|
|
<el-table-column prop="buckleWeight" label="扣重" width="120" align="center" sortable
|
|
|
|
|
<el-table-column
|
|
|
|
|
prop="buckleWeight"
|
|
|
|
|
label="扣重"
|
|
|
|
|
width="120"
|
|
|
|
|
align="center"
|
|
|
|
|
sortable
|
|
|
|
|
/>
|
|
|
|
|
<el-table-column prop="netWeight" label="净重" width="120" align="center" sortable
|
|
|
|
|
<el-table-column
|
|
|
|
|
prop="netWeight"
|
|
|
|
|
label="净重"
|
|
|
|
|
width="120"
|
|
|
|
|
align="center"
|
|
|
|
|
sortable
|
|
|
|
|
/>
|
|
|
|
|
<el-table-column prop="customerName" label="客户名称" width="200" align="center" sortable
|
|
|
|
|
<el-table-column
|
|
|
|
|
prop="customerName"
|
|
|
|
|
label="客户名称"
|
|
|
|
|
width="200"
|
|
|
|
|
align="center"
|
|
|
|
|
sortable
|
|
|
|
|
/>
|
|
|
|
|
<el-table-column prop="salesName" label="销售合同" width="150" align="center" sortable
|
|
|
|
|
<el-table-column
|
|
|
|
|
prop="salesName"
|
|
|
|
|
label="销售合同"
|
|
|
|
|
width="150"
|
|
|
|
|
align="center"
|
|
|
|
|
sortable
|
|
|
|
|
/>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<el-table-column label="是否垫资" width="120" sortable prop="advance" align="center" >
|
|
|
|
|
<el-table-column
|
|
|
|
|
label="是否垫资"
|
|
|
|
|
width="120"
|
|
|
|
|
sortable
|
|
|
|
|
prop="advance"
|
|
|
|
|
align="center"
|
|
|
|
|
>
|
|
|
|
|
<template slot-scope="scope">
|
|
|
|
|
{{ scope.row.advance | dynamicText(advanceOptions) }}
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
|
|
|
|
|
<el-table-column label="运输类型" width="120" sortable prop="transportType" align="center" >
|
|
|
|
|
<el-table-column
|
|
|
|
|
label="运输类型"
|
|
|
|
|
width="120"
|
|
|
|
|
sortable
|
|
|
|
|
prop="transportType"
|
|
|
|
|
align="center"
|
|
|
|
|
>
|
|
|
|
|
<template slot-scope="scope">
|
|
|
|
|
{{ scope.row.transportType | dynamicText(transportTypeOptions) }}
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
|
|
|
|
|
<el-table-column prop="transportPrice" label="运费" width="150" align="center" sortable
|
|
|
|
|
<el-table-column
|
|
|
|
|
prop="transportPrice"
|
|
|
|
|
label="运费"
|
|
|
|
|
width="150"
|
|
|
|
|
align="center"
|
|
|
|
|
sortable
|
|
|
|
|
/>
|
|
|
|
|
<el-table-column
|
|
|
|
|
prop="salesPrice"
|
|
|
|
|
label="销售价格"
|
|
|
|
|
width="150"
|
|
|
|
|
align="center"
|
|
|
|
|
sortable
|
|
|
|
|
/>
|
|
|
|
|
<el-table-column prop="salesPrice" label="销售价格" width="150" align="center" sortable
|
|
|
|
|
<el-table-column
|
|
|
|
|
prop="collectPrice"
|
|
|
|
|
sortable
|
|
|
|
|
label="收货价格"
|
|
|
|
|
width="150"
|
|
|
|
|
align="center"
|
|
|
|
|
/>
|
|
|
|
|
<el-table-column prop="collectPrice" sortable label="收货价格" width="150" align="center" />
|
|
|
|
|
<el-table-column prop="businessName" label="业务员" width="120" align="center" sortable
|
|
|
|
|
<el-table-column
|
|
|
|
|
prop="businessName"
|
|
|
|
|
label="业务员"
|
|
|
|
|
width="120"
|
|
|
|
|
align="center"
|
|
|
|
|
sortable
|
|
|
|
|
/>
|
|
|
|
|
<el-table-column prop="remark" label="备注" width="200" align="center" sortable
|
|
|
|
|
<el-table-column
|
|
|
|
|
prop="remark"
|
|
|
|
|
label="备注"
|
|
|
|
|
width="200"
|
|
|
|
|
align="center"
|
|
|
|
|
sortable
|
|
|
|
|
/>
|
|
|
|
|
<el-table-column prop="poundPictures" label="磅单图片" width="150" align="center">
|
|
|
|
|
<el-table-column
|
|
|
|
|
prop="poundPictures"
|
|
|
|
|
label="磅单图片"
|
|
|
|
|
width="150"
|
|
|
|
|
align="center"
|
|
|
|
|
>
|
|
|
|
|
<template slot-scope="scope">
|
|
|
|
|
<span v-for="(item,index) in JSON.parse(scope.row.poundPictures)" :key="index">
|
|
|
|
|
<span
|
|
|
|
|
v-for="(item, index) in JSON.parse(scope.row.poundPictures)"
|
|
|
|
|
:key="index"
|
|
|
|
|
>
|
|
|
|
|
<el-popover placement="bottom" trigger="click" width="500">
|
|
|
|
|
<img :src="define.comUrl + `${item.url}`" width="100%" />
|
|
|
|
|
<img
|
|
|
|
|
slot="reference"
|
|
|
|
|
:src="define.comUrl + `${item.url}`"
|
|
|
|
|
:alt="define.comUrl + `${item.url}`"
|
|
|
|
|
style="max-height: 70px;max-width: 70px; padding: 5px"
|
|
|
|
|
style="max-height: 70px; max-width: 70px; padding: 5px"
|
|
|
|
|
/>
|
|
|
|
|
</el-popover>
|
|
|
|
|
</span>
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column prop="vehiclePictures" label="车辆图片" width="150" align="center">
|
|
|
|
|
<el-table-column
|
|
|
|
|
prop="vehiclePictures"
|
|
|
|
|
label="车辆图片"
|
|
|
|
|
width="150"
|
|
|
|
|
align="center"
|
|
|
|
|
>
|
|
|
|
|
<template slot-scope="scope">
|
|
|
|
|
<span v-for="(item,index) in JSON.parse(scope.row.vehiclePictures)" :key="index">
|
|
|
|
|
<span
|
|
|
|
|
v-for="(item, index) in JSON.parse(scope.row.vehiclePictures)"
|
|
|
|
|
:key="index"
|
|
|
|
|
>
|
|
|
|
|
<el-popover placement="bottom" trigger="click" width="500">
|
|
|
|
|
<img :src="define.comUrl + `${item.url}`" width="100%" />
|
|
|
|
|
<img
|
|
|
|
|
slot="reference"
|
|
|
|
|
:src="define.comUrl + `${item.url}`"
|
|
|
|
|
:alt="define.comUrl + `${item.url}`"
|
|
|
|
|
style="max-height: 70px;max-width: 70px; padding: 5px"
|
|
|
|
|
style="max-height: 70px; max-width: 70px; padding: 5px"
|
|
|
|
|
/>
|
|
|
|
|
</el-popover>
|
|
|
|
|
</span>
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column label="操作" align="center" fixed="right"
|
|
|
|
|
width="200">
|
|
|
|
|
<el-table-column
|
|
|
|
|
label="操作"
|
|
|
|
|
align="center"
|
|
|
|
|
fixed="right"
|
|
|
|
|
width="200"
|
|
|
|
|
>
|
|
|
|
|
<template slot-scope="scope">
|
|
|
|
|
<el-button type="text"
|
|
|
|
|
@click="continueUpload(scope.row.id)" v-has="'btn_submitDisabled'">继续上传
|
|
|
|
|
<el-button
|
|
|
|
|
type="text"
|
|
|
|
|
@click="continueUpload(scope.row.id)"
|
|
|
|
|
v-has="'btn_submitDisabled'"
|
|
|
|
|
>继续上传
|
|
|
|
|
</el-button>
|
|
|
|
|
<el-button type="text"
|
|
|
|
|
@click="addOrUpdateHandle2(scope.row.id)" v-has="'btn_addOrUpdateHandle2'">审核
|
|
|
|
|
<el-button
|
|
|
|
|
type="text"
|
|
|
|
|
@click="addOrUpdateHandle2(scope.row.id)"
|
|
|
|
|
v-has="'btn_addOrUpdateHandle2'"
|
|
|
|
|
>审核
|
|
|
|
|
</el-button>
|
|
|
|
|
<el-button type="text"
|
|
|
|
|
@click="addOrUpdateHandle3(scope.row.id)" v-has="'btn_edit'">编辑
|
|
|
|
|
<el-button
|
|
|
|
|
type="text"
|
|
|
|
|
@click="addOrUpdateHandle3(scope.row.id)"
|
|
|
|
|
v-has="'btn_edit'"
|
|
|
|
|
>编辑
|
|
|
|
|
</el-button>
|
|
|
|
|
<el-button type="text" class="JNPF-table-delBtn" @click="handleDel(scope.row.id)" v-has="'btn_remove'">删除
|
|
|
|
|
<el-button
|
|
|
|
|
type="text"
|
|
|
|
|
class="JNPF-table-delBtn"
|
|
|
|
|
@click="handleDel(scope.row.id)"
|
|
|
|
|
v-has="'btn_remove'"
|
|
|
|
|
>删除
|
|
|
|
|
</el-button>
|
|
|
|
|
<el-button type="text"
|
|
|
|
|
@click="goDetail(scope.row.id)" v-has="'btn_detail'">详情
|
|
|
|
|
<el-button
|
|
|
|
|
type="text"
|
|
|
|
|
@click="goDetail(scope.row.id)"
|
|
|
|
|
v-has="'btn_detail'"
|
|
|
|
|
>详情
|
|
|
|
|
</el-button>
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
</JNPF-table>
|
|
|
|
|
<pagination :total="total" :page.sync="listQuery.currentPage" :limit.sync="listQuery.pageSize"
|
|
|
|
|
@pagination="initData"/>
|
|
|
|
|
<pagination
|
|
|
|
|
:total="total"
|
|
|
|
|
:page.sync="listQuery.currentPage"
|
|
|
|
|
:limit.sync="listQuery.pageSize"
|
|
|
|
|
@pagination="initData"
|
|
|
|
|
/>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<JNPF-Form v-if="formVisible" ref="JNPFForm" @refresh="refresh"/>
|
|
|
|
|
<JNPF-Form2 v-if="formVisible2" ref="JNPFForm2" @refresh="refresh2"/>
|
|
|
|
|
<JNPF-Form3 v-if="formVisible3" ref="JNPFForm3" @refresh="refresh3"/>
|
|
|
|
|
<JNPF-Form4 v-if="formVisible4" ref="JNPFForm4" @refresh="refresh4"/>
|
|
|
|
|
<ExportBox v-if="exportBoxVisible" ref="ExportBox" @download="download"/>
|
|
|
|
|
<Detail v-if="detailVisible" ref="Detail" @refresh="detailVisible=false"/>
|
|
|
|
|
<JNPF-Form v-if="formVisible" ref="JNPFForm" @refresh="refresh" />
|
|
|
|
|
<JNPF-Form2 v-if="formVisible2" ref="JNPFForm2" @refresh="refresh2" />
|
|
|
|
|
<JNPF-Form3 v-if="formVisible3" ref="JNPFForm3" @refresh="refresh3" />
|
|
|
|
|
<JNPF-Form4 v-if="formVisible4" ref="JNPFForm4" @refresh="refresh4" />
|
|
|
|
|
<ExportBox v-if="exportBoxVisible" ref="ExportBox" @download="download" />
|
|
|
|
|
<Detail
|
|
|
|
|
v-if="detailVisible"
|
|
|
|
|
ref="Detail"
|
|
|
|
|
@refresh="detailVisible = false"
|
|
|
|
|
/>
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<script>
|
|
|
|
|
import request from '@/utils/request'
|
|
|
|
|
import { getDictionaryDataSelector } from '@/api/systemData/dictionary'
|
|
|
|
|
import JNPFForm from './Form'
|
|
|
|
|
import JNPFForm2 from './Form2'
|
|
|
|
|
import JNPFForm3 from './Form3'
|
|
|
|
|
import JNPFForm4 from './Form4'
|
|
|
|
|
import request from "@/utils/request";
|
|
|
|
|
import { getDictionaryDataSelector } from "@/api/systemData/dictionary";
|
|
|
|
|
import JNPFForm from "./Form";
|
|
|
|
|
import JNPFForm2 from "./Form2";
|
|
|
|
|
import JNPFForm3 from "./Form3";
|
|
|
|
|
import JNPFForm4 from "./Form4";
|
|
|
|
|
|
|
|
|
|
import ExportBox from './ExportBox'
|
|
|
|
|
import { getDataInterfaceRes } from '@/api/systemData/dataInterface'
|
|
|
|
|
import Detail from './Detail'
|
|
|
|
|
import ExportBox from "./ExportBox";
|
|
|
|
|
import { getDataInterfaceRes } from "@/api/systemData/dataInterface";
|
|
|
|
|
import Detail from "./Detail";
|
|
|
|
|
|
|
|
|
|
export default {
|
|
|
|
|
export default {
|
|
|
|
|
components: { JNPFForm, JNPFForm2, JNPFForm3, JNPFForm4, ExportBox, Detail },
|
|
|
|
|
data() {
|
|
|
|
|
return {
|
|
|
|
@ -204,21 +407,22 @@
|
|
|
|
|
detailVisible: false,
|
|
|
|
|
query: {
|
|
|
|
|
poundDate: undefined,
|
|
|
|
|
poundlistNo: undefined
|
|
|
|
|
poundlistNo: undefined,
|
|
|
|
|
},
|
|
|
|
|
treeProps: {
|
|
|
|
|
children: 'children',
|
|
|
|
|
label: 'fullName',
|
|
|
|
|
value: 'id'
|
|
|
|
|
children: "children",
|
|
|
|
|
label: "fullName",
|
|
|
|
|
value: "id",
|
|
|
|
|
},
|
|
|
|
|
list: [],
|
|
|
|
|
listLoading: true,
|
|
|
|
|
multipleSelection: [], total: 0,
|
|
|
|
|
multipleSelection: [],
|
|
|
|
|
total: 0,
|
|
|
|
|
listQuery: {
|
|
|
|
|
currentPage: 1,
|
|
|
|
|
pageSize: 20,
|
|
|
|
|
sort: 'desc',
|
|
|
|
|
sidx: ''
|
|
|
|
|
sort: "desc",
|
|
|
|
|
sidx: "",
|
|
|
|
|
},
|
|
|
|
|
formVisible: false,
|
|
|
|
|
formVisible2: false,
|
|
|
|
@ -226,44 +430,81 @@
|
|
|
|
|
formVisible4: false,
|
|
|
|
|
exportBoxVisible: false,
|
|
|
|
|
columnList: [
|
|
|
|
|
{ prop: 'poundDate', label: '磅单日期' },
|
|
|
|
|
{ prop: 'poundlistNo', label: '磅单号' },
|
|
|
|
|
{ prop: 'vehicleName', label: '车牌号' },
|
|
|
|
|
{ prop: 'materialName', label: '物料名称' },
|
|
|
|
|
{ prop: 'grossWeight', label: '毛重' },
|
|
|
|
|
{ prop: 'tareWeight', label: '皮重' },
|
|
|
|
|
{ prop: 'buckleWeight', label: '扣重' },
|
|
|
|
|
{ prop: 'netWeight', label: '净重' },
|
|
|
|
|
{ prop: 'customerName', label: '客户名称' },
|
|
|
|
|
{ prop: 'salesName', label: '销售合同' },
|
|
|
|
|
{ prop: 'advance', label: '是否垫资' },
|
|
|
|
|
{ prop: 'transportType', label: '运输类型' },
|
|
|
|
|
{ prop: 'transportPrice', label: '运费' },
|
|
|
|
|
{ prop: 'salesPrice', label: '销售价格' },
|
|
|
|
|
{prop: 'collectPrice', label: '收货价格'},
|
|
|
|
|
{ prop: 'businessName', label: '业务员' },
|
|
|
|
|
{ prop: 'remark', label: '备注' },
|
|
|
|
|
{ prop: 'poundPictures', label: '磅单图片' },
|
|
|
|
|
{ prop: 'vehiclePictures', label: '车辆图片' }
|
|
|
|
|
{ prop: "poundDate", label: "磅单日期" },
|
|
|
|
|
{ prop: "poundlistNo", label: "磅单号" },
|
|
|
|
|
{ prop: "vehicleName", label: "车牌号" },
|
|
|
|
|
{ prop: "materialName", label: "物料名称" },
|
|
|
|
|
{ prop: "grossWeight", label: "毛重" },
|
|
|
|
|
{ prop: "tareWeight", label: "皮重" },
|
|
|
|
|
{ prop: "buckleWeight", label: "扣重" },
|
|
|
|
|
{ prop: "netWeight", label: "净重" },
|
|
|
|
|
{ prop: "customerName", label: "客户名称" },
|
|
|
|
|
{ prop: "salesName", label: "销售合同" },
|
|
|
|
|
{ prop: "advance", label: "是否垫资" },
|
|
|
|
|
{ prop: "transportType", label: "运输类型" },
|
|
|
|
|
{ prop: "transportPrice", label: "运费" },
|
|
|
|
|
{ prop: "salesPrice", label: "销售价格" },
|
|
|
|
|
{ prop: "collectPrice", label: "收货价格" },
|
|
|
|
|
{ prop: "businessName", label: "业务员" },
|
|
|
|
|
{ prop: "remark", label: "备注" },
|
|
|
|
|
{ prop: "poundPictures", label: "磅单图片" },
|
|
|
|
|
{ prop: "vehiclePictures", label: "车辆图片" },
|
|
|
|
|
],
|
|
|
|
|
unitOptions: [{ 'fullName': '吨', 'id': '0' }, { 'fullName': '千克', 'id': '1' }],
|
|
|
|
|
unitProps: { 'label': 'fullName', 'value': 'id' },
|
|
|
|
|
transportTypeOptions: [{ 'fullName': '汽运', 'id': '0' }, { 'fullName': '船运', 'id': '1' }, {
|
|
|
|
|
'fullName': '火车',
|
|
|
|
|
'id': '2'
|
|
|
|
|
}],
|
|
|
|
|
transportTypeProps: { 'label': 'fullName', 'value': 'id' },
|
|
|
|
|
advanceOptions: [{ 'fullName': '否', 'id': '0' }, { 'fullName': '是', 'id': '1' }],
|
|
|
|
|
advanceProps: { 'label': 'fullName', 'value': 'id' }
|
|
|
|
|
}
|
|
|
|
|
unitOptions: [
|
|
|
|
|
{ fullName: "吨", id: "0" },
|
|
|
|
|
{ fullName: "千克", id: "1" },
|
|
|
|
|
],
|
|
|
|
|
unitProps: { label: "fullName", value: "id" },
|
|
|
|
|
transportTypeOptions: [
|
|
|
|
|
{ fullName: "汽运", id: "0" },
|
|
|
|
|
{ fullName: "船运", id: "1" },
|
|
|
|
|
{
|
|
|
|
|
fullName: "火车",
|
|
|
|
|
id: "2",
|
|
|
|
|
},
|
|
|
|
|
],
|
|
|
|
|
transportTypeProps: { label: "fullName", value: "id" },
|
|
|
|
|
advanceOptions: [
|
|
|
|
|
{ fullName: "否", id: "0" },
|
|
|
|
|
{ fullName: "是", id: "1" },
|
|
|
|
|
],
|
|
|
|
|
advanceProps: { label: "fullName", value: "id" },
|
|
|
|
|
};
|
|
|
|
|
},
|
|
|
|
|
computed: {
|
|
|
|
|
menuId() {
|
|
|
|
|
return this.$route.meta.modelId || ''
|
|
|
|
|
}
|
|
|
|
|
return this.$route.meta.modelId || "";
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
created() {
|
|
|
|
|
this.initData()
|
|
|
|
|
if (
|
|
|
|
|
sessionStorage.getItem("scm-basicInformation-tradeupload-pageSize") !== null
|
|
|
|
|
) {
|
|
|
|
|
this.listQuery.pageSize = parseInt(
|
|
|
|
|
sessionStorage.getItem("scm-basicInformation-tradeupload-pageSize")
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
if (
|
|
|
|
|
sessionStorage.getItem("scm-basicInformation-tradeupload-query") !== null
|
|
|
|
|
) {
|
|
|
|
|
let json_query = sessionStorage.getItem(
|
|
|
|
|
"scm-basicInformation-tradeupload-query"
|
|
|
|
|
);
|
|
|
|
|
let obj_query = JSON.parse(json_query);
|
|
|
|
|
this.query = obj_query;
|
|
|
|
|
}
|
|
|
|
|
this.initData();
|
|
|
|
|
},
|
|
|
|
|
beforeDestroy() {
|
|
|
|
|
sessionStorage.setItem(
|
|
|
|
|
"scm-basicInformation-tradeupload-pageSize",
|
|
|
|
|
this.listQuery.pageSize
|
|
|
|
|
);
|
|
|
|
|
let json_query = JSON.stringify(this.query);
|
|
|
|
|
sessionStorage.setItem(
|
|
|
|
|
"scm-basicInformation-tradeupload-query",
|
|
|
|
|
json_query
|
|
|
|
|
);
|
|
|
|
|
},
|
|
|
|
|
methods: {
|
|
|
|
|
getSummaries(param) {
|
|
|
|
@ -271,192 +512,204 @@
|
|
|
|
|
const sums = [];
|
|
|
|
|
columns.forEach((column, index) => {
|
|
|
|
|
if (index === 0) {
|
|
|
|
|
sums[index] = '合计';
|
|
|
|
|
sums[index] = "合计";
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
const values = data.map(item => Number(item[column.property]));
|
|
|
|
|
if (!values.every(value => isNaN(value)) && (index === 6 || index === 7 || index === 8 || index === 9)) {
|
|
|
|
|
const values = data.map((item) => Number(item[column.property]));
|
|
|
|
|
if (
|
|
|
|
|
!values.every((value) => isNaN(value)) &&
|
|
|
|
|
(index === 6 || index === 7 || index === 8 || index === 9)
|
|
|
|
|
) {
|
|
|
|
|
sums[index] = values.reduce((prev, curr) => {
|
|
|
|
|
const value = Number(curr);
|
|
|
|
|
if (!isNaN(value)) {
|
|
|
|
|
return this.jnpf.floatAdd(prev,curr);
|
|
|
|
|
return this.jnpf.floatAdd(prev, curr);
|
|
|
|
|
} else {
|
|
|
|
|
return prev;
|
|
|
|
|
}
|
|
|
|
|
}, 0);
|
|
|
|
|
} else {
|
|
|
|
|
sums[index] = '';
|
|
|
|
|
sums[index] = "";
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
return sums;
|
|
|
|
|
},
|
|
|
|
|
continueUpload(id,isDetail){
|
|
|
|
|
this.formVisible3 = true
|
|
|
|
|
continueUpload(id, isDetail) {
|
|
|
|
|
this.formVisible3 = true;
|
|
|
|
|
this.$nextTick(() => {
|
|
|
|
|
this.$refs.JNPFForm3.init(id, isDetail)
|
|
|
|
|
})
|
|
|
|
|
this.$refs.JNPFForm3.init(id, isDetail);
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
goDetail(id) {
|
|
|
|
|
this.detailVisible = true
|
|
|
|
|
this.detailVisible = true;
|
|
|
|
|
this.$nextTick(() => {
|
|
|
|
|
this.$refs.Detail.init(id)
|
|
|
|
|
})
|
|
|
|
|
this.$refs.Detail.init(id);
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
sortChange({ column, prop, order }) {
|
|
|
|
|
this.listQuery.sort = order == 'ascending' ? 'asc' : 'desc'
|
|
|
|
|
this.listQuery.sidx = !order ? '' : prop
|
|
|
|
|
this.initData()
|
|
|
|
|
this.listQuery.sort = order == "ascending" ? "asc" : "desc";
|
|
|
|
|
this.listQuery.sidx = !order ? "" : prop;
|
|
|
|
|
this.initData();
|
|
|
|
|
},
|
|
|
|
|
initData() {
|
|
|
|
|
this.listLoading = true
|
|
|
|
|
this.listLoading = true;
|
|
|
|
|
let _query = {
|
|
|
|
|
...this.listQuery,
|
|
|
|
|
...this.query,
|
|
|
|
|
menuId: this.menuId
|
|
|
|
|
}
|
|
|
|
|
menuId: this.menuId,
|
|
|
|
|
};
|
|
|
|
|
request({
|
|
|
|
|
url: `/api/tradeupload/Tradeupload/getList`,
|
|
|
|
|
method: 'post',
|
|
|
|
|
data: _query
|
|
|
|
|
}).then(res => {
|
|
|
|
|
var _list = []
|
|
|
|
|
method: "post",
|
|
|
|
|
data: _query,
|
|
|
|
|
}).then((res) => {
|
|
|
|
|
var _list = [];
|
|
|
|
|
for (let i = 0; i < res.data.list.length; i++) {
|
|
|
|
|
res.data.list[i].creatorTime = res.data.list[i].creatorTime ? res.data.list[i].creatorTime.substring(0, 10) : '';
|
|
|
|
|
let _data = res.data.list[i]
|
|
|
|
|
_list.push(_data)
|
|
|
|
|
res.data.list[i].creatorTime = res.data.list[i].creatorTime
|
|
|
|
|
? res.data.list[i].creatorTime.substring(0, 10)
|
|
|
|
|
: "";
|
|
|
|
|
let _data = res.data.list[i];
|
|
|
|
|
_list.push(_data);
|
|
|
|
|
}
|
|
|
|
|
this.list = _list
|
|
|
|
|
this.total = res.data.pagination.total
|
|
|
|
|
this.list = _list;
|
|
|
|
|
this.total = res.data.pagination.total;
|
|
|
|
|
|
|
|
|
|
this.listLoading = false
|
|
|
|
|
})
|
|
|
|
|
this.listLoading = false;
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
handleDel(id) {
|
|
|
|
|
this.$confirm('此操作将永久删除该数据, 是否继续?', '提示', {
|
|
|
|
|
type: 'warning'
|
|
|
|
|
}).then(() => {
|
|
|
|
|
this.$confirm("此操作将永久删除该数据, 是否继续?", "提示", {
|
|
|
|
|
type: "warning",
|
|
|
|
|
})
|
|
|
|
|
.then(() => {
|
|
|
|
|
request({
|
|
|
|
|
url: `/api/tradeupload/Tradeupload/${id}`,
|
|
|
|
|
method: 'DELETE'
|
|
|
|
|
}).then(res => {
|
|
|
|
|
method: "DELETE",
|
|
|
|
|
}).then((res) => {
|
|
|
|
|
this.$message({
|
|
|
|
|
type: 'success',
|
|
|
|
|
type: "success",
|
|
|
|
|
message: res.msg,
|
|
|
|
|
onClose: () => {
|
|
|
|
|
this.initData()
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
})
|
|
|
|
|
}).catch(() => {
|
|
|
|
|
this.initData();
|
|
|
|
|
},
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
})
|
|
|
|
|
.catch(() => {});
|
|
|
|
|
},
|
|
|
|
|
handleSelectionChange(val) {
|
|
|
|
|
const res = val.map(item => item.id)
|
|
|
|
|
this.multipleSelection = res
|
|
|
|
|
const res = val.map((item) => item.id);
|
|
|
|
|
this.multipleSelection = res;
|
|
|
|
|
},
|
|
|
|
|
handleBatchRemoveDel() {
|
|
|
|
|
if (!this.multipleSelection.length) {
|
|
|
|
|
this.$message({
|
|
|
|
|
type: 'error',
|
|
|
|
|
message: '请选择一条数据',
|
|
|
|
|
duration: 2500
|
|
|
|
|
})
|
|
|
|
|
return
|
|
|
|
|
type: "error",
|
|
|
|
|
message: "请选择一条数据",
|
|
|
|
|
duration: 2500,
|
|
|
|
|
});
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
const ids = this.multipleSelection.join()
|
|
|
|
|
this.$confirm('您确定要删除这些数据吗, 是否继续?', '提示', {
|
|
|
|
|
type: 'warning'
|
|
|
|
|
}).then(() => {
|
|
|
|
|
const ids = this.multipleSelection.join();
|
|
|
|
|
this.$confirm("您确定要删除这些数据吗, 是否继续?", "提示", {
|
|
|
|
|
type: "warning",
|
|
|
|
|
})
|
|
|
|
|
.then(() => {
|
|
|
|
|
request({
|
|
|
|
|
url: `/api/tradeupload/Tradeupload/batchRemove/${ids}`,
|
|
|
|
|
method: 'DELETE'
|
|
|
|
|
}).then(res => {
|
|
|
|
|
method: "DELETE",
|
|
|
|
|
}).then((res) => {
|
|
|
|
|
this.$message({
|
|
|
|
|
type: 'success',
|
|
|
|
|
type: "success",
|
|
|
|
|
message: res.msg,
|
|
|
|
|
onClose: () => {
|
|
|
|
|
this.initData()
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
})
|
|
|
|
|
}).catch(() => {
|
|
|
|
|
this.initData();
|
|
|
|
|
},
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
})
|
|
|
|
|
.catch(() => {});
|
|
|
|
|
},
|
|
|
|
|
addOrUpdateHandle(id, isDetail) {
|
|
|
|
|
this.formVisible = true
|
|
|
|
|
this.formVisible = true;
|
|
|
|
|
this.$nextTick(() => {
|
|
|
|
|
this.$refs.JNPFForm.init(id, isDetail)
|
|
|
|
|
})
|
|
|
|
|
this.$refs.JNPFForm.init(id, isDetail);
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
addOrUpdateHandle2(id, isDetail) {
|
|
|
|
|
this.formVisible2 = true
|
|
|
|
|
this.formVisible2 = true;
|
|
|
|
|
this.$nextTick(() => {
|
|
|
|
|
this.$refs.JNPFForm2.init(id, isDetail)
|
|
|
|
|
})
|
|
|
|
|
this.$refs.JNPFForm2.init(id, isDetail);
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
addOrUpdateHandle3(id, isDetail) {
|
|
|
|
|
this.formVisible4 = true
|
|
|
|
|
this.formVisible4 = true;
|
|
|
|
|
this.$nextTick(() => {
|
|
|
|
|
this.$refs.JNPFForm4.init(id, isDetail)
|
|
|
|
|
})
|
|
|
|
|
this.$refs.JNPFForm4.init(id, isDetail);
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
exportData() {
|
|
|
|
|
this.exportBoxVisible = true
|
|
|
|
|
this.exportBoxVisible = true;
|
|
|
|
|
this.$nextTick(() => {
|
|
|
|
|
this.$refs.ExportBox.init(this.columnList)
|
|
|
|
|
})
|
|
|
|
|
this.$refs.ExportBox.init(this.columnList);
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
download(data) {
|
|
|
|
|
let query = { ...data, ...this.listQuery, ...this.query, menuId: this.menuId }
|
|
|
|
|
let query = {
|
|
|
|
|
...data,
|
|
|
|
|
...this.listQuery,
|
|
|
|
|
...this.query,
|
|
|
|
|
menuId: this.menuId,
|
|
|
|
|
};
|
|
|
|
|
request({
|
|
|
|
|
url: `/api/tradeupload/Tradeupload/Actions/Export`,
|
|
|
|
|
method: 'GET',
|
|
|
|
|
data: query
|
|
|
|
|
}).then(res => {
|
|
|
|
|
if (!res.data.url) return
|
|
|
|
|
this.jnpf.downloadFile(res.data.url)
|
|
|
|
|
this.$refs.ExportBox.visible = false
|
|
|
|
|
this.exportBoxVisible = false
|
|
|
|
|
})
|
|
|
|
|
method: "GET",
|
|
|
|
|
data: query,
|
|
|
|
|
}).then((res) => {
|
|
|
|
|
if (!res.data.url) return;
|
|
|
|
|
this.jnpf.downloadFile(res.data.url);
|
|
|
|
|
this.$refs.ExportBox.visible = false;
|
|
|
|
|
this.exportBoxVisible = false;
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
search() {
|
|
|
|
|
this.listQuery = {
|
|
|
|
|
currentPage: 1,
|
|
|
|
|
pageSize: 20,
|
|
|
|
|
sort: 'desc',
|
|
|
|
|
sidx: ''
|
|
|
|
|
}
|
|
|
|
|
this.initData()
|
|
|
|
|
sort: "desc",
|
|
|
|
|
sidx: "",
|
|
|
|
|
};
|
|
|
|
|
this.initData();
|
|
|
|
|
},
|
|
|
|
|
refresh(isrRefresh) {
|
|
|
|
|
this.formVisible = false
|
|
|
|
|
if (isrRefresh) this.reset()
|
|
|
|
|
this.formVisible = false;
|
|
|
|
|
if (isrRefresh) this.reset();
|
|
|
|
|
},
|
|
|
|
|
refresh2(isrRefresh) {
|
|
|
|
|
this.formVisible2 = false
|
|
|
|
|
if (isrRefresh) this.reset()
|
|
|
|
|
this.formVisible2 = false;
|
|
|
|
|
if (isrRefresh) this.reset();
|
|
|
|
|
},
|
|
|
|
|
refresh3(isrRefresh) {
|
|
|
|
|
this.formVisible3 = false
|
|
|
|
|
if (isrRefresh) this.reset()
|
|
|
|
|
this.formVisible3 = false;
|
|
|
|
|
if (isrRefresh) this.reset();
|
|
|
|
|
},
|
|
|
|
|
refresh4(isrRefresh) {
|
|
|
|
|
this.formVisible4 = false
|
|
|
|
|
if (isrRefresh) this.reset()
|
|
|
|
|
this.formVisible4 = false;
|
|
|
|
|
if (isrRefresh) this.reset();
|
|
|
|
|
},
|
|
|
|
|
reset() {
|
|
|
|
|
// for (let key in this.query) {
|
|
|
|
|
// this.query[key] = undefined
|
|
|
|
|
// }
|
|
|
|
|
this.search()
|
|
|
|
|
this.search();
|
|
|
|
|
},
|
|
|
|
|
resetAll() {
|
|
|
|
|
for (let key in this.query) {
|
|
|
|
|
this.query[key] = undefined
|
|
|
|
|
}
|
|
|
|
|
this.search()
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
this.query[key] = undefined;
|
|
|
|
|
}
|
|
|
|
|
this.search();
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
};
|
|
|
|
|
</script>
|
|
|
|
|