jg-waiwang-pro
XI_TENG\xixi_ 4 months ago
commit 4fde7cedad

File diff suppressed because it is too large Load Diff

@ -0,0 +1,446 @@
<template>
<view class="dynamicModel-list-v">
<view class="head-warp com-dropdown">
<u-dropdown class="u-dropdown" ref="uDropdown" @open="openData" >
<u-dropdown-item title="排序">
<view class="dropdown-slot-content">
<view class="dropdown-slot-content-main">
<u-cell-group>
<u-cell-item @click="cellClick(item)" :arrow="false" :title="item.label"
v-for="(item, index) in sortOptions" :key="index" :title-style="{color: sortValue == item.value ? '#2979ff' : '#606266' }">
<u-icon v-if="sortValue == item.value" name="checkbox-mark" color="#2979ff" size="32"></u-icon>
</u-cell-item>
</u-cell-group>
</view>
</view>
</u-dropdown-item>
<u-dropdown-item title="筛选" >
<view class="dropdown-slot-content">
<view class="dropdown-slot-content-main search-main">
<scroll-view scroll-y="true" style="height: 1000rpx;">
<view class="u-p-l-20 u-p-r-20 search-form">
<u-form :model="searchForm" ref="searchForm" :errorType="['toast']" label-position="left" label-width="150">
</u-form>
</view>
</scroll-view>
<view class="buttom-actions">
<u-button class="buttom-btn" @click="reset"></u-button>
<u-button class="buttom-btn" type="primary" @click="closeDropdown"></u-button>
</view>
<view class="dropdown-slot-bg" @click="$refs.uDropdown.close()"></view>
</view>
</view>
</u-dropdown-item>
</u-dropdown>
</view>
<view class="list-warp">
<mescroll-uni ref="mescrollRef" @init="mescrollInit" @down="downCallback" @up="upCallback" :up="upOption" top="100">
<view class="list">
<view class="list-box">
<uni-swipe-action ref="swipeAction">
<uni-swipe-action-item v-for="(item, index) in list" :key="item.id" :threshold="0" :right-options="options">
<view class="item" @click="goDetail(item.id,item)">
<view class="u-line-1 item-cell" v-for="(column,i) in columnList" :key="i">
<view v-if="column.jnpfKey != 'table'">
<view class="" v-if="column.jnpfKey == 'relationForm'">
<text class="listTit u-line-1">{{column.label}}:</text>
<text class="listContent"
@click.stop="relationFormClick(item,column)"
style="color: blue;">{{item[column.prop]}}</text>
</view>
<view v-else class="u-line-1">
<text class="listTit u-line-1">{{column.label}}:</text>
<text class="listContent" v-if="['calculate','inputNumber'].includes(column.jnpfKey) && column.thousands">{{toThousands(item[column.prop],column)}}</text>
<text class="listContent" v-else>{{item[column.prop]}}</text>
</view>
</view>
<view class="collapse-box u-flex" v-else>
<tableCell :label="column.label" :childList="item[column.prop]" @cRelationForm="relationFormClick"
:children="column.children" ref="tableCell" :pageLen="3"></tableCell>
</view>
</view>
</view>
<template v-slot:right>
<view class="right-option-box">
<view class="right-option" v-for="(it,i) in options" @click="handleClick(index)"
:key="i">
<text>{{it.text}}</text>
</view>
</view>
</template>
</uni-swipe-action-item>
</uni-swipe-action>
</view>
</view>
</mescroll-uni>
</view>
<view class="com-addBtn" @click="addPage()" >
<u-icon name="plus" size="60" color="#fff" />
</view>
</view>
</template>
<script>
import {
FlowJsonList
} from '@/api/workFlow/flowEngine'
import resources from '@/libs/resources.js'
import MescrollMixin from "@/uni_modules/mescroll-uni/components/mescroll-uni/mescroll-mixins.js";
import tableCell from '../dynamicModel/components/tableCell.vue'
import {
getDictionaryDataSelector,
getDataInterfaceRes,
getDefaultCurrentValueUserIdAsync,
getDefaultCurrentValueDepartmentIdAsync
} from '@/api/common'
import request from '@/utils/request'
export default {
mixins: [MescrollMixin],
components: {
tableCell
},
data() {
return {
show: false,
templateList: [],
sortValue: '',
searchForm: {
},
downOption: {
use: true,
auto: false
},
dataOptions:{
},
upOption: {
page: {
num: 0,
size: 20,
time: null,
},
empty: {
use: true,
icon: resources.message.nodata,
tip: "暂无数据",
fixed: true,
top: "300rpx",
zIndex: 5,
},
textNoMore: '没有更多数据',
toTop: {
bottom: 250
}
},
list: [],
appColumnList:[{"jnpfKey":"billRule","fullName":"凭证编号","label":"凭证编号","sortable":false,"align":"left","__config__":{"formId":101,"visibility":["pc","app"],"jnpfKey":"billRule","noShow":false,"tipLabel":"","dragDisabled":false,"rule":"ssdj","className":[],"label":"凭证编号","trigger":"change","showLabel":true,"required":false,"tableName":"jg_voucher","renderKey":1707042861597,"layout":"colFormItem","tagIcon":"icon-ym icon-ym-generator-documents","ruleName":"销售订单","tag":"JnpfInput","span":8},"readonly":true,"prop":"voucherCode","width":0,"__vModel__":"voucherCode","style":{"width":"100%"},"fixed":"none","placeholder":"系统自动生成","id":"voucherCode"},{"filterable":false,"clearable":true,"jnpfKey":"select","multiple":false,"fullName":"凭证类型","label":"凭证类型","sortable":false,"align":"left","props":{"label":"fullName","value":"id"},"__config__":{"formId":102,"visibility":["pc","app"],"jnpfKey":"select","defaultValue":"","noShow":false,"dataType":"static","dictionaryType":"","tipLabel":"","dragDisabled":false,"className":[],"label":"凭证类型","trigger":"change","propsUrl":"","templateJson":[],"showLabel":true,"required":true,"tableName":"jg_voucher","renderKey":1707042898113,"layout":"colFormItem","tagIcon":"icon-ym icon-ym-generator-select","propsName":"","tag":"JnpfSelect","regList":[],"span":8},"prop":"voucherType","width":0,"options":[{"fullName":"磅单","id":"1"},{"fullName":"收据","id":"2"},{"fullName":"其他","id":"3"}],"__vModel__":"voucherType","style":{"width":"100%"},"disabled":false,"interfaceHasPage":false,"fixed":"none","placeholder":"请选择","id":"voucherType","on":{"change":"({ data, formData, setFormData, setShowOrHide, setRequired, setDisabled, onlineUtils }) => {\n // 在此编写代码\n \n}"}}],
listQuery: {
moduleId:'572394520738554117',
sort: 'desc',
sidx: '',
keyword: '',
json: ''
},
options: [
{
text: '删除',
style: {
backgroundColor: '#dd524d'
}
}
],
sortOptions:[
],
ableAll:{
},
interfaceRes:{
},
menuId:'',
columnList:[],
isTree:false,
type:'1',
key:new Date(),
dataValue:{},
userInfo:{},
firstInitSearchData:false,
thousandsField:[],
formatType:{"yyyy":"yyyy","yyyy-MM":"yyyy-mm","yyyy-MM-dd":"yyyy-mm-dd","yyyy-MM-dd HH:mm":"yyyy-mm-dd hh:MM","yyyy-MM-dd HH:mm:ss":"yyyy-mm-dd hh:MM:ss","HH:mm:ss":"hh:MM:ss","HH:mm":"hh:MM"},
}
},
onLoad(e){
this.userInfo = uni.getStorageSync('userInfo') || {}
this.menuId = e.menuId
uni.$on('refresh', () => {
this.list = [];
this.mescroll.resetUpScroll();
})
this.dataAll()
this.getColumnList()
},
onUnload() {
uni.$off('refresh')
},
methods:{
toThousands(val, column) {
let num = Number(val)
let newVal = this.thousandsField.includes(column.__vModel__) ? num.toLocaleString('zh', {maximumFractionDigits: '2',minimumFractionDigits: '2'}): num.toFixed(2);
return newVal
},
getJsonList() {
FlowJsonList(this.flowId,'1').then(res => {
this.templateList = res.data;
})
},
getFormById() {
getFormById(this.formId).then(res => {
this.flowId = res.data&&res.data.id
this.enCode = res.data&&res.data.enCode
this.getJsonList()
})
},
dataAll(){
},
openData(e){
if(e==1){
//this.reset()
}
},
//
async initSearchData() {
this.dataValue = JSON.parse(JSON.stringify(this.searchForm))
},
relationFormClick(item,column) {
let vModel = column.__vModel__?column.__vModel__+"_id":column.__vModel__
let id = item[vModel]
if(vModel){
let [attr,attr1]=vModel.split("_jnpf_")
if(attr&&attr1){
attr = attr.replace('jnpf_','')
id = item[attr]&&item[attr][attr1]
}
}
let modelId = column.modelId
if (!id || !modelId) return
let config = {
modelId: modelId,
id: id,
formTitle: '详情',
noShowBtn: 1
}
this.$nextTick(() => {
const url ='/pages/apply/dynamicModel/detail?config=' + this.base64.encode(JSON.stringify(config),"UTF-8")
uni.navigateTo({
url: url
})
})
},
async upCallback(page) {
if(!this.firstInitSearchData) {
await this.initSearchData()
this.firstInitSearchData = true
}
const query = {
currentPage: page.num,
pageSize: page.size,
menuId : this.menuId,
...this.listQuery,
...this.searchForm,
dataType:0,
}
request({
url: '/api/scm/Voucher/getList',
method: 'post',
data: query,
}).then(res => {
let _list = this.columnList.length?res.data.list:[];
this.mescroll.endSuccess(_list.length);
if (page.num == 1) this.list = [];
const list = _list.map(o => ({
show: false,
...o
}));
this.list = this.list.concat(_list);
}).catch(() => {
this.mescroll.endErr();
})
},
handleClick(index, index1) {
const item = this.list[index]
request({
url: '/api/scm/Voucher/' + item.id,
method: 'delete'
}).then(res => {
uni.showToast({
title: res.msg,
complete: () => {
this.$u.toast(res.msg)
this.mescroll.resetUpScroll()
}
})
})
},
open(index) {
this.list[index].show = true;
this.list.map((val, idx) => {
if (index != idx) this.list[idx].show = false;
})
},
search() {
if (this.isPreview == '1') return
this.searchTimer && clearTimeout(this.searchTimer)
this.searchTimer = setTimeout(() => {
this.list = [];
this.mescroll.resetUpScroll();
}, 300)
},
goDetail(id) {
let btnType = ''
let btnList = []
btnList.push('btn_edit')
btnList.push('btn_detail')
if(btnList.length==0) return
this.jumPage(id,btnList)
},
addPage() {
this.jumPage()
},
jumPage(id, btnList) {
let idVal = id ? "&id=" + id : ''
let idList = []
for(let i=0;i<this.list.length;i++){
idList.push(this.list[i].id)
}
let idListVal = "&idList="+idList
if (!id){
uni.navigateTo({
url: "./form?menuId=" + this.menuId + "&jurisdictionType=btn_add"
})
} else if(btnList.includes('btn_detail')){
uni.navigateTo({
url: "./detail?menuId=" + this.menuId + "&btnList=" + btnList + idVal+idListVal
})
} else if(btnList.includes('btn_edit')){
uni.navigateTo({
url: "./form?menuId=" + this.menuId + "&jurisdictionType=btn_edit&btnList=" + btnList + idVal+idListVal
})
}
},
getColumnList() {
let columnPermissionList = []
let _appColumnList =this.appColumnList
for (let i = 0; i < _appColumnList.length; i++) {
columnPermissionList.push(_appColumnList[i])
}
this.columnList = this.transformColumnList(columnPermissionList, this.dataOptions)
},
transformColumnList(columnList, dataOptions) {
let list = []
for (let i = 0; i < columnList.length; i++) {
let e = columnList[i]
let columProp = e.prop
let label = e.label
let option = null
let options = columProp + "Options"
if (!columProp.includes('-')) {
columProp = columProp
if(this.type=='4'){
columProp = columProp +"_name"
}
if(label.length>4){
label = label.substring(0, 4)
}
e.label = label
e.prop = columProp
e.option = option
list.push(e)
} else {
e.vModel = columProp.split('-')[1]
e.childLabel = e.label.split('-')[1]
options = e.vModel + "Options"
let prop = columProp.split('-')[0]
let label = e.label.split('-')[0]
let newItem = {
align: "center",
jnpfKey: "table",
prop,
label,
children: []
}
if (!list.some(o => o.prop === prop)) list.push(newItem)
for (let i = 0; i < list.length; i++) {
if (list[i].prop === prop) {
e.prop = e.prop
e.vModel = e.vModel
if(this.type=='4'){
e.prop = e.prop+"_name"
e.vModel = e.vModel+"_name"
}
e.option = option
list[i].children.push(e)
break
}
}
}
}
return list
},
cellClick(item) {
if (this.sortValue === item.value) return
this.listQuery.sort = item.sort
this.listQuery.sidx = item.sidx
this.sortValue = item.value
this.$refs.uDropdown.close();
this.$nextTick(() => {
this.list = [];
this.mescroll.resetUpScroll();
})
},
reset() {
this.searchForm = JSON.parse(JSON.stringify(this.dataValue))
this.key = new Date()
},
closeDropdown() {
this.$refs.uDropdown.close();
this.$nextTick(() => {
this.list = [];
this.mescroll.resetUpScroll();
})
},
dataList(data){
let _list =data.list
return _list;
},
},
}
</script>
<style lang="scss">
page {
background-color: #f0f2f6;
height: 100%;
/* #ifdef MP-ALIPAY */
position: absolute;
top: 0;
left: 0;
width: 100%;
/* #endif */
}
.right-option-box {
display: flex;
width: max-content;
.right-option {
width: 144rpx;
height: 100%;
font-size: 16px;
color: #fff;
background-color: #dd524d;
display: flex;
align-items: center;
justify-content: center;
}
.more-option {
background-color: #1890ff;
}
}
</style>

