123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218 |
- import { dateFormatter } from '@/utils/globalFun'
- import { mul } from '@/utils/number'
- import { orderParamsRoute } from './params/index.js'
- export function orderParams(type) {
- return orderParamsRoute(type)
- }
- // 获取回款计划
- function getReturnPlant(pageForm, totalMoney) {
- let planList = []
- if (Array.isArray(pageForm.paybackTableData) && pageForm.paybackTableData.length > 0) {
- planList = pageForm.paybackTableData.map((p, index) => {
- return {
- code: index + 1,
- time: p.time ? dateFormatter(p.time, 'yyyy-MM-dd') : '-',
- money: mul(p.money, 100) || 0
- }
- })
- if (planList.length > 0) {
- planList.push({
- code: '合计',
- time: '-',
- money: mul(totalMoney, 100) || 0
- })
- }
- } else {
- planList.push({
- code: '合计',
- time: pageForm.expectedPaymentDeadlineTime,
- money: mul(totalMoney, 100) || 0
- })
- }
- return {
- day_num: pageForm.paymentDeadline - 0,
- expect_time: pageForm.expectedPaymentDeadlineTime,
- plant_list: planList,
- }
- }
- function getSaleMoney(pageForm, totalMoney) {
- let arr = []
- const salePerson = pageForm.salePerson
- const salePersonTableList = pageForm.salePersonTableList
- if (Array.isArray(salePerson)) {
- if (salePerson.length === 1) {
- arr = salePerson.map(s => {
- return {
- id: s,
- money: mul(totalMoney, 100),
- channel: pageForm.saleWay[1]
- }
- })
- } else if (salePerson.length > 1) {
- arr = salePersonTableList.filter(r => r.id).map(r => {
- return {
- id: r.id,
- money: mul(r.money, 100) || 0,
- channel: r.saleWay[1]
- }
- })
- }
- }
- return arr
- }
- /* 创建订单参数整理
- {
- "order_status": 0,
- "orderStatus": 0,
- "buySubject": 1,
- "companyName": "Example Corp",
- "paybackCompany": "Acme Inc",
- "personName": "John Doe",
- "personPhone": "1234567890",
- "userPhone": "1234567890",
- "emptyPhone": 0,
- "orderCode": "ORD12345",
- "productArr": [
- {
- "id": 123456789,
- "product_code": "VIP_PRO",
- "activity_code": "SUMMER2023",
- "order_code": "ORD12345",
- "phone": "1234567890",
- "amount": 99900,
- "original_price": 129900,
- "tactics": 3,
- "reqSubject": 2,
- "reqCompanyName": "Example Corp",
- "product_type": "subscription",
- "service_type": 1,
- "linked_orderId": 123456788,
- "paybackOpenServer": true,
- "filter": {
- "buyAccountCount": 5,
- "giftAccountCount": 2,
- "cutAccount": 1,
- "buy_cycle": 12,
- "buy_type": 2,
- "give_cycle": 3,
- "give_type": 2,
- "finalAccountCount": 6,
- "finalAreaCount": 3,
- "supplement": "Additional support package"
- }
- }
- ],
- "contractMoney": 10000,
- "order_money": 9500,
- "channelCommission": 500,
- "zeroOrderType": "none",
- "contract": {
- "contractId": "CT123",
- "signDate": "2023-01-01"
- },
- "returnPlant": {
- "planId": "RP123",
- "amount": 10000,
- "dueDate": "2023-06-01"
- },
- "saleMoney": [
- {
- "salesId": "S100",
- "amount": 5000,
- "date": "2023-01-15"
- }
- ],
- "actPrice": {
- "VIP_PRO": 89900
- },
- "payType": "credit",
- "orderChannel": "web",
- "paymentUser": "Jane Smith",
- "orderRemark": "Urgent order",
- "save": 2
- }
- */
- export function createOrderParams(payload = {}) {
- const { pageForm, productInfoList, pageTotalMoney, orderMoney0Type, salesMoneyTotal } = payload
- const returnPlant = getReturnPlant(pageForm, salesMoneyTotal)
- const saleMoney = getSaleMoney(pageForm, salesMoneyTotal)
- let productArr = []
- if (Array.isArray(productInfoList) && productInfoList.length > 0) {
- productArr = productInfoList.map(product => {
- const productCardInfo = product.productCardInfo
- const productType = productCardInfo.result?.productCode
- if (productType) {
- const params = orderParams(productType).getProductArrParams({
- type: productType,
- pageForm,
- productInfo: product,
- })
- // 编辑订单使用此商品明细表id对应商品,如无此id后端将做替换
- const id = productCardInfo.id
- if (id && params) {
- params.id = id
- }
- return params
- }
- })
- productArr = productArr.filter(r => !!r)
- }
- const contract = {
- contractId: '', // 归档协议编号,在创建订单期间不会上传。在订单详情处上传
- contractCode: pageForm.signCode, // 线下协议编号
-
- contractStatus: pageForm.agreeStatus - 0, // 协议状态
- e_contract_type: pageForm.e_contract_type, // 电子协议类型: 1有电子章 2无电子章
- e_contract_userA_type: pageForm.e_contract_userA_type, // 协议甲方类型: 1个人 2企业
- e_contract_userA_name: pageForm.e_contract_userA_name, // 协议甲方
- e_contract_userA_contacts_name: pageForm.e_contract_userA_contacts_name, // 协议甲方联系人
- e_contract_userA_contacts_tel: pageForm.e_contract_userA_contacts_tel, // 协议甲方联系方式
- e_contract_userA_contacts_address: pageForm.e_contract_userA_contacts_address, // 协议甲方联系地址
- e_contract_userB_contacts_name: pageForm.e_contract_userB_contacts_name, // 协议乙方联系人
- e_contract_remark: pageForm.e_contract_remark, // 协议备注
- // contract_archive_status: pageForm.contract_archive_status, // 协议归档状态 1 已归档 0 未归档
- contractTime: pageForm.signTime ? dateFormatter(pageForm.signTime, 'yyyy-MM-dd') : '', // 协议签订时间
- // contract_file_url: pageForm.contract_file_url, // 上传合同地址
- // contract_archive_time: pageForm.contract_archive_time, // 协议归档时间
- // contract_archive_num: pageForm.contract_archive_num - 0, // 协议归档份数
- }
-
- const p = {
- order_status: pageForm.orderStatus, // 订单状态 0 未完成 1 已完成(审核通过后可以修改为已完成)
- orderCode: pageForm.orderCode, // 订单编号
- buySubject: pageForm.buySubject,
- companyName: pageForm.companyName, // 公司名称
- paybackCompany: pageForm.signUnit, // 签约主体
- personName: pageForm.username, // 联系人
- personPhone: pageForm.userTel, // 联系人手机号
- userPhone: pageForm.accountTel, // 开通服务手机号
- contractMoney: mul(pageTotalMoney.contract, 100), // 合同金额总计(单位,分)
- order_money: mul(pageTotalMoney.standard, 100), // 标准售价总计(单位,分)
- channelCommission: pageForm.channelCommission ? mul(pageForm.channelCommission, 100) : pageForm.channelCommission - 0, // 佣金(单位,分)
- zeroOrderType: orderMoney0Type ? pageForm.orderMoney0Type : undefined, // 0元订单类型
- // emptyPhone: 0, // 无手机号
- orderRemark: pageForm.orderRemark, // 订单备注
- paymentUser: pageForm.paymentAccountName, // 付款户名
- orderChannel: pageForm.orderChannel, // 下单渠道
- payType: pageForm.reservationPayWay, // 支付方式
- returnPlant,
- productArr,
- saleMoney,
- contract,
- // actPrice: {
- // VIP_PRO: 89900,
- // },
- }
- console.log(p, pageForm, productInfoList)
- return p
- }
|