You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

371 lines
17 KiB

<template>
<el-row>
<el-row>
<!--新增/编辑界面 MoOrder mo_order-->
<el-form :model="editForm" label-width="120px" :rules="editFormRules" ref="editFormRef">
<el-descriptions :column="3" :size="size" border>
<el-descriptions-item label="订单编号">{{editForm.id}}</el-descriptions-item>
<el-descriptions-item label="下单机构" :span="2">{{editForm.obranchName}}</el-descriptions-item>
<el-descriptions-item label="折前总价">{{editForm.moFinalFee}}</el-descriptions-item>
<el-descriptions-item label="折扣率">{{editForm.odisRate}}%</el-descriptions-item>
<el-descriptions-item label="折后总价">{{editForm.ofinalFee}}</el-descriptions-item>
<el-descriptions-item label="状态"><mdp-select item-code="mo_order_status" v-model="editForm.status" /></el-descriptions-item>
<el-descriptions-item label="操作类型"><mdp-select item-code="mo_ooper" v-model="editForm.ooper" /></el-descriptions-item>
</el-descriptions>
<el-tabs v-model="activePane">
<el-tab-pane label="订单信息" name="1" >
<el-row>
<el-col :span="8">
<el-form-item label="订单状态" prop="status">
<mdp-select item-code="mo_order_status" v-model="editForm.status" @change="editSomeFields(editForm,'status',$event)"/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="订单来源" prop="osource">
<mdp-select item-code="osource" v-model="editForm.osource" @change="editSomeFields(editForm,'osource',$event)"/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="创建时间" prop="ctime">
<el-date-picker type="date" placeholder="选择日期" v-model="editForm.ctime" value-format="yyyy-MM-dd HH:mm:ss" format="yyyy-MM-dd"></el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="购买人数" prop="ousers">
<el-input-number v-model="editForm.ousers" :min="0" :max="200" @change="editSomeFields(editForm,'ousers',$event)"></el-input-number>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="购买天数" prop="odays">
<el-input-number v-model="editForm.odays" :min="0" :max="200" @change="editSomeFields(editForm,'odays',$event)"></el-input-number>天
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="购买模块数" prop="omodules">
<el-input-number v-model="editForm.omodules" :min="0" :max="200" @change="editSomeFields(editForm,'omodules',$event)"></el-input-number>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="购买天数" prop="odays">
<el-input-number v-model="editForm.odays" :min="0" :max="200" @change="editSomeFields(editForm,'odays',$event)"></el-input-number>天
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="开始日期" prop="startTime">
<el-date-picker type="date" placeholder="选择日期" v-model="editForm.startTime" value-format="yyyy-MM-dd HH:mm:ss" format="yyyy-MM-dd" @change="editSomeFields(editForm,'startTime',$event)"></el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="截止日期" prop="endTime">
<el-date-picker type="date" placeholder="选择日期" v-model="editForm.endTime" value-format="yyyy-MM-dd HH:mm:ss" format="yyyy-MM-dd" @change="editSomeFields(editForm,'endTime',$event)"></el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="完成时间" prop="finishTime">
<el-date-picker type="date" placeholder="选择日期" v-model="editForm.finishTime" value-format="yyyy-MM-dd HH:mm:ss" format="yyyy-MM-dd"></el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="关闭时间" prop="closeTime">
<el-date-picker type="date" placeholder="选择日期" v-model="editForm.closeTime" value-format="yyyy-MM-dd HH:mm:ss" format="yyyy-MM-dd"></el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="结算时间" prop="setTime">
<el-date-picker type="date" placeholder="选择日期" v-model="editForm.setTime" value-format="yyyy-MM-dd HH:mm:ss" format="yyyy-MM-dd"></el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-form-item label="备注" prop="remark">
<el-input type="textarea" :rows="2" v-model="editForm.remark" placeholder="备注" :maxlength="255" @change="editSomeFields(editForm,'remark',$event)"></el-input>
</el-form-item>
</el-row>
</el-tab-pane>
<el-tab-pane label="客户信息" name="2" >
<el-form-item label="下单机构号码" prop="obranchId">
<el-input v-model="editForm.obranchId" placeholder="下单机构号码" :maxlength="50"></el-input>
</el-form-item>
<el-form-item label="下单用户编号" prop="ouserid">
<el-input v-model="editForm.ouserid" placeholder="下单用户编号" :maxlength="50"></el-input>
</el-form-item>
<el-form-item label="下单用户名称" prop="ousername" >
<el-input v-model="editForm.ousername" placeholder="下单用户名称" :maxlength="255" @change="editSomeFields(editForm,'ousername',$event)"></el-input>
</el-form-item>
<el-form-item label="客户联系电话" prop="custPhone">
<el-input v-model="editForm.custPhone" placeholder="客户联系电话" :maxlength="50" @change="editSomeFields(editForm,'custPhone',$event)"></el-input>
</el-form-item>
<el-form-item label="客户联系地址" prop="custAddress" >
<el-input v-model="editForm.custAddress" placeholder="客户联系地址" :maxlength="255" @change="editSomeFields(editForm,'custAddress',$event)"></el-input>
</el-form-item>
<el-form-item label="下单机构名称" prop="obranchName">
<el-input v-model="editForm.obranchName" placeholder="下单机构名称" :maxlength="255"></el-input>
</el-form-item>
<el-form-item label="第三方账号编号" prop="topenId">
<el-input v-model="editForm.topenId" placeholder="第三方账号编号" :maxlength="50"></el-input>
</el-form-item>
</el-tab-pane>
<el-tab-pane label="销售经理" name="31" >
<el-form-item label="销售经理编号" prop="saleUserid" >
<el-input v-model="editForm.saleUserid" placeholder="销售经理编号" :maxlength="50" @change="editSomeFields(editForm,'saleUserid',$event)"></el-input>
</el-form-item>
<el-form-item label="销售经理名称" prop="saleUsername" >
<el-input v-model="editForm.saleUsername" placeholder="销售经理名称" :maxlength="255" @change="editSomeFields(editForm,'saleUsername',$event)"></el-input>
</el-form-item>
</el-tab-pane>
<el-tab-pane label="付款信息" name="3" >
<el-row :gutter="5">
<el-col :span="12">
<el-form-item label="支付方式" prop="payType">
<mdp-select item-code="tpAppPayType" v-model="editForm.payType"/>
</el-form-item>
<el-form-item label="应付金额" prop="ofinalFee" >
<el-input :disabled="true" v-model="editForm.ofinalFee" placeholder="最终订单价格、最终付款金额" :maxlength="10"></el-input>
</el-form-item>
<div v-if="editForm.status>2">
<el-form-item label="付款时间" prop="payTime" >
<el-date-picker :disabled="true" type="date" placeholder="选择日期" v-model="editForm.payTime" value-format="yyyy-MM-dd HH:mm:ss" format="yyyy-MM-dd"></el-date-picker>
</el-form-item>
<el-form-item label="付款确认时间" prop="payCtime" >
<el-date-picker :disabled="true" type="date" placeholder="选择日期" v-model="editForm.payCtime" value-format="yyyy-MM-dd HH:mm:ss" format="yyyy-MM-dd"></el-date-picker>
</el-form-item>
<el-form-item label="付款订单号" prop="prepayId">
<el-input :disabled="true" v-model="editForm.prepayId" placeholder="付款订单号(第三方返回)" :maxlength="50" @change="editSomeFields(editForm,'prepayId',$event)"></el-input>
</el-form-item>
<el-form-item label="实际付款金额" prop="payAt" >
<el-input :disabled="true" v-model="editForm.payAt" placeholder="最终付款金额-客户付款后回填" :maxlength="20" @change="editSomeFields(editForm,'payAt',$event)"></el-input>
</el-form-item>
</div>
</el-col>
<el-col v-if="editForm.payType=='1'" :span="12">
<el-button v-if="!codeUrl" @click="createOrder">创建微信收款码</el-button>
<qriously v-else :value="codeUrl" :size="300" />
</el-col>
<el-col v-else-if="editForm.payType=='2'" :span="12">
<el-button @click="createOrder">创建支付宝收款码</el-button>
</el-col>
</el-row>
</el-tab-pane>
<el-tab-pane label="收款信息" name="32" >
<el-form-item label="收款银行编号 " prop="pbankId" >
<el-input v-model="editForm.pbankId" placeholder="收款银行编号(支付方式为3时必填)" :maxlength="50" @change="editSomeFields(editForm,'pbankId',$event)"></el-input>
</el-form-item>
<el-form-item label="收款银行名称 " prop="pbankName">
<el-input v-model="editForm.pbankName" placeholder="收款银行名称(支付方式为3时必填)" :maxlength="255" @change="editSomeFields(editForm,'pbankName',$event)"></el-input>
</el-form-item>
<el-form-item label="收款银行卡号 " prop="pbankCardNo">
<el-input v-model="editForm.pbankCardNo" placeholder="收款银行卡号(支付方式为3时必填)" :maxlength="50" @change="editSomeFields(editForm,'pbankCardNo',$event)"></el-input>
</el-form-item>
<el-form-item label="收款账户姓名 " prop="pbankUsername">
<el-input v-model="editForm.pbankUsername" placeholder="收款账户姓名(支付方式为3时必填)" :maxlength="255" @change="editSomeFields(editForm,'pbankUsername',$event)"></el-input>
</el-form-item>
</el-tab-pane>
<el-tab-pane label="折扣信息" name="4" >
<el-form-item label="最新折扣率" prop="odisRate">
<el-input style="width:30%;" type="number" v-model="odisRate" title="折扣率0.01-100之间,9.9折填99,9折填90,最小填0.01折"></el-input> %
<el-button @click="odisRateConfirm">确认修改折扣率</el-button>
</el-form-item>
</el-tab-pane>
<el-tab-pane label="产品列表" name="5" >
<mo-order-module-index :mo-order="editForm"></mo-order-module-index>
</el-tab-pane>
</el-tabs>
</el-form>
</el-row>
<slot name="footer" :page="this">
<el-row v-if="showBtn!==false" style="float:right;" class="footer">
<el-button @click.native="close">关闭</el-button>
<el-button v-if="currOpType=='add'" v-loading="load.edit" type="primary" @click.native="saveSubmit" :disabled="disabledJudge('addBtn') || !checkBtnQx('addBtn',menuDefId) || load.edit">提交</el-button>
</el-row>
</slot>
</el-row>
</template>
<script>
import util from '@/components/mdp-ui/js/util';//全局公共库
import config from "@/api/mdp_pub/mdp_config"; //全局公共库import
import * as MoOrderApi from '@/api/mdp/mo/moOrder';
import { mapGetters } from 'vuex'
import { MdpFormMixin } from '@/components/mdp-ui/mixin/MdpFormMixin.js';
import {createOrder} from '@/api/mdp/sys/order'
import {aliPay, weixinPay, checkWxPayStatus} from '@/api/mdp/pay/pay'
import MoOrderModuleIndex from '../moOrderModule/Index.vue';
export default {
name:'moOrderForm',
mixins:[MdpFormMixin],
components: {
MoOrderModuleIndex
},
computed: {
},
props:{
},
watch: {
},
data() {
return {
menuDefId:'',//menu_def.id 菜单表菜单编号,用于按钮权限判断
pkNames:["id"],//表格主键的java属性名称,驼峰命名,默认为id,支持多主键
currOpType:'add',//表单 add、edit,所有按钮可动、detail-只看不能操作
editFormRules: {
id:[
//{ required: true, message: '此项必填', trigger: 'change' },
//{ min: 1,max: 200, message: '长度在1到200之间', trigger: 'change'}
]
},
editForm: {
id:'',name:'',obranchId:'',ouserid:'',ousername:'',moFinalFee:'',status:'',sstatus:'',ctime:'',payTime:'',payCtime:'',moOrginFee:'',ousers:'',ocates:'',omodules:'',poid:'',startTime:'',endTime:'',payType:'',payId:'',prepayId:'',topenId:'',pbankId:'',pbankName:'',pbankCardNo:'',pbankUsername:'',remark:'',finishTime:'',closeTime:'',setTime:'',odays:'',ofinalFee:'',odisRate:'',othFee:'',otype:'',osource:'',memType:'',atype:'',saleUserid:'',saleUsername:'',custPhone:'',custAddress:'',payAt:'',obranchName:'',ooper:'',tranId:'',invoice:'',invoiceTime:'',invoiceId:''
},
odisRate:null,
codeUrl:null,
timer:0,
//增删改查(含批量)接口
apis:{
queryById: MoOrderApi.queryMoOrderById,
add: MoOrderApi.addMoOrder,
edit: MoOrderApi.editMoOrder,
editSomeFields: MoOrderApi.editSomeFieldsMoOrder
}
}
},
methods: {
//由组件扩展添加其它的初始页面的逻辑(mounted+onOpen都会调用此函数,建议只添加公共逻辑)
initCurrData(){
},
/**
* 检查参数是否满足调用后台接口的条件
* @returns true / false
*/
preParamCheck(params){
return true;
},
/**
* 设置某个关键词、按钮、输入框禁用 disabledRules['addBtn']=false
* 判断某个对象是否可编辑 this.disabledJudge('addBtn')==false
*/
disabledRulesInit(disabledRules){
},
/**
* 对修改的字段进行判断,返回false ,将取消更新数据库,由组件扩展
* @param {*} row 当前选中的行
* @param {*} fieldName 修改的字段名
* @param {*} $event 修改后的值
* @param {*} params 将要提交服务器的参数
* @returns true/false 返回false ,将取消更新数据库
*/
editSomeFieldsCheck(row,fieldName,$event,params){
params[fieldName]=$event
return true;
},
odisRateConfirm(){
var params={$pks:[this.editForm.id],odisRate:this.odisRate}
this.apis.editSomeFields(params).then(res=>{
var tips = res.data.tips
if(tips.isOk){
Object.assign(this.editForm,res.data.data)
}
this.$notify({ message: tips.msg, type: tips.isOk?'success':'error' });
})
},
createOrder() {
let orderId = this.editForm.id;
if(this.editForm.payType == '2') {
this.toAliPay(orderId);
return;
}else if(this.editForm.payType == '1') {
this.toWeixinPay(orderId);
return;
}else{
this.$notify({ message: "请选则支付方式", type:'error' });
return;
}
},
toAliPay(orderId) {
let params = {
id: orderId,
otype: 1,
returnUrl: `${window.location.protocol+"//"+window.location.host}/${process.env.CONTEXT}/${process.env.VERSION}/#/my/order/paySuccess`
}
aliPay(params).then(res => {
if(res.data.tips.isOk) {
let routerData = this.$router.resolve({path:'/my/order/alipay',query: {htmlStr: res.data.data.htmlStr}})
// 打开新页面
window.open(routerData.href, '_blank')
}else {
this.$notify.error(res.data.tips.msg);
}
}).finally(() => {
setTimeout(() => {
this.load.add = false;
}, 2000);
})
},
toWeixinPay(orderId) {
let params = {
id: orderId,
otype: 1,
returnUrl: ""
}
weixinPay(params).then(res => {
if(res.data.tips.isOk) {
this.codeUrl = res.data.data.codeUrl;
this.timer = setInterval(() => {
this.queryOrderStatus(orderId,res.data.data.payId)
}, 3000)
}else {
this.$notify.error(res.data.tips.msg);
}
}).finally(() => {
setTimeout(() => {
this.load.add = false;
}, 2000);
})
},
//查询订单支付状态
queryOrderStatus(orderId,payId) {
console.log("查询订单");
checkWxPayStatus({'orderId': orderId, "otype": "1","payId":payId}).then(res => {
if(res.data.tips.isOk) {
this.$router.push({path:'/my/order/paySuccess', query:{total_amount: this.editForm.ofinalFee, out_trade_no: orderId,pay_id:payId}});
clearInterval(this.timer);
}else {
}
}).finally(() => {
})
},
},
mounted() {
}
}
</script>
<style scoped>
</style>