@ -1109,9 +1109,9 @@ public class BusinessOrderServiceImpl extends ServiceImpl<BusinessOrderMapper, B
planReceiptNum = planReceiptNum.add(entitys.getBusinessNum()); planReceiptNum = planReceiptNum.add(entitys.getBusinessNum());
entitys.setId(RandomUtil.uuId()); entitys.setId(RandomUtil.uuId());
entitys.setBusinessOrderId(entity.getId()); entitys.setBusinessOrderId(entity.getId());
entitys.setOrdLn(String.valueOf(line)); //运管订单行号
line++;
if(isSave){ if(isSave){
entitys.setOrdLn(String.valueOf(line)); //运管订单行号
line++;
}else{ }else{
} }
businessOrderProductRelationalService.saveOrUpdate(entitys); businessOrderProductRelationalService.saveOrUpdate(entitys);

@ -631,6 +631,39 @@ public class VoucherServiceImpl extends ServiceImpl<VoucherMapper, VoucherEntity
if (voucherForm.getVoucherVehicleList()!=null){ if (voucherForm.getVoucherVehicleList()!=null){
List<VoucherVehicleEntity> tableField140 = JsonUtil.getJsonToList(voucherForm.getVoucherVehicleList(),VoucherVehicleEntity.class); List<VoucherVehicleEntity> tableField140 = JsonUtil.getJsonToList(voucherForm.getVoucherVehicleList(),VoucherVehicleEntity.class);
for(VoucherVehicleEntity entitys : tableField140){ for(VoucherVehicleEntity entitys : tableField140){
if (StringUtils.isNotEmpty(entitys.getVehicleNumber())){
QueryWrapper<VehicleEntity> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(VehicleEntity::getVehicleNumber,entitys.getVehicleNumber());
queryWrapper.lambda().isNull(VehicleEntity::getDeleteMark);
VehicleEntity vehicleEntity = vehicleService.getOne(queryWrapper); //查询车牌号是否存在
if (ObjectUtil.isNotEmpty(vehicleEntity)){
entitys.setVehicleId(vehicleEntity.getId());//将车牌号ID赋值给子表
}else {
VehicleEntity vehicle = new VehicleEntity();
vehicle.setId(RandomUtil.uuId());
vehicle.setType("1");
vehicle.setVehicleNumber(entitys.getVehicleNumber());
vehicle.setPhoto(entity.getVehiclePictures());
vehicle.setStatus("1");
vehicle.setName(entitys.getDriverName());
vehicle.setMobile(entitys.getTelephone());
vehicleService.save(vehicle); //新增车辆到系统
entitys.setVehicleId(vehicle.getId()); //将车牌号ID赋值给子表
VehicleDriverEntity vehicleDriverEntity = new VehicleDriverEntity();
QueryWrapper<DriverEntity> queryWrapper1 = new QueryWrapper<>();
queryWrapper1.lambda().eq(DriverEntity::getName,entitys.getDriverName());
queryWrapper1.lambda().isNull(DriverEntity::getDeleteMark);
DriverEntity driverEntity = driverService.getOne(queryWrapper1); //查询司机
if (ObjectUtil.isNotEmpty(driverEntity)){
vehicleDriverEntity.setDriverId(driverEntity.getId()); //赋值司机ID
}
vehicleDriverEntity.setId(RandomUtil.uuId());
vehicleDriverEntity.setVehicleId(vehicle.getId());
vehicleDriverEntity.setName(entitys.getDriverName());
vehicleDriverEntity.setMobile(entitys.getTelephone());
vehicleDriverService.save(vehicleDriverEntity); //新增车辆和司机的关系表
}
}
entitys.setId(RandomUtil.uuId()); entitys.setId(RandomUtil.uuId());
entitys.setVoucherId(entity.getId()); entitys.setVoucherId(entity.getId());
if(isSave){ if(isSave){
@ -731,29 +764,46 @@ public class VoucherServiceImpl extends ServiceImpl<VoucherMapper, VoucherEntity
@Override @Override
public List<VoucherEntity> queryVoucherPopupInfo(VoucherPagination voucherPagination) { public List<VoucherEntity> queryVoucherPopupInfo(VoucherPagination voucherPagination) {
UserInfo userInfo=userProvider.get(); QueryWrapper<VoucherEntity> queryWrapper1 = new QueryWrapper<>();
OrganizeEntity organizeEntity = organizeService.getInfo(userInfo.getOrganizeId()); queryWrapper1.eq("a.business_type",voucherPagination.getBusinessType());
List<String> organizeJsonId = Arrays.stream(organizeEntity.getCompanyIdTree().split(",")).collect(Collectors.toList()); queryWrapper1.eq("a.document_type",voucherPagination.getDocumentType());
String organize = JSON.toJSONString(organizeJsonId); queryWrapper1.eq("a.delivery_type","2");
organize = organize.replace("[",""); queryWrapper1.eq("a.voucher_status","4");
organize = organize.replace("]","");
QueryWrapper<VoucherEntity> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("a.business_type",voucherPagination.getBusinessType());
queryWrapper.eq("a.document_type",voucherPagination.getDocumentType());
queryWrapper.eq("a.delivery_type","2");
queryWrapper.eq("a.voucher_status","4");
if (StringUtils.isNotEmpty(voucherPagination.getKeyword())) { if (StringUtils.isNotEmpty(voucherPagination.getKeyword())) {
queryWrapper.and(wrapper -> wrapper.like("a.purchase_contract_no", voucherPagination.getKeyword()) queryWrapper1.and(wrapper -> wrapper.like("a.purchase_contract_no", voucherPagination.getKeyword())
.or().like("f.name", voucherPagination.getKeyword()) .or().like("f.name", voucherPagination.getKeyword())
.or().like("a.voucher_code",voucherPagination.getKeyword())); .or().like("a.voucher_code",voucherPagination.getKeyword()));
} }
queryWrapper.notIn(ObjectUtils.isNotEmpty(voucherPagination.getExcludeIdList()),"a.id",voucherPagination.getExcludeIdList()); queryWrapper1.notIn(ObjectUtils.isNotEmpty(voucherPagination.getExcludeIdList()),"a.id",voucherPagination.getExcludeIdList());
queryWrapper.in(ObjectUtils.isNotEmpty(voucherPagination.getProductIdList()),"c.product_id",voucherPagination.getProductIdList()); queryWrapper1.isNull("a.f_delete_mark");
queryWrapper.isNull("a.f_delete_mark"); queryWrapper1.eq(StringUtils.isNotEmpty(voucherPagination.getBusinessOrderId()),"a.business_order_id",voucherPagination.getBusinessOrderId());
// queryWrapper.inSql("a.id", "SELECT f_process_id FROM flow_task WHERE f_status = '2'");//通过审核的订单 IPage<VoucherEntity> voucherEntityIPage = new Page<>();
queryWrapper.like("a.organize_json_id",organize);
Page<VoucherEntity> page=new Page<>(voucherPagination.getCurrentPage(), voucherPagination.getPageSize()); Page<VoucherEntity> page=new Page<>(voucherPagination.getCurrentPage(), voucherPagination.getPageSize());
IPage<VoucherEntity> voucherEntityIPage = voucherMapper.queryVoucherPopup(page,queryWrapper,voucherPagination.getBusinessType(),voucherPagination.getDocumentType()); voucherEntityIPage = voucherMapper.queryVoucherPopup(page, queryWrapper1,voucherPagination.getBusinessType(),voucherPagination.getDocumentType());
if (voucherEntityIPage.getTotal() == 0) {
UserInfo userInfo = userProvider.get();
OrganizeEntity organizeEntity = organizeService.getInfo(userInfo.getOrganizeId());
List<String> organizeJsonId = Arrays.stream(organizeEntity.getCompanyIdTree().split(",")).collect(Collectors.toList());
String organize = JSON.toJSONString(organizeJsonId);
organize = organize.replace("[", "");
organize = organize.replace("]", "");
QueryWrapper<VoucherEntity> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("a.business_type", voucherPagination.getBusinessType());
queryWrapper.eq("a.document_type", voucherPagination.getDocumentType());
queryWrapper.eq("a.delivery_type", "2");
queryWrapper.eq("a.voucher_status", "4");
if (StringUtils.isNotEmpty(voucherPagination.getKeyword())) {
queryWrapper.and(wrapper -> wrapper.like("a.purchase_contract_no", voucherPagination.getKeyword())
.or().like("f.name", voucherPagination.getKeyword())
.or().like("a.voucher_code", voucherPagination.getKeyword()));
}
queryWrapper.notIn(ObjectUtils.isNotEmpty(voucherPagination.getExcludeIdList()), "a.id", voucherPagination.getExcludeIdList());
queryWrapper.in(ObjectUtils.isNotEmpty(voucherPagination.getProductIdList()), "c.product_id", voucherPagination.getProductIdList());
queryWrapper.isNull("a.f_delete_mark");
// queryWrapper.inSql("a.id", "SELECT f_process_id FROM flow_task WHERE f_status = '2'");//通过审核的订单
queryWrapper.like("a.organize_json_id", organize);
voucherEntityIPage = voucherMapper.queryVoucherPopup(page, queryWrapper, voucherPagination.getBusinessType(), voucherPagination.getDocumentType());
}
return voucherPagination.setData(voucherEntityIPage.getRecords(),voucherEntityIPage.getTotal()); return voucherPagination.setData(voucherEntityIPage.getRecords(),voucherEntityIPage.getTotal());
} }

@ -48,4 +48,6 @@ public class VoucherVehicleEntity {
private String organizeJsonId; private String organizeJsonId;
@TableField("F_TENANT_ID") @TableField("F_TENANT_ID")
private String tenantId; private String tenantId;
@TableField(exist = false)
private String vehicleNumber;
} }

@ -30,4 +30,7 @@ public class VoucherVehicleModel {
/** 承运商 **/ /** 承运商 **/
@JSONField(name = "carrier") @JSONField(name = "carrier")
private String carrier; private String carrier;
/** 车牌号 **/
@JSONField(name = "vehicleNumber")
private String vehicleNumber;
} }

@ -34,6 +34,8 @@
</el-table-column> </el-table-column>
<el-table-column prop="voucherType1" label="凭证类型" align="left"> <el-table-column prop="voucherType1" label="凭证类型" align="left">
</el-table-column> </el-table-column>
<el-table-column prop="netWeight" label="结算量" align="left">
</el-table-column>
<el-table-column prop="poundCode" label="磅单编号" align="left"> <el-table-column prop="poundCode" label="磅单编号" align="left">
</el-table-column> </el-table-column>
<el-table-column prop="vehicleNumber" label="车牌号" align="left"> <el-table-column prop="vehicleNumber" label="车牌号" align="left">

@ -586,7 +586,8 @@
<div class="JNPF-common-title"> <div class="JNPF-common-title">
<h2></h2> <h2></h2>
</div> </div>
<el-table :data="dataForm.deliveryProductRelationList" size='mini'> <el-table :data="dataForm.deliveryProductRelationList" size='mini' show-summary
:summary-method="getSummaries">
<el-table-column type="index" width="50" label="序号" align="center" /> <el-table-column type="index" width="50" label="序号" align="center" />
<el-table-column label="商品名称" v-if="judgeShow('deliveryproductrelation-productId')" <el-table-column label="商品名称" v-if="judgeShow('deliveryproductrelation-productId')"
prop="productId" width="250"> prop="productId" width="250">
@ -1190,6 +1191,39 @@ export default {
this.initPurchaseData(); this.initPurchaseData();
}, },
methods: { methods: {
getSummaries(param) {
const summaryField = ["saleNum", "grossWeight", "tareWeight", "buckleWeight", "netWeight", "deliveryNum", "taxCount", "notTaxCount"];
const { columns, data } = param;
const sums = [];
columns.forEach((column, index) => {
if (index === 0) {
sums[index] = '合计';
return;
}
if (!summaryField.includes(column.property)) {
sums[index] = '';
return;
}
const values = data.map(item => Number(item[column.property]));
if (!values.every(value => isNaN(value))) {
sums[index] = values.reduce((prev, curr) => {
const value = Number(curr);
if (!isNaN(value)) {
return this.jnpf.floatAdd(prev, curr);
} else {
return prev;
}
}, 0);
const thousandsField = [];
if (thousandsField.includes(column.property)) {
sums[index] = thousandsFormat(sums[index]);
}
} else {
sums[index] = '';
}
});
return sums;
},
// //
choiceProduct() { choiceProduct() {
this.BomgoodsBoxVisible = true this.BomgoodsBoxVisible = true

@ -817,7 +817,8 @@
<div class="JNPF-common-title"> <div class="JNPF-common-title">
<h2></h2> <h2></h2>
</div> </div>
<el-table :data="dataForm.businessOrderProductRelationalList" size='mini'> <el-table :data="dataForm.businessOrderProductRelationalList" size='mini' show-summary
:summary-method="getSummaries">
<el-table-column type="index" width="50" label="序号" align="center" fixed="left" /> <el-table-column type="index" width="50" label="序号" align="center" fixed="left" />
<el-table-column label="商品名称" v-if="this.dataForm.orderType == '3'" prop="productId" <el-table-column label="商品名称" v-if="this.dataForm.orderType == '3'" prop="productId"
width="250" align="center" fixed="left"> width="250" align="center" fixed="left">
@ -1561,6 +1562,39 @@ export default {
this.initPurchaseData(); this.initPurchaseData();
}, },
methods: { methods: {
getSummaries(param) {
const summaryField = ["businessNum", "taxCount", "notTaxCount"];
const { columns, data } = param;
const sums = [];
columns.forEach((column, index) => {
if (index === 0) {
sums[index] = '合计';
return;
}
if (!summaryField.includes(column.property)) {
sums[index] = '';
return;
}
const values = data.map(item => Number(item[column.property]));
if (!values.every(value => isNaN(value))) {
sums[index] = values.reduce((prev, curr) => {
const value = Number(curr);
if (!isNaN(value)) {
return this.jnpf.floatAdd(prev, curr);
} else {
return prev;
}
}, 0);
const thousandsField = [];
if (thousandsField.includes(column.property)) {
sums[index] = thousandsFormat(sums[index]);
}
} else {
sums[index] = '';
}
});
return sums;
},
// 线 // 线
removeForm() { removeForm() {
if (this.dataForm.orderType == '3') { if (this.dataForm.orderType == '3') {

@ -746,7 +746,8 @@
<div class="JNPF-common-title"> <div class="JNPF-common-title">
<h2></h2> <h2></h2>
</div> </div>
<el-table :data="dataForm.deliveryProductRelationList" size="mini"> <el-table :data="dataForm.deliveryProductRelationList" size="mini" show-summary
:summary-method="getSummaries">
<el-table-column type="index" width="50" label="序号" align="center" /> <el-table-column type="index" width="50" label="序号" align="center" />
<el-table-column label="商品名称" v-if="judgeShow('deliveryproductrelation-productId')" <el-table-column label="商品名称" v-if="judgeShow('deliveryproductrelation-productId')"
prop="productId" width="250"> prop="productId" width="250">
@ -958,7 +959,7 @@
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="净重" v-if="judgeShow('deliveryproductrelation-netWeight')" <el-table-column label="净重" v-if="judgeShow('deliveryproductrelation-netWeight')"
prop="netWeight" width="120"> prop="clearWeight" width="120">
<template slot="header"> <template slot="header">
<span class="required-sign" v-if=" <span class="required-sign" v-if="
judgeRequired('deliveryproductrelationList-netWeight') judgeRequired('deliveryproductrelationList-netWeight')
@ -1636,6 +1637,39 @@ export default {
this.initPurchaseData(); this.initPurchaseData();
}, },
methods: { methods: {
getSummaries(param) {
const summaryField = ["saleNum", "grossWeight", "tareWeight", "buckleWeight", "netWeight", "clearWeight", "deliveryNum", "taxCount", "notTaxCount"];
const { columns, data } = param;
const sums = [];
columns.forEach((column, index) => {
if (index === 0) {
sums[index] = '合计';
return;
}
if (!summaryField.includes(column.property)) {
sums[index] = '';
return;
}
const values = data.map(item => Number(item[column.property]));
if (!values.every(value => isNaN(value))) {
sums[index] = values.reduce((prev, curr) => {
const value = Number(curr);
if (!isNaN(value)) {
return this.jnpf.floatAdd(prev, curr);
} else {
return prev;
}
}, 0);
const thousandsField = [];
if (thousandsField.includes(column.property)) {
sums[index] = thousandsFormat(sums[index]);
}
} else {
sums[index] = '';
}
});
return sums;
},
// //
choiceProduct() { choiceProduct() {
this.BomgoodsBoxVisible = true; this.BomgoodsBoxVisible = true;
@ -1689,7 +1723,7 @@ export default {
} }
let businessType = '1'; let businessType = '1';
let documentType = '1'; let documentType = '1';
let businessId = ''; let businessId = this.dataForm.businessId;
let type = '1'; // let type = '1'; //
this.$nextTick(() => { this.$nextTick(() => {
this.$refs.VoucherBox.init( this.$refs.VoucherBox.init(

@ -610,7 +610,8 @@
<div class="JNPF-common-title"> <div class="JNPF-common-title">
<h2></h2> <h2></h2>
</div> </div>
<el-table :data="dataForm.deliveryProductRelationList" size='mini'> <el-table :data="dataForm.deliveryProductRelationList" size='mini' show-summary
:summary-method="getSummaries">
<el-table-column type="index" width="50" label="序号" align="center" /> <el-table-column type="index" width="50" label="序号" align="center" />
<el-table-column label="商品名称" v-if="judgeShow('deliveryproductrelation-productId')" <el-table-column label="商品名称" v-if="judgeShow('deliveryproductrelation-productId')"
prop="productId" width="250"> prop="productId" width="250">
@ -1245,6 +1246,39 @@ export default {
this.initPurchaseData(); this.initPurchaseData();
}, },
methods: { methods: {
getSummaries(param) {
const summaryField = ["saleNum", "grossWeight", "tareWeight", "buckleWeight", "netWeight", "deliveryNum", "taxCount", "notTaxCount"];
const { columns, data } = param;
const sums = [];
columns.forEach((column, index) => {
if (index === 0) {
sums[index] = '合计';
return;
}
if (!summaryField.includes(column.property)) {
sums[index] = '';
return;
}
const values = data.map(item => Number(item[column.property]));
if (!values.every(value => isNaN(value))) {
sums[index] = values.reduce((prev, curr) => {
const value = Number(curr);
if (!isNaN(value)) {
return this.jnpf.floatAdd(prev, curr);
} else {
return prev;
}
}, 0);
const thousandsField = [];
if (thousandsField.includes(column.property)) {
sums[index] = thousandsFormat(sums[index]);
}
} else {
sums[index] = '';
}
});
return sums;
},
//退 //退
priceCount(row) { priceCount(row) {
if (row.deliveryNum) { if (row.deliveryNum) {

@ -584,7 +584,8 @@
<div class="JNPF-common-title"> <div class="JNPF-common-title">
<h2></h2> <h2></h2>
</div> </div>
<el-table :data="dataForm.deliveryProductRelationList" size='mini'> <el-table :data="dataForm.deliveryProductRelationList" size='mini' show-summary
:summary-method="getSummaries">
<el-table-column type="index" width="50" label="序号" align="center" /> <el-table-column type="index" width="50" label="序号" align="center" />
<el-table-column label="商品名称" v-if="judgeShow('deliveryproductrelation-productId')" <el-table-column label="商品名称" v-if="judgeShow('deliveryproductrelation-productId')"
prop="productId" width="250"> prop="productId" width="250">
@ -733,7 +734,7 @@
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="净重" v-if="judgeShow('deliveryproductrelation-netWeight')" <el-table-column label="净重" v-if="judgeShow('deliveryproductrelation-netWeight')"
prop="netWeight" width="150"> prop="clearWeight" width="150">
<template slot="header"> <template slot="header">
<span class="required-sign" <span class="required-sign"
v-if="judgeRequired('deliveryproductrelationList-netWeight')">*</span>净重 v-if="judgeRequired('deliveryproductrelationList-netWeight')">*</span>净重
@ -1230,6 +1231,39 @@ export default {
this.initPurchaseData(); this.initPurchaseData();
}, },
methods: { methods: {
getSummaries(param) {
const summaryField = ["saleNum", "grossWeight", "tareWeight", "buckleWeight", "netWeight", "clearWeight", "deliveryNum", "taxCount", "notTaxCount"];
const { columns, data } = param;
const sums = [];
columns.forEach((column, index) => {
if (index === 0) {
sums[index] = '合计';
return;
}
if (!summaryField.includes(column.property)) {
sums[index] = '';
return;
}
const values = data.map(item => Number(item[column.property]));
if (!values.every(value => isNaN(value))) {
sums[index] = values.reduce((prev, curr) => {
const value = Number(curr);
if (!isNaN(value)) {
return this.jnpf.floatAdd(prev, curr);
} else {
return prev;
}
}, 0);
const thousandsField = [];
if (thousandsField.includes(column.property)) {
sums[index] = thousandsFormat(sums[index]);
}
} else {
sums[index] = '';
}
});
return sums;
},
batchNoMethod(val, val2, idx) { batchNoMethod(val, val2, idx) {
if (this.inventoryIdList.indexOf(val2.id) != -1) { if (this.inventoryIdList.indexOf(val2.id) != -1) {
this.dataForm.deliveryProductRelationList[idx].cargoId = '' this.dataForm.deliveryProductRelationList[idx].cargoId = ''

@ -572,7 +572,8 @@
<div class="JNPF-common-title"> <div class="JNPF-common-title">
<h2></h2> <h2></h2>
</div> </div>
<el-table :data="dataForm.deliveryProductRelationList" size='mini'> <el-table :data="dataForm.deliveryProductRelationList" size='mini' show-summary
:summary-method="getSummaries">
<el-table-column type="index" width="50" label="序号" align="center" /> <el-table-column type="index" width="50" label="序号" align="center" />
<el-table-column label="商品名称" v-if="judgeShow('deliveryproductrelation-productId')" <el-table-column label="商品名称" v-if="judgeShow('deliveryproductrelation-productId')"
prop="productId" width="250"> prop="productId" width="250">
@ -1180,6 +1181,39 @@ export default {
this.initPurchaseData(); this.initPurchaseData();
}, },
methods: { methods: {
getSummaries(param) {
const summaryField = ["saleNum", "grossWeight", "tareWeight", "buckleWeight", "netWeight", "deliveryNum", "taxCount", "notTaxCount"];
const { columns, data } = param;
const sums = [];
columns.forEach((column, index) => {
if (index === 0) {
sums[index] = '合计';
return;
}
if (!summaryField.includes(column.property)) {
sums[index] = '';
return;
}
const values = data.map(item => Number(item[column.property]));
if (!values.every(value => isNaN(value))) {
sums[index] = values.reduce((prev, curr) => {
const value = Number(curr);
if (!isNaN(value)) {
return this.jnpf.floatAdd(prev, curr);
} else {
return prev;
}
}, 0);
const thousandsField = [];
if (thousandsField.includes(column.property)) {
sums[index] = thousandsFormat(sums[index]);
}
} else {
sums[index] = '';
}
});
return sums;
},
// //
choiceProduct() { choiceProduct() {
this.BomgoodsBoxVisible = true this.BomgoodsBoxVisible = true

@ -592,7 +592,8 @@
<div class="JNPF-common-title"> <div class="JNPF-common-title">
<h2></h2> <h2></h2>
</div> </div>
<el-table :data="dataForm.deliveryProductRelationList" size='mini'> <el-table :data="dataForm.deliveryProductRelationList" size='mini' show-summary
:summary-method="getSummaries">
<el-table-column type="index" width="50" label="序号" align="center" /> <el-table-column type="index" width="50" label="序号" align="center" />
<el-table-column label="商品名称" v-if="judgeShow('deliveryproductrelation-productId')" <el-table-column label="商品名称" v-if="judgeShow('deliveryproductrelation-productId')"
prop="productId" width="250"> prop="productId" width="250">
@ -1204,6 +1205,39 @@ export default {
this.initPurchaseData(); this.initPurchaseData();
}, },
methods: { methods: {
getSummaries(param) {
const summaryField = ["saleNum", "grossWeight", "tareWeight", "buckleWeight", "netWeight", "deliveryNum", "taxCount", "notTaxCount"];
const { columns, data } = param;
const sums = [];
columns.forEach((column, index) => {
if (index === 0) {
sums[index] = '合计';
return;
}
if (!summaryField.includes(column.property)) {
sums[index] = '';
return;
}
const values = data.map(item => Number(item[column.property]));
if (!values.every(value => isNaN(value))) {
sums[index] = values.reduce((prev, curr) => {
const value = Number(curr);
if (!isNaN(value)) {
return this.jnpf.floatAdd(prev, curr);
} else {
return prev;
}
}, 0);
const thousandsField = [];
if (thousandsField.includes(column.property)) {
sums[index] = thousandsFormat(sums[index]);
}
} else {
sums[index] = '';
}
});
return sums;
},
//退 //退
priceCount(row) { priceCount(row) {
if (row.deliveryNum) { if (row.deliveryNum) {

@ -754,7 +754,8 @@
<div class="JNPF-common-title"> <div class="JNPF-common-title">
<h2></h2> <h2></h2>
</div> </div>
<el-table :data="dataForm.businessOrderProductRelationalList" size='mini'> <el-table :data="dataForm.businessOrderProductRelationalList" size='mini' show-summary
:summary-method="getSummaries">
<el-table-column type="index" width="50" label="序号" align="center" fixed /> <el-table-column type="index" width="50" label="序号" align="center" fixed />
<el-table-column label="商品名称" v-if="this.dataForm.orderType == '3'" prop="productId" <el-table-column label="商品名称" v-if="this.dataForm.orderType == '3'" prop="productId"
width="250" align="center" fixed="left"> width="250" align="center" fixed="left">
@ -1469,6 +1470,39 @@ export default {
this.initPurchaseData(); this.initPurchaseData();
}, },
methods: { methods: {
getSummaries(param) {
const summaryField = ["businessNum", "taxCount", "notTaxCount"];
const { columns, data } = param;
const sums = [];
columns.forEach((column, index) => {
if (index === 0) {
sums[index] = '合计';
return;
}
if (!summaryField.includes(column.property)) {
sums[index] = '';
return;
}
const values = data.map(item => Number(item[column.property]));
if (!values.every(value => isNaN(value))) {
sums[index] = values.reduce((prev, curr) => {
const value = Number(curr);
if (!isNaN(value)) {
return this.jnpf.floatAdd(prev, curr);
} else {
return prev;
}
}, 0);
const thousandsField = [];
if (thousandsField.includes(column.property)) {
sums[index] = thousandsFormat(sums[index]);
}
} else {
sums[index] = '';
}
});
return sums;
},
// 线 // 线
removeForm() { removeForm() {
if (this.dataForm.orderType == '3') { if (this.dataForm.orderType == '3') {

Loading…
Cancel
Save