This commit is contained in:
aihe 2024-05-23 00:32:47 +08:00
parent ffbb397cc6
commit aef20b6618
7 changed files with 345 additions and 201 deletions

View File

@ -1,5 +1,5 @@
<template> <template>
<view v-for="(item, index) in list" :style="itemStyle" <view v-for="(item, index) in filDataList" :style="itemStyle"
@click="handleCheckBoxClick(item, index)" @click="handleCheckBoxClick(item, index)"
> >
<slot :item="item" :index="index" :checked="checkedVal.indexOf(item.val)>-1" :handleCheckFun="()=> { handleCheckBoxClick(item, index) }" <slot :item="item" :index="index" :checked="checkedVal.indexOf(item.val)>-1" :handleCheckFun="()=> { handleCheckBoxClick(item, index) }"
@ -8,13 +8,27 @@
</template> </template>
<script> <script>
import { transListKeyTitle } from "@/common/util"
const typeEnum = { const typeEnum = {
single: 'single', single: 'single',
multiple: 'multiple' multiple: 'multiple'
} }
const vdataTypeEnum = {
string: 'string',
array: 'array'
}
export default { export default {
computed: { computed: {
filDataList() {
let list = this.list || []
if(this.transKeyVal) {
list = transListKeyTitle({ ...this.transKeyVal, list: list })
}
return list
},
checkedVal() { checkedVal() {
let val = this.value let val = this.value
let res = [] let res = []
@ -43,7 +57,17 @@
}, },
value: { value: {
default () { default () {
return [] return ''
}
},
text: {
default () {
return ''
}
},
vdataType: {
default () {
return vdataTypeEnum.string
} }
}, },
minChecked: { minChecked: {
@ -60,8 +84,17 @@
default () { default () {
return '' return ''
} }
},
transKeyVal: {
default () {
return null
// {
// // valKey: '',
// // titleKey: ''
// }
} }
}, },
},
data() { data() {
return { return {
@ -99,17 +132,21 @@
}, },
changeTabCheck(checkedVal) { changeTabCheck(checkedVal) {
let value = checkedVal let value = checkedVal
let allList = this.list.concat(this.checkedList) let allList = this.filDataList.concat(this.checkedList)
let checkedList = [] let checkedList = []
checkedVal.map(val=> { checkedVal.map(val=> {
let item = allList.filter(t=> t.val == val)[0] let item = allList.filter(t=> t.val == val)[0]
checkedList.push(item) checkedList.push(item)
}) })
if (this.type == typeEnum.single) { let text = checkedList.map(t=> t.title)
value = checkedVal[0] if(this.vdataType == vdataTypeEnum.string) {
value = value.join(',')
text = text.join(',')
} }
this.$emit('onChange', value, checkedList) this.$emit('onChange', value, text, checkedList)
this.$emit('update:value', value) this.$emit('update:value', value)
this.$emit('update:text', text)
this.$emit('update:checkedList', checkedList)
} }
} }
} }

View File

@ -2,7 +2,9 @@
<view class=""> <view class="">
<view class=""> <view class="">
<tpx-checkitems :list="list" :value="value" v-slot="dlCurrent" :min-checked="minChecked" :type="type" <tpx-checkitems :list="list" :value="value" :text="text" :vdataType="vdataType"
:transKeyVal="transKeyVal"
v-slot="dlCurrent" :min-checked="minChecked" :type="type"
:checkedList="checkedList" @onChange="handleDataItemChange" :checkedList="checkedList" @onChange="handleDataItemChange"
> >
<view slot :class="`slt-item ${dlCurrent.checked?'active':''}`"> <view slot :class="`slt-item ${dlCurrent.checked?'active':''}`">
@ -59,8 +61,27 @@
default () { default () {
return [] return []
} }
},
text: {
default () {
return ''
} }
}, },
vdataType: {
default () {
return 'string'
}
},
transKeyVal: {
default () {
return null
// {
// // valKey: '',
// // titleKey: ''
// }
}
},
},
data() { data() {
return { return {
@ -74,9 +95,10 @@
unmounted() {}, unmounted() {},
methods: { methods: {
handleDataItemChange(val, checkedList) { handleDataItemChange(value, text, checkedList) {
this.$emit('onChange', val, checkedList) this.$emit('onChange', value, text, checkedList)
this.$emit('update:value', val) this.$emit('update:value', value)
this.$emit('update:text', text)
this.$emit('update:checkedList', checkedList) this.$emit('update:checkedList', checkedList)
} }
} }

View File

@ -15,14 +15,7 @@
export default { export default {
computed: { computed: {
leftText() { leftText() {
let str = '' let str = this.text || ''
if (this.value) {
const curItem = this.list.filter(item => item.val == this.value)[0] || {}
curItem.title && (str = curItem.title)
}
if(!str && Array.isArray(this.checkedList)) {
str = this.checkedList.map(t=> t.title).join(',')
}
if(!str) { if(!str) {
str = this.placeholder str = this.placeholder
} }
@ -62,21 +55,11 @@
return false return false
} }
}, },
value: { text: {
default () { default () {
return '' return ''
} }
}, },
list: {
default () {
return []
}
},
checkedList: {
default () {
return []
}
},
}, },
data() { data() {
return { return {

View File

@ -0,0 +1,72 @@
<template>
<u-row justify="between">
<view>
<template v-if="!$slots.left">
<u-text :text="label" size="28" :bold="true"></u-text>
</template>
<slot name="left"></slot>
</view>
<u-row :custom-style="`min-width: ${rightWidth}rpx;`" justify="end" align="center">
<template v-if="!$slots.right">
<u-text align="right" margin="0 12rpx 0 0" size="26"
:text="title"></u-text>
<template v-if="!$slots.rightRcon">
<u-icon v-if="list || checkedList" size="26" name="arrow-right" color="#333"></u-icon>
</template>
<slot name="rightRcon"></slot>
</template>
<slot name="right"></slot>
</u-row>
</u-row>
</template>
<script>
export default {
computed: {
title() {
let title = this.text || this.placeholder
return title
}
},
props: {
rightWidth:{
default() {
return 400
}
},
label: {
default () {
return ''
}
},
placeholder: {
default () {
return '请选择'
}
},
text: {
},
},
data() {
return {
}
},
created() {
},
onHide() {
},
unmounted() {},
methods: {
}
}
</script>
<style scoped lang="scss">
</style>

View File

@ -2,9 +2,12 @@
<view @click.stop="handleRootClick" class="" style="position: relative;"> <view @click.stop="handleRootClick" class="" style="position: relative;">
<view @click="handleSelectSwitch"> <view @click="handleSelectSwitch">
<slot v-if="$slots.default"></slot> <slot v-if="$slots.default"></slot>
<default-select-input v-else :placeholder="placeholder" :show="show" :list="filDataList" :value="value" :isWhite="isWhite" <template v-else>
:checkedList="filDatacheckedList" :customStyle="customStyle" <default-select-input v-if="selectTextType == 'input'" :placeholder="placeholder" :show="show"
:isWhite="isWhite" :text="text" :customStyle="customStyle"
></default-select-input> ></default-select-input>
<DefaultSelectText v-if="selectTextType == 'text'"></DefaultSelectText>
</template>
</view> </view>
<view v-if="mode == modeEnum.sheet"> <view v-if="mode == modeEnum.sheet">
@ -12,6 +15,7 @@
<view style="height: calc(60vh);"> <view style="height: calc(60vh);">
<tpx-scroll-view :resObject="filResObject" :searchParam="searchParam" :getListFun="getListFun" size="sm" :showLoadedAll="false" @onListChange="onListChange"> <tpx-scroll-view :resObject="filResObject" :searchParam="searchParam" :getListFun="getListFun" size="sm" :showLoadedAll="false" @onListChange="onListChange">
<content-items :value="value" :list="filDataList" :checkedList="filDatacheckedList" :minChecked="minChecked" :type="type" <content-items :value="value" :list="filDataList" :checkedList="filDatacheckedList" :minChecked="minChecked" :type="type"
:text="text" :vdataType="vdataType" :transKeyVal="transKeyVal"
@onChange="handleDataItemChange" @onChange="handleDataItemChange"
></content-items> ></content-items>
</tpx-scroll-view> </tpx-scroll-view>
@ -23,6 +27,7 @@
<view v-if="mode == modeEnum.drop && show" class="md-drop-cont"> <view v-if="mode == modeEnum.drop && show" class="md-drop-cont">
<tpx-scroll-view :maxHeight="dropMaxHeight" :resObject="filResObject" :searchParam="searchParam" :getListFun="getListFun" size="sm" :showLoadedAll="false" @onListChange="onListChange"> <tpx-scroll-view :maxHeight="dropMaxHeight" :resObject="filResObject" :searchParam="searchParam" :getListFun="getListFun" size="sm" :showLoadedAll="false" @onListChange="onListChange">
<content-items :value="value" :list="filDataList" :minChecked="minChecked" :type="type" <content-items :value="value" :list="filDataList" :minChecked="minChecked" :type="type"
:text="text" :vdataType="vdataType" :transKeyVal="transKeyVal"
@onChange="handleDataItemChange" @onChange="handleDataItemChange"
></content-items> ></content-items>
</tpx-scroll-view> </tpx-scroll-view>
@ -34,6 +39,7 @@
<script> <script>
import ContentItems from "./content-items" import ContentItems from "./content-items"
import DefaultSelectInput from "./default-select-input" import DefaultSelectInput from "./default-select-input"
import DefaultSelectText from "./default-select-text"
import { transListKeyTitle } from "@/common/util" import { transListKeyTitle } from "@/common/util"
import { pageEventNames } from "@/common/enum" import { pageEventNames } from "@/common/enum"
@ -66,7 +72,7 @@
} }
}, },
components: { components: {
ContentItems, DefaultSelectInput ContentItems, DefaultSelectInput, DefaultSelectText
}, },
props: { props: {
isWhite: { isWhite: {
@ -146,12 +152,27 @@
// } // }
} }
}, },
text: {
default () {
return ''
}
},
vdataType: {
default () {
return 'string' // string | array
}
},
disabled: { disabled: {
default () { default () {
return false return false
} }
},
selectTextType: {
default () {
return 'input' // 选择框样式 input | text
} }
}, },
},
data() { data() {
return { return {
componentId: uni.$u.guid(20), componentId: uni.$u.guid(20),
@ -186,9 +207,10 @@
// this.$emit('update:show', !this.show) // this.$emit('update:show', !this.show)
this.show = !this.show this.show = !this.show
}, },
handleDataItemChange(val, checkedList) { handleDataItemChange(val, text, checkedList) {
this.$emit('onChange', val, checkedList) this.$emit('onChange', val, text, checkedList)
this.$emit('update:value', val) this.$emit('update:value', val)
this.$emit('update:text', text)
this.$emit('update:checkedList', checkedList) this.$emit('update:checkedList', checkedList)
if(this.resObject) { if(this.resObject) {
this.$emit('update:resObject', { this.$emit('update:resObject', {

View File

@ -1,136 +1,148 @@
export const getOrderModels = () => { export const getOrderModels = () => {
return { return {
"reciever": { // 收件人信息 reciever: { // 收件人信息
"country": undefined, country: undefined,
"name": "", name: '',
"phone": undefined, phone: undefined,
"province": undefined, province: undefined,
"city": undefined, city: undefined,
"district": undefined, district: undefined,
"town": undefined, town: undefined,
"address": undefined, address: undefined,
"postCode": undefined, postCode: undefined,
"email": undefined, email: undefined,
"company": undefined company: undefined
}, },
"sender": { // 发件人信息 sender: { // 发件人信息
"country": undefined, country: undefined,
"name": "", name: '',
"phone": undefined, phone: undefined,
"province": undefined, province: undefined,
"city": undefined, city: undefined,
"district": undefined, district: undefined,
"town": undefined, town: undefined,
"address": undefined, address: undefined,
"postCode": undefined, postCode: undefined,
"email": undefined, email: undefined,
"company": undefined company: undefined
}, },
"custOrderId": undefined, // 客户单号 custOrderId: undefined, // 客户单号
"billCode": "", // 运单号 billCode: '', // 运单号
"billCodeSub": undefined, // 子单号 billCodeSub: undefined, // 子单号
"orderDate": undefined, orderDate: undefined,
"userId": '', userId: '',
"openId": undefined, openId: undefined,
"paymentType": undefined, // 付款方式 paymentType: undefined, // 付款方式
"calcFeeType": "1", // 计费方式 calcFeeType: 1, // 计费方式
"custNo": undefined, // 月结账号 custNo: undefined, // 月结账号
"transLine": '', // 路线 transLine: '', // 路线
"productType": undefined, // 产品 productType: undefined, // 产品
"customsClear": undefined, // 清关方式 customsClear: undefined, // 清关方式
"customsEclaration": undefined, // 报关方式 customsEclaration: undefined, // 报关方式
"packType": undefined, // 包装类型 packType: undefined, // 包装类型
"dispatchMethod": undefined, // 派送方式 dispatchMethod: undefined, // 派送方式
"pickupMethod": undefined, // 取件方式 pickupMethod: undefined, // 取件方式
"pickStartDate": undefined, pickStartDate: undefined,
"pickFinishDate": undefined, pickFinishDate: undefined,
"intoWarehouseCode": undefined, intoWarehouseCode: undefined,
"intoWarehouseName": undefined, intoWarehouseName: undefined,
"intoWarehouseAddress": undefined, intoWarehouseAddress: undefined,
"intoWarehouseContact": undefined, intoWarehouseContact: undefined,
"intoWarehousePhone": undefined, intoWarehousePhone: undefined,
"intoWarehouseBillCode": undefined, intoWarehouseBillCode: undefined,
"customerDeliveryBeginTime": undefined, customerDeliveryBeginTime: undefined,
"goodsType": undefined, goodsType: undefined,
"goodsInfo": undefined, goodsInfo: undefined,
"totalWeight": undefined, // 总重量 = 结算重量 totalWeight: undefined, // 总重量 = 结算重量
"totalVolume": undefined, // 总体积 totalVolume: undefined, // 总体积
"parcelQty": 1, // 总件数 parcelQty: 1, // 总件数
"billWeight": undefined, // 实际重量 billWeight: undefined, // 实际重量
"volumeWeight": undefined, // 体积重量 = 实际体积(立方厘米)*(1000000/泡重比) (长宽高都是按 cm 来计量的 ) volumeWeight: undefined, // 体积重量 = 实际体积(立方厘米)*(1000000/泡重比) (长宽高都是按 cm 来计量的 )
"currency": undefined, currency: undefined,
"settlementWeight": undefined, // 结算重量 settlementWeight: undefined, // 结算重量
"feeWeight": undefined, feeWeight: undefined,
"blOverLong": undefined, blOverLong: undefined,
"blOverWeight": undefined, blOverWeight: undefined,
"overWeightNumber": undefined, overWeightNumber: undefined,
"feeRemaker": undefined, // 付款方式-其他-备注 feeRemaker: undefined, // 付款方式-其他-备注
"realValue": undefined, realValue: undefined,
"blDispFd": undefined, blDispFd: undefined,
"transferCode": undefined, transferCode: undefined,
"transferBillcode": undefined, transferBillcode: undefined,
"dispFdDate": undefined, dispFdDate: undefined,
"takePieceEmployeeCode": undefined, // 收派员 takePieceEmployeeCode: undefined, // 收派员
"sendSiteCode": undefined, // 发件站点 -- 当前登录账号的siteCode sendSiteCode: undefined, // 发件站点 -- 当前登录账号的siteCode
"destinationCode": undefined, // 目的地 code destinationCode: undefined, // 目的地 code
"destinationProvince": undefined, destinationProvince: undefined,
"destinationCity": undefined, destinationCity: undefined,
"destinationCounty": undefined, destinationCounty: undefined,
"dispatchUnderlingSiteCode": undefined, // 目的网点 - code dispatchUnderlingSiteCode: undefined, // 目的网点 - code
"dispatchUnderlingSite": undefined, // 目的网点 - 名称 dispatchUnderlingSiteName: undefined, // 目的网点 - 名称
"destinationCenterCode": undefined, destinationCenterCode: undefined,
"marketManCode": undefined, marketManCode: undefined,
"payee": undefined, // 回款联系人 payee: undefined, // 回款联系人
"salesmen": undefined, // 销售员 salesmen: undefined, // 销售员
"operateEmployeeCode": undefined, // 操作员 operateEmployeeCode: undefined, // 操作员
"blMessage": '1', // 寄件 短信开关 blMessage: '1', // 寄件 短信开关
"blAcceptMessage": '1', // 签收 短信开关 blAcceptMessage: '1', // 签收 短信开关
"remark": undefined, // 备注 remark: undefined, // 备注
"customerCode": undefined, // 客户code customerCode: undefined, // 客户code
"feeItems": [ // 计费信息 feeItems: [ // 计费信息
// { // {
// "feeCode": "费用类型 eg:1001", // feeCode: 费用类型 eg:1001,
// "feeName": "费用名称:保险费", // feeName: 费用名称:保险费,
// "fee": 10, // fee: 10,
// "currency": "币种 CNY", // currency: 币种 CNY,
// "quoteId": "报价ID", // quoteId: 报价ID,
// "orderNum": "序号: 1", // orderNum: 序号: 1,
// "calcExp": "计算公式", // calcExp: 计算公式,
// "addWeight": "续重", // addWeight: 续重,
// "remark": "费用条码描述" // remark: 费用条码描述
// } // }
], ],
"freight": undefined, // 计费总计 freight: undefined, // 计费总计
"cargoList": [ // 货物列表 cargoList: [ // 货物列表
// { // {
// "goodsCode": "货物代码:eg 123", // goodsCode: 货物代码:eg 123,
// "goodsName": "货物名称", // goodsName: 货物名称,
// "cargoQty": "货物数量: 10", // cargoQty: 货物数量: 10,
// "unit": "件", // unit: 件,
// "price": "1.2", // price: 1.2,
// "currency": "CNY", // currency: CNY,
// "nationArea": "中国", // nationArea: 中国,
// "taxNo": "行邮税号", // taxNo: 行邮税号,
// "hscode": "海关编码", // hscode: 海关编码,
// "brand": "品牌", // brand: 品牌,
// "material": "材质", // material: 材质,
// "purpose": "用途", // purpose: 用途,
// "ingredients": "成分", // ingredients: 成分,
// "goodsModel": "规格", // goodsModel: 规格,
// "orderNum": "序号", // orderNum: 序号,
// "supplier": "供应商", // // supplier: 供应商, //
// "abnormalQty": "异常数量", // // abnormalQty: 异常数量, //
// "isSave": "是否保存 1-保存" // isSave: 是否保存 1-保存
// } // }
], ],
"blPrepareInFreight": 0, // 是否入仓代垫运费 1-是 0-否 blPrepareInFreight: 0, // 是否入仓代垫运费 1-是 0-否
"prepareInEstFee": undefined, // 入仓代垫运费 prepareInEstFee: undefined, // 入仓代垫运费
"prepareInRealFee": undefined, // 代垫实际运费 prepareInRealFee: undefined, // 代垫实际运费
"prepareInExpress": undefined, // 快递公司 prepareInExpress: undefined, // 快递公司
"prepareInBillCode": undefined, // 快递单号 prepareInBillCode: undefined, // 快递单号
"prepareInRemark": undefined, // 预入仓自定义标识 prepareInRemark: undefined, // 预入仓自定义标识
"prepareInSupplier": undefined, // 预入仓供应商 prepareInSupplier: undefined, // 预入仓供应商
"warehouseInNo": [], // 进仓单号 warehouseInNo: [], // 进仓单号
"goodsPics": [], // 货物图片 goodsPics: [], // 货物图片
customerName: '', // 客户名称
transLineTypeName: '', // 线路名称
productTypeName: '', // 产品类型名称
operateEmployeeName: '', // 操作员名称
takePieceEmployeeName: '', // 收件员名称
dispatchManName: '', // 派件员名称
dispatchSiteName: '', // 派件网点名称
customerName: '', // 月结账户名称
salesmen: '', // 销售联系人名称
payee: '', // 回款联系人名称
sendSiteName: '', // 发件网点名称
destinationName: '', // 目的地名称
} }
} }

View File

@ -18,7 +18,7 @@
<!-- <u-row justify="between" custom-style="margin-top:20rpx;"> <!-- <u-row justify="between" custom-style="margin-top:20rpx;">
<view style="width: 130rpx;">客户</view> <view style="width: 130rpx;">客户</view>
<view style="flex:1;"> <view style="flex:1;">
<tpx-select v-model:resObject="kehuRes" :getListFun="getCustomerUserList" :transKeyVal="{valKey: 'customerCode',titleKey: 'customerName'}" v-model:value="submitParam.customerCode" :isWhite="true" placeholder="请选择客户"></tpx-select> <tpx-select v-model:resObject="kehuRes" v-model:text="submitParam.customerName" :getListFun="getCustomerUserList" :transKeyVal="{valKey: 'monthlyPayCode',titleKey: 'company'}" v-model:value="submitParam.customerCode" :isWhite="true" placeholder="请选择客户"></tpx-select>
</view> </view>
</u-row> --> </u-row> -->
</view> </view>
@ -40,20 +40,21 @@
<view> <view>
<template v-if="submitParam.reciever.country && submitParam.sender.country"> <template v-if="submitParam.reciever.country && submitParam.sender.country">
<view class="yunf-input-item"> <view class="yunf-input-item">
<tpx-select v-model:value="submitParam.transLine" v-model:resObject="wayRes" :getListFun="getTransLineList" :transKeyVal="{valKey: 'lineCode',titleKey: 'lineName'}" <tpx-select v-model:value="submitParam.transLine" v-model:text="submitParam.transLineTypeName" v-model:resObject="wayRes"
:getListFun="getTransLineList" :transKeyVal="{valKey: 'lineCode',titleKey: 'lineName'}"
:searchParam="waySearchParam" @onChange="handleWayChange" placeholder="请选择路线" :searchParam="waySearchParam" @onChange="handleWayChange" placeholder="请选择路线"
> >
<tpx-text-item label="线路" :checkedList="wayRes.checkedList"></tpx-text-item> <tpx-text-item label="路线" :value="submitParam.transLineTypeName"></tpx-text-item>
</tpx-select> </tpx-select>
</view> </view>
</template> </template>
<template v-if="submitParam.transLine"> <template v-if="submitParam.transLine">
<view class="yunf-input-item"> <view class="yunf-input-item">
<tpx-select v-model:value="submitParam.productType" v-model:resObject="productRes" :getListFun="getTransProductList" :transKeyVal="{valKey: 'prodCode',titleKey: 'prodName'}" :isWhite="true" <tpx-select v-model:value="submitParam.productType" v-model:text="submitParam.productTypeName" v-model:resObject="productRes" :getListFun="getTransProductList" :transKeyVal="{valKey: 'prodCode',titleKey: 'prodName'}" :isWhite="true"
:searchParam="productSearchParam" placeholder="请选择产品类型" :searchParam="productSearchParam" placeholder="请选择产品类型"
> >
<tpx-text-item label="产品类型" :checkedList="productRes.checkedList"></tpx-text-item> <tpx-text-item label="产品类型" :value="submitParam.productTypeName"></tpx-text-item>
</tpx-select> </tpx-select>
</view> </view>
</template> </template>
@ -83,14 +84,14 @@
</view> </view>
<view v-show="submitParam.pickupMethod == 1" class="yunf-input-item"> <view v-show="submitParam.pickupMethod == 1" class="yunf-input-item">
<tpx-select v-model:value="submitParam.operateEmployeeCode" v-model:resObject="caozuoRes" :getListFun="getOpStaffList" :transKeyVal="{valKey: 'empCode',titleKey: 'empName'}" placeholder="请选择操作员"> <tpx-select v-model:value="submitParam.operateEmployeeCode" v-model:resObject="caozuoRes" v-model:text="submitParam.operateEmployeeName" :getListFun="getOpStaffList" :transKeyVal="{valKey: 'empCode',titleKey: 'empName'}" placeholder="请选择操作员">
<tpx-text-item label="操作员" :checkedList="caozuoRes.checkedList" ></tpx-text-item> <tpx-text-item label="操作员" :value="submitParam.operateEmployeeName"></tpx-text-item>
</tpx-select> </tpx-select>
</view> </view>
<view v-show="submitParam.pickupMethod == 2" class="yunf-input-item"> <view v-show="submitParam.pickupMethod == 2" class="yunf-input-item">
<tpx-select v-model:value="submitParam.takePieceEmployeeCode" v-model:resObject="shoupaiRes" :getListFun="getRSDStaffList" :transKeyVal="{valKey: 'empCode',titleKey: 'empName'}" placeholder="请选择收派员"> <tpx-select v-model:value="submitParam.takePieceEmployeeCode" v-model:resObject="shoupaiRes" v-model:text="submitParam.takePieceEmployeeName" :getListFun="getRSDStaffList" :transKeyVal="{valKey: 'empCode',titleKey: 'empName'}" placeholder="请选择收派员">
<tpx-text-item label="收派员" :checkedList="shoupaiRes.checkedList"></tpx-text-item> <tpx-text-item label="收派员" :value="submitParam.takePieceEmployeeName"></tpx-text-item>
</tpx-select> </tpx-select>
</view> </view>
@ -103,10 +104,10 @@
</view> </view>
<template v-if="isShowYueJie"> <template v-if="isShowYueJie">
<view class="yunf-input-item"> <view class="yunf-input-item">
<tpx-select v-model:value="submitParam.custNo" v-model:resObject="yuejieRes" :getListFun="getMonthpayAccountList" :transKeyVal="{valKey: 'custNo',titleKey: 'custName'}" <tpx-select v-model:value="submitParam.custNo" v-model:text="submitParam.customerName" v-model:resObject="yuejieRes" :getListFun="getMonthpayAccountList" :transKeyVal="{valKey: 'custNo',titleKey: 'custName'}"
@onChange="handleYueJieSelect" placeholder="请选择月结账户" @onChange="handleYueJieSelect" placeholder="请选择月结账户"
> >
<tpx-text-item label="月结账户" :checkedList="yuejieRes.checkedList"></tpx-text-item> <tpx-text-item label="月结账户" :value="submitParam.customerName"></tpx-text-item>
</tpx-select> </tpx-select>
</view> </view>
<template v-if="submitParam.custNo"> <template v-if="submitParam.custNo">
@ -118,20 +119,20 @@
<template v-if="submitParam.paymentType"> <template v-if="submitParam.paymentType">
<view class="yunf-input-item"> <view class="yunf-input-item">
<tpx-select v-model:value="submitParam.salesmen" v-model:resObject="salemanRes" :getListFun="getSalemanList" :transKeyVal="{valKey: 'empName',titleKey: 'empName'}" <tpx-select v-model:value="submitParam.salesmen" v-model:text="submitParam.salesmen" v-model:resObject="salemanRes" :getListFun="getSalemanList" :transKeyVal="{valKey: 'empName',titleKey: 'empName'}"
placeholder="请选择销售联系人" :disabled="isShowYueJie" placeholder="请选择销售联系人" :disabled="isShowYueJie"
> >
<tpx-text-item label="销售联系人" :checkedList="salemanRes.checkedList"> <tpx-text-item label="销售联系人" :value="submitParam.salesmen">
<template v-if="isShowYueJie" v-slot:rightRcon></template> <template v-if="isShowYueJie" v-slot:rightRcon></template>
</tpx-text-item> </tpx-text-item>
</tpx-select> </tpx-select>
</view> </view>
<view class="yunf-input-item"> <view class="yunf-input-item">
<tpx-select v-model:value="submitParam.payee" v-model:resObject="paybeeRes" :getListFun="getPayeeList" :transKeyVal="{valKey: 'empName',titleKey: 'empName'}" <tpx-select v-model:value="submitParam.payee" v-model:text="submitParam.payee" v-model:resObject="paybeeRes" :getListFun="getPayeeList" :transKeyVal="{valKey: 'empName',titleKey: 'empName'}"
placeholder="请选择回款联系人" :disabled="isShowYueJie" placeholder="请选择回款联系人" :disabled="isShowYueJie"
> >
<tpx-text-item label="回款联系人" :checkedList="paybeeRes.checkedList"> <tpx-text-item label="回款联系人" :value="submitParam.payee">
<template v-if="isShowYueJie" v-slot:rightRcon></template> <template v-if="isShowYueJie" v-slot:rightRcon></template>
</tpx-text-item> </tpx-text-item>
</tpx-select> </tpx-select>
@ -139,22 +140,22 @@
</template> </template>
<view v-if="submitParam.transLine" class="yunf-input-item"> <view v-if="submitParam.transLine" class="yunf-input-item">
<tpx-select v-model:value="submitParam.destinationCode" v-model:resObject="destPostRes" :getListFun="getDestPositionList" :transKeyVal="{valKey: 'destCode',titleKey: 'destName'}" :isWhite="true" <tpx-select v-model:value="submitParam.destinationCode" v-model:text="submitParam.destinationName" v-model:resObject="destPostRes" :getListFun="getDestPositionList" :transKeyVal="{valKey: 'destCode',titleKey: 'destName'}" :isWhite="true"
:searchParam="destPostParam" @onChange="handleDestPostChange" placeholder="请选择目的地" :searchParam="destPostParam" @onChange="handleDestPostChange" placeholder="请选择目的地"
> >
<tpx-text-item label="目的地" :checkedList="destPostRes.checkedList"></tpx-text-item> <tpx-text-item label="目的地" :value="submitParam.destinationName"></tpx-text-item>
</tpx-select> </tpx-select>
</view> </view>
<view v-if="submitParam.destinationCode" class="yunf-input-item"> <view v-if="submitParam.destinationCode" class="yunf-input-item">
<tpx-text-item label="目的网点" :value="submitParam.dispatchUnderlingSite"></tpx-text-item> <tpx-text-item label="目的网点" :value="submitParam.dispatchUnderlingSiteName"></tpx-text-item>
</view> </view>
<view class="yunf-input-item"> <view class="yunf-input-item">
<tpx-select v-model:value="submitParam.warehouseInNo" v-model:resObject="wareRes" :getListFun="getWarehouseInList" :transKeyVal="{valKey: 'inNo',titleKey: 'inNo'}" :isWhite="true" <tpx-select v-model:value="submitParam.warehouseInNo" v-model:resObject="wareRes" :getListFun="getWarehouseInList" :transKeyVal="{valKey: 'inNo',titleKey: 'inNo'}" :isWhite="true"
searchParam="" type="multiple" placeholder="请选择进仓单" minChecked="0" searchParam="" type="multiple" placeholder="请选择进仓单" minChecked="0"
> >
<tpx-text-item label="进仓单" :checkedList="wareRes.checkedList"></tpx-text-item> <tpx-text-item label="进仓单" :value="submitParam.warehouseInNo"></tpx-text-item>
</tpx-select> </tpx-select>
</view> </view>
@ -331,16 +332,16 @@
billCode: '', // 运单id billCode: '', // 运单id
orderSn: '', // 订单id orderSn: '', // 订单id
}, },
kehuRes: { list: [], checkedList: [] }, kehuRes: { list: [] },
wayRes: { list: [], checkedList: [] }, wayRes: { list: [] },
productRes: { list: [], checkedList: [] }, productRes: { list: [] },
caozuoRes: { list: [], checkedList: [] }, caozuoRes: { list: [] },
shoupaiRes: { list: [], checkedList: [] }, shoupaiRes: { list: [] },
yuejieRes: { list: [], checkedList: [] }, yuejieRes: { list: [] },
destPostRes: { list: [], checkedList: [] }, destPostRes: { list: [] },
wareRes: { list: [], checkedList: [] }, wareRes: { list: [] },
paybeeRes: { list: [], checkedList: [] }, paybeeRes: { list: [] },
salemanRes: { list: [], checkedList: [] }, salemanRes: { list: [] },
goodChooseModal: { goodChooseModal: {
show: false, show: false,
}, },
@ -365,7 +366,6 @@
if(this.isEdit) { if(this.isEdit) {
let res = await apiService.getOrderDetail({...this.queryOption, _loading: true}) let res = await apiService.getOrderDetail({...this.queryOption, _loading: true})
let data = res.data || {} let data = res.data || {}
data.warehouseInNo = (data.warehouseInNo && data.warehouseInNo.split(",")) || []
data.goodsPics = (data.goodsPics && data.goodsPics.split(",")) || [] data.goodsPics = (data.goodsPics && data.goodsPics.split(",")) || []
this.submitParam = res.data this.submitParam = res.data
} }
@ -389,31 +389,28 @@
let { wayRes, submitParam } = this.getDefaultData() let { wayRes, submitParam } = this.getDefaultData()
if(this.submitParam.reciever.country && this.submitParam.sender.country) { if(this.submitParam.reciever.country && this.submitParam.sender.country) {
this.submitParam.transLine = submitParam.transLine this.submitParam.transLine = submitParam.transLine
this.wayRes.checkedList = wayRes.checkedList this.submitParam.transLineTypeName = submitParam.transLineTypeName
this.handleWayChange() // 调用线路切换,清空后续数据 this.handleWayChange() // 调用线路切换,清空后续数据
} }
}, },
handleYueJieSelect(val) { handleYueJieSelect(val) {
const item = this.yuejieRes.list.filter(t=> t.val == val)[0] const item = this.yuejieRes.list.filter(t=> t.val == val)[0]
this.submitParam.payee = item.payee
this.submitParam.salesmen = item.salesmen this.submitParam.salesmen = item.salesmen
this.submitParam.salesmenName = item.salesmenName this.submitParam.salesmenName = item.salesmenName
this.submitParam.payee = item.payeeName this.submitParam.payee = item.payeeName
this.salemanRes.checkedList = [{ title: item.salesmen, val: item.salesmen }]
this.paybeeRes.checkedList = [{ title: item.payee, val: item.payee }]
}, },
handleWayChange(val) { // 线路切换 handleWayChange(val) { // 线路切换
let { productRes, submitParam } = this.getDefaultData() let { productRes, submitParam } = this.getDefaultData()
// 清空产品类型数据 // 清空产品类型数据
this.submitParam.productType = submitParam.productType this.submitParam.productType = submitParam.productType
this.productRes.checkedList = productRes.checkedList this.submitParam.productTypeName = submitParam.productTypeName
const item = this.wayRes.list.filter(t=> t.val == val)[0] const item = this.wayRes.list.filter(t=> t.val == val)[0]
this.updateDltDestSite({ lineCode: val }) this.updateDltDestSite({ lineCode: val })
}, },
handleDestPostChange(val) { handleDestPostChange(val) {
const item = this.destPostRes.list.filter(t=> t.val == val)[0] const item = this.destPostRes.list.filter(t=> t.val == val)[0]
this.submitParam.dispatchUnderlingSiteCode = item.siteCode; this.submitParam.dispatchUnderlingSiteCode = item.siteCode;
this.submitParam.dispatchUnderlingSite = item.siteName; this.submitParam.dispatchUnderlingSiteName = item.siteName;
}, },
handleDialogClick(curModal){ handleDialogClick(curModal){
curModal.show = true curModal.show = true
@ -424,9 +421,9 @@
// 更新路线推荐的默认目的地 // 更新路线推荐的默认目的地
let data = res.data || {} let data = res.data || {}
this.submitParam.destinationCode = data.destCode this.submitParam.destinationCode = data.destCode
this.destPostRes.checkedList = [{ title: data.destName, val: data.destCode }] this.submitParam.destinationName = data.destName
this.submitParam.dispatchUnderlingSiteCode = data.siteCode; this.submitParam.dispatchUnderlingSiteCode = data.siteCode;
this.submitParam.dispatchUnderlingSite = data.siteName; this.submitParam.dispatchUnderlingSiteName = data.siteName;
}, },
async handleGoodInfoSure() { async handleGoodInfoSure() {
// 校验各个组件的参数 // 校验各个组件的参数
@ -438,7 +435,6 @@
// 编辑订单 TODO // 编辑订单 TODO
} }
let params = JSON.parse(JSON.stringify(this.submitParam)); let params = JSON.parse(JSON.stringify(this.submitParam));
params.warehouseInNo = params.warehouseInNo.join(",")
params.goodsPics = params.goodsPics.join(",") params.goodsPics = params.goodsPics.join(",")
await saveServerHand(params) await saveServerHand(params)
this.showToast('操作成功') this.showToast('操作成功')