Commit aad58337 authored by dcy's avatar dcy

Merge remote-tracking branch 'origin/dev' into dev

parents 349a8df6 66183b78
......@@ -12,6 +12,7 @@ export const DICT_TYPE = {
AUDIT_STATUS: 'audit_status',
ADVANCE_STATUS: 'advance_status',
BOX_SHIPMENT_STATUS: 'box_shipment_status',
BOX_SEA_AIR_SHIPMENT_STATUS: 'shipment_sea_air_state',
// ========== SYSTEM 模块 ==========
SYSTEM_USER_SEX: 'system_user_sex',
......
......@@ -100,7 +100,7 @@
size="small"
>
<el-option
v-for="dict in this.getDictDatas(DICT_TYPE.BOX_ORDER_SHIPMENT_STATE)"
v-for="dict in this.getDictDatas(DICT_TYPE.BOX_SEA_AIR_SHIPMENT_STATUS)"
:key="dict.value"
:label="$l(dict, 'label')"
:value="dict.value"
......
This diff is collapsed.
......@@ -161,6 +161,8 @@
</el-table-column>
<el-table-column label="操作" align="center" fixed="right" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row, true)"
v-hasPermi="['ecw:coupon:update']">查看</el-button>
<el-button v-if="scope.row.status != 1" size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
v-hasPermi="['ecw:coupon:update']">编辑</el-button>
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleCopy(scope.row)"
......@@ -277,9 +279,13 @@ export default {
return this.$router.push('edit')
},
/** 修改按钮操作 */
handleUpdate(row) {
handleUpdate(row, readonly) {
const couponId = row.couponId;
return this.$router.push('edit?id=' + couponId)
let url = 'edit?id=' + couponId
if(readonly){
url += '&readonly=1'
}
return this.$router.push(url)
},
handleCopy(row){
this.$router.push('edit?action=copy&id=' + row.couponId)
......
......@@ -106,11 +106,15 @@
</el-select> -->
<dict-selector :type="DICT_TYPE.TARGET_TYPE" v-model="form.targetType" :placeholder="$t('请选择目标类型')" />
</el-form-item>
<el-form-item :label="$t('计算周期')" prop="targetPeriodName">
<el-select v-model="form.targetPeriodName" :placeholder="$t('请选择计算周期')" @change="setTime">
<el-option v-for="item in targetPeriod" :label="item.name" :value="item.name" :key="item.name"></el-option>
</el-select>
</el-form-item>
<div class="flex">
<el-form-item :label="$t('计算周期')" prop="startTime">
<el-date-picker v-model="form.startTime" placeholder="" value-format="yyyy-MM-dd HH:mm:ss" class="w-150"></el-date-picker>
</el-form-item>
<div class="ml-10 mr-10 flex flex-center" style="margin-bottom:22px">-</div>
<el-form-item prop="endTime" label-width="0">
<el-date-picker v-model="form.endTime" placeholder="" value-format="yyyy-MM-dd HH:mm:ss" class="w-150"></el-date-picker>
</el-form-item>
</div>
<el-form-item :label="$t('运输方式')" prop="transportType">
<dict-selector :type="DICT_TYPE.ECW_TRANSPORT_TYPE" v-model="form.transportType" formatter="number" @change="showChannel"/>
</el-form-item>
......@@ -147,6 +151,7 @@
import {listSimpleDepts} from "@/api/system/dept";
import {getChannelList} from '@/api/ecw/channel';
import dayjs from "dayjs";
import { parseTime } from '@/utils/ruoyi';
export default {
name: "DeptTarget",
......@@ -213,6 +218,8 @@
targetPeriodName: [{required: true, message: this.$t("计算周期不能为空"), trigger: "change"}],
transportType: [{required: true, message: this.$t("运输方式不能为空"), trigger: "change"}],
cubeNum: [{required: true, message: this.$t("立方数不能为空"), trigger: "blur"}],
startTime: [{required: true, message: this.$t("起始时间不能为空"), trigger: "change"}],
endTime: [{required: true, message: this.$t("截止时间不能为空"), trigger: "change"}],
}
};
},
......@@ -372,6 +379,10 @@
} else {
this.targetPeriod = this.yearList;
}
this.form.startTime = parseTime(this.form.startTime)
this.form.endTime = parseTime(this.form.endTime)
this.open = true;
this.title = this.$t("修改部门业绩目标设置");
});
......
......@@ -35,7 +35,7 @@
</tr>
<tr v-for="(item, index) in list" :key="index">
<td>{{ index + 1 }}</td>
<td>{{ item.receiptNo||''}}</td>
<td>{{ orderData.tidanNo||''}}</td>
<td>{{ item.orderNo }}</td>
<td>{{ item.titleZh }}</td>
<td><dict-tag :value="item.feeType" :type="DICT_TYPE.FEE_TYPE"></dict-tag></td>
......@@ -44,7 +44,7 @@
<td>{{ item.discountTotal||0 }}</td>
</tr>
<tr v-for="(items, indexs) in receiptAccountList" :key="indexs">
<td><dict-tag :type="DICT_TYPE.BOX_SHIPPING_PRICE_UNIT" :value="items.collectionCurrencyId" />应收合计</td>
<td><dict-tag :type="DICT_TYPE.BOX_SHIPPING_PRICE_UNIT" :value="items.currencyId" />应收合计</td>
<td ><span v-if="items.discountTotal>0">{{ `${items.receivableAmount - items.discountTotal }(${items.receivableAmount} - ${items.discountTotal})` }}</span>
<span v-else>{{ `${items.receivableAmount - items.discountTotal }` }}</span>
</td>
......@@ -57,14 +57,14 @@
<div style="text-align: center;border-left:1px solid #666;border-right: 1px solid #666;height: 36px;line-height: 36px;">
银行信息
</div>
<div style="display: flex;align-items: center;border-top: 1px solid #666;border-left:1px solid #666;border-right: 1px solid #666;" v-for="(bankTiem,index) in receiptAccountList" :key="index">
<div style="display: flex;align-items: center;border-top: 1px solid #666;border-left:1px solid #666;border-right: 1px solid #666;" v-for="(bankTiem,index) in detailed" :key="index">
<div style="padding:6px 0;width: 12.5%;text-align: center;border-right: 1px solid #666;" >
<p style="margin: 0;word-break: break-all;">户名:{{bankTiem.platformAccountName}}</p>
<p style="margin: 0;word-break: break-all;">银行名称:{{bankTiem.platformAccountBlankName}}</p>
<p style="margin: 0;word-break: break-all;">A/C NO{{bankTiem.platformAccountNo}}</p>
<p style="margin: 0;word-break: break-all;">户名:{{bankTiem.accountName}}</p>
<p style="margin: 0;word-break: break-all;">银行名称:{{bankTiem.accountBankName||''}}</p>
<p style="margin: 0;word-break: break-all;">A/C NO{{bankTiem.accountNo}}</p>
</div>
<div style="padding:6px 0;width: 87.5%;text-align: center;">
<p style="margin: 0;">应收<dict-tag :type="DICT_TYPE.BOX_SHIPPING_PRICE_UNIT" :value="bankTiem.currencyId" />{{bankTiem.receivableAmount}}¥</p>
<p style="margin: 0;">实收<dict-tag :type="DICT_TYPE.BOX_SHIPPING_PRICE_UNIT" :value="bankTiem.currencyId" />{{bankTiem.writeOffAmount}}¥</p>
<!-- <p style="margin: 0;">未收:¥{{bankTiem.noReceipt}}</p> -->
</div>
</div>
......@@ -107,7 +107,7 @@
loadings: false,
form:{},
title:'收款单',
creatorData:[],
// creatorData:[],
list:[],
fileList:[],
bankData:[],
......@@ -119,14 +119,14 @@
deptData:[],
deptArr:[],
id:0,
orderData:[],
orderData:{},
detailed:[]
}
},
async created() {
let that = this
listSimpleUsers().then(res =>that.creatorData = res.data)
getBankAccountPage(that.params).then(res =>that.bankData = res.data.list)
// listSimpleUsers().then(res =>that.creatorData = res.data)
// getBankAccountPage(that.params).then(res =>that.bankData = res.data.list)
await listSimpleDepts().then(res =>{
res.data.forEach((item)=>{
if(item.parentId==0){
......@@ -205,15 +205,8 @@
methods: {
getList() {
getReceivableItem({ id: this.id }).then(res => {
this.detailed = res.data.map(v => ({
...v,
amountDate: this.parseTime(v.amountDate, '{y}-{m}-{d}'),
accountNo: +v.accountNo,
rate:parseFloat(v.rate).toFixed(6),
attr: v.attr ? v.attr.split(',').map(t => ({ name: t.slice(t.lastIndexOf('/') + 1), url: t })) : []
}))
this.calculation()
})
this.detailed = res.data
})
},
getCollectionData(){
let that = this
......@@ -222,6 +215,16 @@
that.form.departmentName = that.deptData.find(v => v.id == that.form.departmentId).name
})
},
getRecep(id){
var total = 0
if(id){
var data = this.detailed.filter(item=>item.currencyId==id)
data.forEach(item => {
total = NP.plus(total, item.writeOffAmount)
})
}
return total
},
handleAddReceiptItem() {
let recepted = []
this.detailed.forEach(item => {
......@@ -351,7 +354,7 @@
}
}
if(chineseStr == ''){
chineseStr += cnNums[0] + cnIntLast + cnInteger;
chineseStr = cnNums[0] + cnIntLast + cnInteger
}else if(decimalNum == ''){
chineseStr += cnInteger;
}
......
......@@ -290,7 +290,7 @@
</el-form-item>
<el-form-item :label="$t('收款账户')" prop="accountNo" :rules="{ required: true, trigger: ['blur', 'change'], message: $t('收款账户不能为空') }">
<el-select v-if="!isView" v-model="addForm.accountNo" :placeholder="$t('请选择收款账户')" style="width: 220px" @change="accountChange">
<el-select v-if="!isView" v-model="addForm.accountId" :placeholder="$t('请选择收款账户')" style="width: 220px" @change="accountChange">
<el-option v-for="item in bankData" :key="item.id" :label="item.baAccountName + '(' + item.baAccountNum + ')'" :value="item.id" />
</el-select>
<span v-else>{{ addForm.accountNo }}</span>
......@@ -647,6 +647,8 @@ export default {
accountChange(val){
var data = this.bankData.find(item=>item.id==val)
this.$set(this.addForm,'accountName',data.baAccountName)
this.$set(this.addForm,'accountNo',data.baAccountNum)
this.$set(this.addForm,'accountBankName',data.baBankName)
},
RMBtoUS() {
return NP.divide(100, this.currencyList.find(v => v.titleEn === 'USD').huilv)
......
......@@ -31,7 +31,7 @@
{{form.orgSeaFreight}} {{ currencyMap[form.seaFreightCurrency] }} / {{ unitMap[form.seaFreightVolume] }}
</el-form-item>
<el-form-item :label="$t('佣金类型')" prop="commissionType">
<dict-selector :type="DICT_TYPE.COMMISSION_TYPE" v-model="form.commissionType" form-type="radio" />
<dict-selector :type="DICT_TYPE.COMMISSION_TYPE" v-model="form.commissionType" form-type="radio" formatter="number" />
</el-form-item>
<!-- 明佣或者明佣+暗佣才显示 -->
......@@ -73,7 +73,7 @@
<div v-if="form.applyStatus != 1">
<el-button type="primary" @click="handleSubmit">提交</el-button>
<el-button type="primary" @click="handleSubmit" :disabled="!submitable">提交</el-button>
</div>
<div v-else>
<el-button type="primary" @click="$router.push('/bpm/process-instance/detail?id=' + form.formId)">
......@@ -133,6 +133,20 @@ export default {
}
},
computed: {
// 是否可以提交
submitable(){
let submitable = false;
[
['orgLightCommissionAmount', 'lightCommissionAmount'],
['orgShadeCommissionAmount', 'shadeCommissionAmount'],
['commissionType', 'orgCommissionType']
].forEach(item => {
if(this.form[item[0]] != this.form[item[1]]){
submitable = true
}
})
return submitable
},
// 根据渠道id显示渠道名
getChannelNameById(){
return channelId => {
......
......@@ -56,7 +56,7 @@
<div class="page-title">审批流程</div>
<work-flow xmlkey="sheet_sale" v-model="ccIdArr" />
<div v-if="form.applyStatus != 1">
<el-button type="primary" @click="handleSubmit">提交</el-button>
<el-button type="primary" @click="handleSubmit" :disabled="!submitable">提交</el-button>
</div>
<div v-else>
<el-button type="primary" @click="$router.push('/bpm/process-instance/detail?id=' + form.formId)">
......@@ -107,6 +107,7 @@ export default {
form: {
type: 1
},
orignal: {}, // 原始数据,用来判断是否做了修改
rules:{
seaFreight : {required: true, message: '运费不能为空'},
clearanceFreight: {required: true, message: '清关费不能为空'}
......@@ -130,6 +131,7 @@ export default {
getOfferSpecial(){
getOfferSpecial(this.offerProdId, {type: 1}).then(r => {
this.form = r.data
this.orignal = r.data
})
},
getProductTypeNameById(id){
......@@ -140,6 +142,19 @@ export default {
}
},
computed: {
// 是否可以提交
submitable(){
let submitable = false;
[
['orgClearanceFreight', 'clearanceFreight'],
['orgSeaFreight', 'seaFreight']
].forEach(item => {
if(this.form[item[0]] != this.form[item[1]]){
submitable = true
}
})
return submitable
},
// 根据渠道id显示渠道名
getChannelNameById(){
return channelId => {
......
......@@ -49,7 +49,7 @@
</div>
<el-table :data="[formData]" border class="release-table">
<el-table-column :label="$t('控货箱数')">
{{detail.sumNum}}
{{detail.sumNum - detail.releaseNum }}
</el-table-column>
<el-table-column :label="$t('放货箱数')">
<template slot-scope="{row}">
......
......@@ -89,6 +89,7 @@
</el-descriptions-item>
<el-descriptions-item :label="$t('代收货款')">
<dict-tag :type="DICT_TYPE.INFRA_BOOLEAN_STRING" :value="order.isCollection" />
<template v-if="order.isCollection == 1">({{order.collectionProxy}}{{currencyMap[order.collectionProxyCurrency]}})</template>
</el-descriptions-item>
<el-descriptions-item :label="$t('集运仓库')">
{{order.isExternalWarehouse ? $t('外部仓') : $t('自有仓') }}
......@@ -200,10 +201,14 @@
{{objective.titleZh || '-'}}
</el-table-column>
<el-table-column :label="$t('品名')" prop="titleZh"></el-table-column>
<el-table-column :label="$t('箱数')" prop="num"></el-table-column>
<el-table-column :label="$t('箱数')" prop="num">
<template slot-scope="{row}">
{{row.num || '-'}}
</template>
</el-table-column>
<el-table-column :label="$t('体积/重量')">
<template slot-scope="{row}">
{{row.volume}} / {{row.weight}}
{{row.volume || '-'}} / {{row.weight || '-'}}
</template>
</el-table-column>
<el-table-column :label="$t('收款类型')">
......
......@@ -733,8 +733,11 @@ export default {
if(!router) return
this.$set(this.form, 'departureId', router.startCityId)
this.$set(this.form, 'objectiveId', router.destCityId)
this.calculationPrice()
},
'form.packageTypeArr'(val){
console.log('packageType', val, val.length)
this.$set(this.form, 'packageType', val ? val.join(',') : '')
},
'form.isExternalWarehouse'(isExternalWarehouse){
......@@ -787,12 +790,12 @@ export default {
methods: {
getOrder(){
getUpdateInfo(this.$route.query.id).then(res => {
this.form = res.data
this.form = {...res.data}
this.form.orderItemVOList.forEach(item => {
item.prodAttrArr = item.prodAttrIds.split(',').filter(item => item != '')
})
this.form.orderItemVOList = [];
this.form.type = this.form.type ? this.form.type.split(',').filter(item => item != '') : []
this.form.packageTypeArr = this.form.packageType ? this.form.packageType.split(',').filter(item => item != '') : []
this.$set(this.form, 'consignorCompany', res.data.consignorVO.company)
this.$set(this.form, 'consignorContactsId', res.data.consignorVO.customerContactsId)
this.$set(this.form, 'consignorCountryCode', res.data.consignorVO.countryCode.replace('+', ''))
......@@ -818,7 +821,12 @@ export default {
}
// 如果已完成入仓,则需要监听必填内容,发生更改后需要填写审批表单
this.$nextTick(res => {
this.$nextTick(() => {
res.data.orderItemVOList.forEach(item => {
item.prodAttrArr = item.prodAttrIds.split(',').filter(item => item != '').map(attrId => +attrId)
this.form.orderItemVOList.push({...item})
})
if(this.inWarehouse){
Object.keys(this.rules).forEach(field => {
console.log("watch", field)
......@@ -908,7 +916,9 @@ export default {
onProductChange(row, product){
console.log(product)
// row.goodsType = product ? product.typeId : null
row.prodAttrArr = !product ? [] : product.attrId.split(',').filter(item => item !== '').map(item => +item)
if(product.id != row.prodId){
row.prodAttrArr = !product ? [] : product.attrId.split(',').filter(item => item !== '').map(item => +item)
}
row.prodTitleEn = product.titleEn
row.prodTitleZh = product.titleZh
this.calculationPrice()
......@@ -972,8 +982,8 @@ export default {
if(this.form.harvestMethod == 2){
if(!this.form.country || !this.form.province || !this.form.city){
return this.$notify({
title: '提示',
message: "收货地区填写不完整",
title: this.$t('提示'),
message: this.$t("收货地区填写不完整"),
type: 'warning'
});
}
......
......@@ -79,8 +79,9 @@
<el-row :span="12">
<el-form-item :label="$t('异常描述')+':'">
<dict-tag :type="DICT_TYPE.ORDER_ERROR_TYPE" :value="orderExceptionData.orderExceptionType" />
<!-- <dict-tag :type="DICT_TYPE.ORDER_ERROR_TYPE" :value="orderExceptionData.orderExceptionType" /> -->
<!-- {{orderExceptionData.orderExceptionDescVO?orderExceptionData.orderExceptionDescVO.descZh:''}} -->
{{$l(orderExceptionData.orderExceptionDescVO, 'desc')}}
</el-form-item>
<el-button v-if="orderExceptionData.orderExceptionType=='order_pay_exception'" type="primary" plain icon="el-icon-plus" style="margin-left: 200px;" @click="handleAdd">新增收款单</el-button>
</el-row>
......@@ -232,7 +233,7 @@
</el-col>
</el-row>
<el-row :span="8" v-if="orderExceptionData.orderExceptionType=='order_doc_exception'">
<el-form-item :label="$t('报关资料')+':'" size="medium">
<el-form-item :label="$t('报关资料')+':'" size="medium" :require="true">
<file-upload v-model="handlerParams.fileList" :value="orderExceptionData.file" ></file-upload>
</el-form-item>
</el-row>
......@@ -470,6 +471,12 @@
this.$modal.msgError(this.$t('请选择处理结果'));
return
}
if(this.orderExceptionData.orderExceptionType=='order_doc_exception'){
if(!this.handlerParams.fileList||this.handlerParams.fileList.length==0){
this.$modal.msgError(this.$t('请上传报关资料'));
return
}
}
handlerExceptionByExceptionId(this.handlerParams).then(res=>{
this.$modal.msgSuccess(this.$t('提交成功'));
this.$redirect('/order/pending?id=' + this.orderData.orderId)
......
......@@ -78,7 +78,7 @@
<div class="page-title">审批流程</div>
<work-flow xmlkey="commission_config" v-model="ccIdArr" />
<div v-if="form.applyStatus != 1">
<el-button type="primary" @click="handleSubmit">提交</el-button>
<el-button type="primary" @click="handleSubmit" :disabled="!submitable">提交</el-button>
</div>
<div v-else>
<el-button type="primary" @click="$router.push('/bpm/process-instance/detail?id=' + form.formId)">
......@@ -199,6 +199,20 @@ export default {
}
},
computed: {
// 是否可以提交
submitable(){
let submitable = false;
[
['orgLightCommissionAmount', 'lightCommissionAmount'],
['orgShadeCommissionAmount', 'shadeCommissionAmount'],
['commissionType', 'orgCommissionType']
].forEach(item => {
if(this.form[item[0]] != this.form[item[1]]){
submitable = true
}
})
return submitable
},
// 根据渠道id显示渠道名
getChannelNameById(){
return channelId => {
......
......@@ -58,7 +58,7 @@
<div class="page-title">审批流程</div>
<work-flow xmlkey="special_apply" v-model="ccIdArr" />
<div v-if="form.applyStatus != 1">
<el-button type="primary" @click="handleSubmit">提交</el-button>
<el-button type="primary" @click="handleSubmit" :disabled="!submitable">提交</el-button>
</div>
<div v-else>
<el-button type="primary" @click="$router.push('/bpm/process-instance/detail?id=' + form.formId)">
......@@ -148,6 +148,19 @@ export default {
}
},
computed: {
// 是否可以提交
submitable(){
let submitable = false;
[
['orgClearanceFreight', 'clearanceFreight'],
['orgFreight', 'freight']
].forEach(item => {
if(this.form[item[0]] != this.form[item[1]]){
submitable = true
}
})
return submitable
},
// 根据渠道id显示渠道名
getChannelNameById(){
return channelId => {
......
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment