Commit e3e9153c authored by Marcus's avatar Marcus

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

parents c7ac5734 dfc214f0
//==本JS是加载Lodop插件或Web打印服务CLodop/Lodop7的综合示例,可直接使用,建议理解后融入自己程序==
//用双端口加载主JS文件Lodop.js(或CLodopfuncs.js兼容老版本)以防其中某端口被占:
var MainJS ="CLodopfuncs.js",
URL_WS1 = "ws://localhost:8000/"+MainJS, //ws用8000/18000
URL_WS2 = "ws://localhost:18000/"+MainJS,
URL_HTTP1 = "http://localhost:8000/"+MainJS, //http用8000/18000
URL_HTTP2 = "http://localhost:18000/"+MainJS,
URL_HTTP3 = "https://localhost.lodop.net:8443/"+MainJS; //https用8000/8443
var CreatedOKLodopObject, CLodopIsLocal, LoadJsState;
//==判断是否需要CLodop(那些不支持插件的浏览器):==
function needCLodop() {
try {
var ua = navigator.userAgent;
if (ua.match(/Windows\sPhone/i) ||
ua.match(/iPhone|iPod|iPad/i) ||
ua.match(/Android/i) ||
ua.match(/Edge\D?\d+/i))
return true;
var verTrident = ua.match(/Trident\D?\d+/i);
var verIE = ua.match(/MSIE\D?\d+/i);
var verOPR = ua.match(/OPR\D?\d+/i);
var verFF = ua.match(/Firefox\D?\d+/i);
var x64 = ua.match(/x64/i);
if ((!verTrident) && (!verIE) && (x64)) return true;
else if (verFF) {
verFF = verFF[0].match(/\d+/);
if ((verFF[0] >= 41) || (x64)) return true;
} else if (verOPR) {
verOPR = verOPR[0].match(/\d+/);
if (verOPR[0] >= 32) return true;
} else if ((!verTrident) && (!verIE)) {
var verChrome = ua.match(/Chrome\D?\d+/i);
if (verChrome) {
verChrome = verChrome[0].match(/\d+/);
if (verChrome[0] >= 41) return true;
}
}
return false;
} catch (err) {
return true;
}
}
//==检查加载成功与否,如没成功则用http(s)再试==
//==低版本CLODOP6.561/Lodop7.043及前)用本方法==
function checkOrTryHttp() {
if (window.CLODOP2015_7028) {
LoadJsState = "complete";
return true;
}
if (LoadJsState == "loadingB" || LoadJsState == "complete") return;
LoadJsState = "loadingB";
var head = document.head || document.getElementsByTagName("head")[0] || document.documentElement;
var JS1 = document.createElement("script")
,JS2 = document.createElement("script")
,JS3 = document.createElement("script");
JS1.src = URL_HTTP1;
JS2.src = URL_HTTP2;
JS3.src = URL_HTTP3;
JS1.onload = JS2.onload = JS3.onload = JS2.onerror = JS3.onerror=function(){LoadJsState = "complete";}
JS1.onerror = function(e) {
if (window.location.protocol !== 'https:')
head.insertBefore(JS2, head.firstChild); else
head.insertBefore(JS3, head.firstChild);
}
head.insertBefore(JS1,head.firstChild);
}
//==加载Lodop对象的主过程:==
(function loadCLodop(){
if (!needCLodop()) return;
CLodopIsLocal = !!((URL_WS1 + URL_WS2).match(/\/\/localho|\/\/127.0.0./i));
LoadJsState = "loadingA";
if (!window.WebSocket && window.MozWebSocket) window.WebSocket=window.MozWebSocket;
//ws方式速度快(小于200ms)且可避免CORS错误,但要求Lodop版本足够新:
try {
var WSK1=new WebSocket(URL_WS1);
WSK1.onopen = function(e) { setTimeout("checkOrTryHttp();",200); }
WSK1.onmessage = function(e) {if (!window.CLODOP2015_7028) eval(e.data);}
WSK1.onerror = function(e) {
var WSK2=new WebSocket(URL_WS2);
WSK2.onopen = function(e) {setTimeout("checkOrTryHttp();",200);}
WSK2.onmessage = function(e) {if (!window.CLODOP2015_7028) eval(e.data);}
WSK2.onerror= function(e) {checkOrTryHttp();}
}
} catch(e){
checkOrTryHttp();
}
})();
//==获取LODOP对象主过程,判断是否安装、需否升级:==
function getLodop(oOBJECT, oEMBED) {
var strFontTag = "<br><font color='#FF00FF'>打印控件";
var strLodopInstall = strFontTag + "未安装!点击这里<a href='install_lodop32.exe' target='_self'>执行安装</a>";
var strLodopUpdate = strFontTag + "需要升级!点击这里<a href='install_lodop32.exe' target='_self'>执行升级</a>";
var strLodop64Install = strFontTag + "未安装!点击这里<a href='install_lodop64.exe' target='_self'>执行安装</a>";
var strLodop64Update = strFontTag + "需要升级!点击这里<a href='install_lodop64.exe' target='_self'>执行升级</a>";
var strCLodopInstallA = "<br><font color='#FF00FF'>Web打印服务CLodop未安装启动,点击这里<a href='CLodop_Setup_for_Win32NT.exe' target='_self'>下载执行安装</a>";
var strCLodopInstallB = "<br>(若此前已安装过,可<a href='CLodop.protocol:setup' target='_self'>点这里直接再次启动</a>)";
var strCLodopUpdate = "<br><font color='#FF00FF'>Web打印服务CLodop需升级!点击这里<a href='CLodop_Setup_for_Win32NT.exe' target='_self'>执行升级</a>";
var strLodop7FontTag = "<br><font color='#FF00FF'>Web打印服务Lodop7";
var strLodop7HrefX86 = "点击这里<a href='Lodop7_Linux_X86_64.tar.gz' target='_self'>下载安装</a>(下载后解压,点击lodop文件开始执行)";
var strLodop7HrefARM = "点击这里<a href='Lodop7_Linux_ARM64.tar.gz' target='_self'>下载安装</a>(下载后解压,点击lodop文件开始执行)";
var strLodop7Install_X86 = strLodop7FontTag + "未安装启动," + strLodop7HrefX86;
var strLodop7Install_ARM = strLodop7FontTag + "未安装启动," + strLodop7HrefARM;
var strLodop7Update_X86 = strLodop7FontTag + "需升级," + strLodop7HrefX86;
var strLodop7Update_ARM = strLodop7FontTag + "需升级," + strLodop7HrefARM;
var strInstallOK = ",成功后请刷新本页面或重启浏览器。</font>";
var LODOP;
try {
var isWinIE = (/MSIE/i.test(navigator.userAgent)) || (/Trident/i.test(navigator.userAgent));
var isWinIE64 = isWinIE && (/x64/i.test(navigator.userAgent));
var isLinuxX86 = (/Linux/i.test(navigator.platform)) && (/x86/i.test(navigator.platform));
var isLinuxARM = (/Linux/i.test(navigator.platform)) && (/aarch/i.test(navigator.platform));
if (needCLodop() || isLinuxX86 || isLinuxARM) {
try {
LODOP = window.CLODOP2015_7028;
} catch (err) {}
if (!LODOP && LoadJsState !== "complete") {
if (!LoadJsState)
alert("未曾加载Lodop主JS文件,请先调用loadCLodop过程."); else
alert("网页还没下载完毕,请稍等一下再操作." + LoadJsState);
return;
}
var strAlertMessage;
if (!LODOP) {
if (isLinuxX86)
strAlertMessage = strLodop7Install_X86;
else if (isLinuxARM)
strAlertMessage = strLodop7Install_ARM;
else
strAlertMessage = strCLodopInstallA + (CLodopIsLocal ? strCLodopInstallB : "");
document.body.innerHTML = strAlertMessage + strInstallOK + document.body.innerHTML;
return;
} else {
if (isLinuxX86 && LODOP.CVERSION < "7.0.4.3")
strAlertMessage = strLodop7Update_X86;
else if (isLinuxARM && LODOP.CVERSION < "7.0.4.3")
strAlertMessage = strLodop7Update_ARM;
else if (CLODOP.CVERSION < "6.5.6.6")
strAlertMessage = strCLodopUpdate;
if (strAlertMessage)
document.body.innerHTML = strAlertMessage + strInstallOK + document.body.innerHTML;
}
} else {
//==如果页面有Lodop插件就直接使用,否则新建:==
if (oOBJECT || oEMBED) {
if (isWinIE)
LODOP = oOBJECT;
else
LODOP = oEMBED;
} else if (!CreatedOKLodopObject) {
LODOP = document.createElement("object");
LODOP.setAttribute("width", 0);
LODOP.setAttribute("height", 0);
LODOP.setAttribute("style", "position:absolute;left:0px;top:-100px;width:0px;height:0px;");
if (isWinIE)
LODOP.setAttribute("classid", "clsid:2105C259-1E0C-4534-8141-A753534CB4CA");
else
LODOP.setAttribute("type", "application/x-print-lodop");
document.documentElement.appendChild(LODOP);
CreatedOKLodopObject = LODOP;
} else
LODOP = CreatedOKLodopObject;
//==Lodop插件未安装时提示下载地址:==
if ((!LODOP) || (!LODOP.VERSION)) {
document.body.innerHTML = (isWinIE64 ? strLodop64Install : strLodopInstall) + strInstallOK + document.body.innerHTML;
return LODOP;
}
if (LODOP.VERSION < "6.2.2.6") {
document.body.innerHTML = (isWinIE64 ? strLodop64Update : strLodopUpdate) + strInstallOK + document.body.innerHTML;
}
}
//===如下空白位置适合调用统一功能(如注册语句、语言选择等):=======================
LODOP.SET_LICENSES("江西省晨尚科技有限公司","9D5CB0779D3B7FF8B70BD2F896DA5312","","");
//===============================================================================
return LODOP;
} catch (err) {
alert("getLodop出错:" + err);
}
}
......@@ -18,6 +18,16 @@ export function updateCurrencyEcash(data) {
})
}
// 更新E-Cash汇率单位
export function updateCurrencyEcashAll(data) {
console.log(data);
return request({
url: '/ecw/currency-ecash/updateAll',
method: 'put',
data: data
})
}
// 删除E-Cash汇率单位
export function deleteCurrencyEcash(id) {
return request({
......
......@@ -52,3 +52,35 @@ export function exportOrderExcel(query) {
responseType: 'blob'
})
}
// 打印标签
export function printTag(id) {
return request({
url: '/order/print/orderTagPrint?orderId=' + id,
method: 'get',
})
}
//根据订单号获得订单费用申请列表
export function feeApplicationListByOrderId(query){
return request({
url:'/order/fee-application/listByOrderId',
method: 'get',
params: query,
})
}
//费用申请提交
export function feeApplicationCreate(data){
return request({
url:'order/fee-application/create',
method:'post',
data:data,
})
}
// 创建特殊
export function specialNeedCreate(data){
return request({
url:'ecw/order-special-need/create',
method:'post',
data:data,
})
}
......@@ -53,68 +53,85 @@ export function exportUserExcel(query) {
responseType: 'blob'
})
}
//操作日志
export function operationLogApi(query){
export function operationLogApi(query) {
return request({
url:'/member/user/operation-log/page',
method:'get',
params:query,
url: '/member/user/operation-log/page',
method: 'get',
params: query,
})
}
//更新证书
export function seTupdateBackletter(data){
return request({
url:'/member/user/update-backletter',
method:'put',
data:data
export function seTupdateBackletter(data) {
return request({
url: '/member/user/update-backletter',
method: 'put',
data: data
})
})
}
//获取指定用户的实名认证信息
export function memberGetAuthIdcardInfo(query){
export function memberGetAuthIdcardInfo(query) {
return request({
url:'/member/user/get-auth-idcard-info',
method:'get',
params:query,
url: '/member/user/get-auth-idcard-info',
method: 'get',
params: query,
})
}
//获取指定企业认证信息
export function memberGetAuthEnterpriseInfo(query){
export function memberGetAuthEnterpriseInfo(query) {
return request({
url:'/member/user/get-auth-enterprise-info',
method:'get',
params:query,
url: '/member/user/get-auth-enterprise-info',
method: 'get',
params: query,
})
}
//身份证审核
export function memberUserAuditIdCard(query){
export function memberUserAuditIdCard(query) {
return request({
url:'/member/user/audit-idcard',
method :'get',
params:query,
url: '/member/user/audit-idcard',
method: 'get',
params: query,
})
}
}
//企业认证审核
export function memberUserAuditEnterprise(query){
return request({
url:'/member/user/audit-enterprise',
method:'get',
params:query,
})
export function memberUserAuditEnterprise(query) {
return request({
url: '/member/user/audit-enterprise',
method: 'get',
params: query,
})
}
//修改身份证
export function memberUserUpdateIdCard(data){
export function memberUserUpdateIdCard(data) {
return request({
url:'/member/user/update-idcard',
method:'put',
url: '/member/user/update-idcard',
method: 'put',
data: data
})
}
}
// 修改企业
export function memberUserUpdateEnterprise(data){
return request({
url:'/member/user/update-enterprise',
method:'put',
data:data,
})
export function memberUserUpdateEnterprise(data) {
return request({
url: '/member/user/update-enterprise',
method: 'put',
data: data,
})
}
//修改状态
export function setUserUpdateStatus(data) {
return request({
url:'/member/user/update-status',
method:'put',
data:data,
})
}
......@@ -283,6 +283,67 @@ export const constantRoutes = [
},
]
},
{
path: '/order',
component: Layout,
hidden: true,
redirect: 'noredirect',
children: [
{
path: 'associated-order/:orderId(\\d+)',
component: (resolve) => import('@/views/ecw/order/associatedOrder'),
props: true,
name: 'associatedOrder',
meta: {title: '关联订单', icon: '', activeMenu: '/order/associatedOrder'}
},
{
path: 'add-associated-order/:orderId',
component:()=>import('@/views/ecw/order/addAssociatedOrder'),
props: true,
name:'addAssociatedOrder',
meta:{
title:'添加关联订单',
icon:'',
activeMenu:'/order/addAssociatedOrder'
}
},
{
path:'single-application/:orderId',
component:()=>import('@/views/ecw/order/singleApplication'),
props: true,
name: 'singleApplication',
meta: {
title: '调仓申请',
icon: '',
activeMenu: '/order/singleApplication'
}
},
{
path: 'batch-single-application/:orderId',
component:()=> import('@/views/ecw/order/batchSingleApplication'),
name: 'batchSingleApplication',
meta: {
title: '批量调仓申请',
icon:'',
activeMenu: '/order/batchSingleApplication'
}
},
{
path: 'fee-application/:orderId',
component:()=> import('@/views/ecw/order/feeApplication'),
name: 'feeApplication',
props: true,
meta: {
title: '费用申请',
icon:'',
activeMenu: '/order/feeApplication'
}
}
],
},
{
path: '/boxSea',
component: Layout,
......
......@@ -99,6 +99,7 @@ export const DICT_TYPE = {
ECW_RECEIPT_STATE: 'receipt_state',//收款单状态
ECW_SUING_METHOD: 'suing_method', // 出单方式
ECW_HARVEST_METHOD: 'harvest_method', // 收货方式
ECW_PAY_ADVANCE: 'pay_advance', // 是否预付
//--------ecw---------
CUSTOMER_STATUS: 'customer_status',
CUSTOMER_SOURCE: 'customer_source',
......@@ -143,6 +144,11 @@ export const DICT_TYPE = {
ORDER_ERROR_TYPE:'order_error_type',//订单异常类型
ORDER_EXCEPTION_STATUS:'order_exception_status',//异常订单状态
ECASH_INIT:'ecash_init', //e-cash
FEE_TYPE:'fee_type',
PAY_TYPE:'pay_type',
RECEIVE_FLAG:'receive_flag',
COMDINED_VALUE_ADDED_FEE:'combined_value_added_fee',
ORDER_SPECIAL_NEEDS:'order_special_needs'
}
/**
......
const lodop = function(){
return new Promise((resolve, reject) => {
if(!window.getLodop){
var hm = document.createElement("script");
hm.src = "/static/LodopFuncs.js";
hm.onload = function(){
console.log('lodop.js已加载')
// 加载js文件后会自动链接ws,等一会再操作
setTimeout(res => {
resolve(getLodop())
}, 500)
}
hm.onerror = function(err){
reject(err)
}
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(hm, s);
}else resolve(getLodop())
})
}
export default lodop
\ No newline at end of file
......@@ -34,36 +34,37 @@
<el-form ref="retForm" :model="retForm">
<el-form-item label="有效时间(尼日利亚)">
<el-col :span="3">
<el-date-picker type="datetime" disabled value-format="yyyy-MM-dd HH:mm:ss" format="yyyy-MM-dd HH:mm:ss"
v-model="this.ecashDatas.find(item=>item.value == 1).label"
style="width: 100%;"></el-date-picker>
<el-date-picker type="datetime" value-format="yyyy-MM-dd HH:mm:ss" format="yyyy-MM-dd HH:mm:ss"
v-model="retForm.nrlyStartTime"
style="width: 100%;" @change="changeDictData1"></el-date-picker>
</el-col>
<el-col :span="1" align="center">-</el-col>
<el-col :span="3">
<el-time-picker type="datetime" disabled value-format="yyyy-MM-dd HH:mm:ss" format="yyyy-MM-dd HH:mm:ss"
v-model="this.ecashDatas.find(item=>item.value == 2).label"
style="width: 100%;"></el-time-picker>
<el-date-picker type="datetime" value-format="yyyy-MM-dd HH:mm:ss" format="yyyy-MM-dd HH:mm:ss"
v-model="retForm.nrlyEndTime" @change="changeDictData2"
style="width: 100%;"></el-date-picker>
</el-col>
</el-form-item>
</el-form>
<el-form>
<el-form-item label="有效时间(北京)">
<el-col :span="3">
<el-date-picker type="datetime" disabled value-format="yyyy-MM-dd HH:mm:ss" format="yyyy-MM-dd HH:mm:ss"
v-model="this.ecashDatas.find(item=>item.value == 3).label"
<el-date-picker type="datetime" :disable="showFlag" value-format="yyyy-MM-dd HH:mm:ss"
format="yyyy-MM-dd HH:mm:ss" @change="changeDictData3"
v-model="retForm.bjStartTime"
style="width: 100%;"></el-date-picker>
</el-col>
<el-col align="center" :span="1">-</el-col>
<el-col :span="3">
<el-time-picker type="datetime" disabled value-format="yyyy-MM-dd HH:mm:ss" format="yyyy-MM-dd HH:mm:ss"
v-model="this.ecashDatas.find(item=>item.value == 4).label"
style="width: 100%;"></el-time-picker>
<el-date-picker type="datetime" value-format="yyyy-MM-dd HH:mm:ss" format="yyyy-MM-dd HH:mm:ss"
v-model="retForm.bjEndTime" @change="changeDictData4"
style="width: 100%;"></el-date-picker>
</el-col>
</el-form-item>
</el-form>
<el-form :inline="true">
<el-form-item label="过期提示语:" prop="remark">
<span>{{ 5 | ecashDataFilter(ecashDatas) }}</span>
<el-input v-model="retForm.remark" type="textarea" @change="changeDictData5"></el-input>
</el-form-item>
</el-form>
</el-card>
......@@ -134,13 +135,14 @@
createCurrencyEcash,
updateCurrencyEcash,
deleteCurrencyEcash,
updateCurrencyEcashAll,
getCurrencyEcash,
getCurrencyEcashPage,
exportCurrencyEcashExcel
} from "@/api/ecw/currencyEcash";
import {CommonStatusEnum} from "@/utils/constants";
import {changeUserStatus} from "@/api/system/user";
import {DICT_TYPE, getDictDatas} from "@/utils/dict";
import {DICT_TYPE, getDictDatas, getDictData} from "@/utils/dict";
export default {
name: "CurrencyEcash",
......@@ -171,6 +173,11 @@
open: false,
dateRangeCreateTime: [],
showFlag: false,
nrlyStartTime: getDictData(DICT_TYPE.ECASH_INIT, 1).label,
nrlyEndTime: getDictData(DICT_TYPE.ECASH_INIT, 2).label,
bjStartTime: getDictData(DICT_TYPE.ECASH_INIT, 3).label,
bjEndTime: getDictData(DICT_TYPE.ECASH_INIT, 4).label,
remark: getDictData(DICT_TYPE.ECASH_INIT, 5).label,
startTime: "",
// 查询参数
queryParams: {
......@@ -184,6 +191,7 @@
aorder: null,
},
retForm: {},
updForm: {},
// 表单参数
form: {},
// 表单校验
......@@ -264,6 +272,46 @@
this.showFlag = false;
});
},
changeDictData1(value) {
this.updForm.nrlyStartTime = value;
updateCurrencyEcashAll(this.updForm).then(response => {
this.$modal.msgSuccess("修改成功");
this.getList();
this.showFlag = false;
});
},
changeDictData2(value) {
this.updForm.nrlyEndTime = value;
updateCurrencyEcashAll(this.updForm).then(response => {
this.$modal.msgSuccess("修改成功");
this.getList();
this.showFlag = false;
});
},
changeDictData3(value) {
this.updForm.bjStartTime = value;
updateCurrencyEcashAll(this.updForm).then(response => {
this.$modal.msgSuccess("修改成功");
this.getList();
this.showFlag = false;
});
},
changeDictData4(value) {
this.updForm.bjEndTime = value;
updateCurrencyEcashAll(this.updForm).then(response => {
this.$modal.msgSuccess("修改成功");
this.getList();
this.showFlag = false;
});
},
changeDictData5(value) {
this.updForm.remark = value;
updateCurrencyEcashAll(this.updForm).then(response => {
this.$modal.msgSuccess("修改成功");
this.getList();
this.showFlag = false;
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
......
<template>
<div class="add-associated-order">
<h1 class="title">订单号:ECP0013123N 选择订单</h1>
<el-divider></el-divider>
<el-form inline label-width="85px" label-position="left">
<el-form-item label="订单号">
<div class="content"></div>
</el-form-item>
<el-form-item label="唛头">
<div class="content"></div>
</el-form-item>
<el-form-item label="商品类型">
<div class="content"></div>
</el-form-item>
<el-form-item label="商品名称">
<div class="content"></div>
</el-form-item>
<el-form-item label="运输方式">
<div class="content"></div>
</el-form-item>
<el-form-item label="出货渠道">
<div class="content"></div>
</el-form-item>
<el-form-item label="客户名称">
<div class="content"></div>
</el-form-item>
<el-form-item label="客户手机号">
<div class="content"></div>
</el-form-item>
<el-form-item label="商品特性">
<div class="content"></div>
</el-form-item>
<el-form-item>
<el-button>查询</el-button>
<el-button>重置</el-button>
</el-form-item>
</el-form>
<h1 class="title">
未加入关联订单列表
</h1>
<el-divider></el-divider>
<el-table>
<el-table-column
type="selection"
width="55"
></el-table-column>
<el-table-column label="序号"></el-table-column>
<el-table-column label="订单号"></el-table-column>
<el-table-column label="唛头"></el-table-column>
<el-table-column label="商品名列表"></el-table-column>
<el-table-column label="货物特性"></el-table-column>
<el-table-column label="货物材质"></el-table-column>
<el-table-column label="货物数据"></el-table-column>
<el-table-column label="入仓时间"></el-table-column>
<el-table-column label="状态"></el-table-column>
<el-table-column label="操作人"></el-table-column>
<el-table-column label="操作时间"></el-table-column>
<el-table-column label="操作"></el-table-column>
</el-table>
<el-row style="margin-top: 40px">
<el-col>
<el-button type="primary">
批量加入关联
</el-button>
<el-button>
取消
</el-button>
</el-col>
</el-row>
</div>
</template>
<script>
//添加关联订单
export default {
name: "addAssociatedOrder"
}
</script>
<style scoped lang="scss">
.add-associated-order{
padding: 20px;
box-sizing: border-box;
.title{
font-size: 30px;
font-weight: 600;
text-align: left;
}
.el-form{
.content{
width: 300px;
}
}
}
</style>
<template>
<div class="associated-order">
<h1 class="title">
关联订单-{{orderDetails.orderNo}}
</h1>
<el-divider></el-divider>
<orde-details-form :details ="orderDetails" ></orde-details-form>
<el-divider></el-divider>
<el-form inline label-width="100px">
<el-form-item label="订单号"><div class="content">
<el-input></el-input>
</div></el-form-item>
<el-form-item label="唛头"><div class="content">
<el-input></el-input>
</div></el-form-item>
<el-form-item label="商品类型"><div class="content">
<el-input></el-input>
</div></el-form-item>
<el-form-item label="商品名称"><div class="content">
<el-input></el-input>
</div></el-form-item>
<el-form-item label="运输方式"><div class="content">
<el-input></el-input>
</div></el-form-item>
<el-form-item label="出货渠道"><div class="content">
<el-input></el-input>
</div></el-form-item>
<el-form-item label="客户名称"><div class="content">
<el-input></el-input>
</div></el-form-item>
<el-form-item label="客户手机号"><div class="content">
<el-input></el-input>
</div></el-form-item>
<el-form-item label="商品特性"><div class="content">
<el-input></el-input>
</div></el-form-item>
<el-form-item><div class="content">
<el-button>查询</el-button>
<el-button>重置</el-button>
</div></el-form-item>
</el-form>
<el-divider></el-divider>
<div style="display: flex;align-items: center;">
<h1 class="title">
已加入关联订单列表
</h1>
<div style="flex: 1;margin-left: 20px;">
<el-button type="primary">批量移出</el-button>
</div>
<div>
<el-button type="primary">添加关联订单</el-button>
</div>
</div>
<el-table>
<el-table-column
type="selection"
width="55">
</el-table-column>
<el-table-column label="序号"></el-table-column>
<el-table-column label="订单号"></el-table-column>
<el-table-column label="唛头"></el-table-column>
<el-table-column label="商品名列表"></el-table-column>
<el-table-column label="货物特性"></el-table-column>
<el-table-column label="货物材质"></el-table-column>
<el-table-column label="货物数据"></el-table-column>
<el-table-column label="入仓时间"></el-table-column>
<el-table-column label="状态"></el-table-column>
<el-table-column label="操作人"></el-table-column>
<el-table-column label="操作时间"></el-table-column>
<el-table-column label="操作"></el-table-column>
</el-table>
</div>
</template>
<script>
//关联订单
import ordeDetailsForm from "@/views/ecw/order/components/ordeDetailsForm";
import {getOrder} from "@/api/ecw/order";
export default {
name: "associatedOrder",
props:{
orderId:[String,Boolean]
},
components:{
ordeDetailsForm
},
data(){
return {
orderDetails:{}
}
},
created() {
getOrder(this.orderId).then( r =>{
if(r.code === 0){
this.orderDetails = r.data;
}
})
},
}
</script>
<style scoped lang="scss">
.associated-order{
padding: 20px;
box-sizing: border-box;
.title{
font-size: 30px;
font-weight: 600;
}
}
</style>
<template>
<div class="batch-single-application">
<h1 class="title">批量调仓申请</h1>
<el-table>
<el-table-column label="订单编号"></el-table-column>
<el-table-column label="唛头"></el-table-column>
<el-table-column label="已到箱数/总箱数"></el-table-column>
<el-table-column label="下单统计"></el-table-column>
<el-table-column label="入仓统计"></el-table-column>
<el-table-column label="运输方式"></el-table-column>
<el-table-column label="出货渠道"></el-table-column>
<el-table-column label="始发仓"></el-table-column>
<el-table-column label="目的地"></el-table-column>
<el-table-column label="送货时间"></el-table-column>
</el-table>
<div style="display: flex;justify-content:center; margin-top: 20px">
<div style="width: 300px;height: 50px;border: 1px solid; margin: 0 10px"></div>
<div style="width: 300px;height: 50px;border: 1px solid;"></div>
</div>
<el-divider></el-divider>
<h1 class="title">
审批流程
</h1>
<div style="height: 100px"></div>
<el-form label-width="200px">
<el-form-item label="抄送"></el-form-item>
<el-form-item label="抄送人"></el-form-item>
</el-form>
<div style="text-align: center">
<el-button style="margin-right: 50px">提交申请</el-button>
<el-button>取消</el-button>
</div>
</div>
</template>
<script>
export default {
name: "batchSingleApplication"
}
</script>
<style scoped lang="scss">
.batch-single-application{
padding: 20px;
box-sizing: border-box;
.title{
font-weight: 600;
}
}
</style>
<template>
<el-dialog :title="title" visible :before-close="closeDialog">
<div class="" v-if="step == 'form'">
<el-form ref="form" :model="form" label-position="left" label-width="100px">
<el-form-item v-if="detail" label="订单号">
<el-input v-model="detail.orderNo" readonly></el-input>
</el-form-item>
<el-form-item label="起始标签" prop="start" required>
<el-input v-model.number="form.start" type="number"></el-input>
</el-form-item>
<el-form-item label="结束标签" prop="end" required>
<el-input v-model.number="form.end" type="number" :max="detail ? detail.num : 1"></el-input>
</el-form-item>
<el-form-item label="">
<el-button type="primary" @click="showPreview">去打印</el-button>
</el-form-item>
</el-form>
</div>
<template v-if="step=='preview'">
<div style="width: 80mm; margin: 0 auto;" id="order-print-tag" v-if="detail">
<div style="float: left; width: 28mm; border-bottom: 0.2mm solid #333; border-right: 0.2mm solid #333; " >
<img :src="detail.url" alt="ECP0063704N-1" style="width: 26mm" />
<p style=" text-align: center; height: 5mm; font-size: 3mm; -webkit-margin-before: 0em; -webkit-margin-after: 0em; margin-top: 0mm; " >
{{detail.orderNo}}-{{currentNo}}
</p>
<p style="margin-top: -1mm; text-align: center">
<span style="text-align: center; font-weight: 600; font-size: 6mm" >{{currentNo}}</span>
</p>
</div>
<div style="float: left; width: 50mm; margin-bottom: 2mm">
<p style=" padding-top: 0px; border-bottom: 0.2mm solid #333; text-align: center; line-height: 6mm; padding: 0px; padding-bottom: 2.5mm; margin: 0px; font-weight: 600; font-size: 6mm; " >
{{detail.orderNo}}
</p>
<p style=" padding: 0px; border-bottom: 0.2mm solid #333; text-align: center; line-height: 6mm; padding: 0px; padding-top: 2.6mm; padding-bottom: 2.6mm; margin: 0px; font-weight: 600; font-size: 6mm; " >
{{detail.marks}}
</p>
<p style=" padding: 0px; border-bottom: 0.2mm solid #333; text-align: center; line-height: 6mm; padding: 0px; margin: 0px; font-size: 5mm; text-transform: uppercase; padding-top: 3.5mm; padding-bottom: 2.5mm; " >
{{detail.startTitleEn}} --&gt;
<label style="font-weight: 600; font-size: 5.5mm">{{detail.destTitleEn}} </label>
</p>
<p style=" padding: 0px; padding-top: 2.7mm; padding-bottom: 2.7mm; padding-left: 3mm; float: left; width: 29%; border-bottom: 0.2mm solid #333; text-align: center; line-height: 6mm; font-size: 4mm; text-transform: uppercase; margin: 0px; " >
LCL
</p>
<p style=" padding: 0px; padding-top: 2.7mm; padding-bottom: 2.7mm; padding-left: 4mm; float: left; border-left: 0.2mm solid #333; border-bottom: 0.2mm solid #333; text-align: center; line-height: 6mm; margin: 0px; font-size: 5mm; text-transform: uppercase; font-weight: 500; " >
{{detail.inTime|parseTime('{y}-{m}-{d}')}}
</p>
</div>
<div style="width: 76mm">
<p style="text-align: center">
<label
style="font-size: 5mm; font-weight: 600; padding-right: 1mm"
>E&amp;C</label
>{{detail.foot}}
</p>
</div>
</div>
<div style="text-align:center;">
<el-button type="primary" @click="print">确定打印</el-button>
</div>
</template>
</el-dialog>
</template>
<script>
import {printTag} from '@/api/ecw/order'
import {parseTime} from '@/utils/ruoyi'
import lodop from '@/utils/lodop'
export default {
filters: {parseTime},
props:{
orderId: [String, Number]
},
data(){
return {
show: false,
detail: null,
step: 'form',
form:{
start: 1,
end: 1
},
currentNo: 1
}
},
computed:{
title(){
let t = '打印标签'
if(this.detail){
t += '-' + this.detail.orderNo
}
return t
}
},
created(){
this.show = true
this.loadData()
},
methods:{
loadData(){
printTag(this.orderId).then(res => {
this.$set(this, 'detail', res.data[0])
})
},
closeDialog(){
console.log('关闭')
this.show = false
this.$emit('close');
},
showPreview(){
this.$refs["form"].validate(valid => {
if (!valid) {
return;
}
this.currentNo = this.form.start
this.step = 'preview'
})
},
print(){
lodop().then(LODOP => {
LODOP.PRINT_INIT(this.title);
LODOP.SET_PRINT_STYLE("FontSize",18);
LODOP.SET_PRINT_STYLE("Bold",1);
// LODOP.ADD_PRINT_TEXT(50,231,260,39,"打印页面部分内容");
for(let i = this.form.start; i <= this.form.end; i ++){
LODOP.ADD_PRINT_HTM(88,200,350,600, document.getElementById("order-print-tag").innerHTML);
LODOP.PRINT();
}
this.$alert('已发起打印任务');
// LODOP.PREVIEW(); // 预览
/* LODOP.PRINTA(); // 选择打印机
// 直接打印 */
console.log('打印哦')
}).catch(err => {
console.error('lodop异常', err)
alert('请检查LODOP打印控件是否安装并启动');
})
}
}
}
</script>
\ No newline at end of file
<template>
<div>
<el-descriptions class="margin-top" border :column="4">
<el-descriptions-item label="唛头">{{details.marks}}</el-descriptions-item>
<el-descriptions-item label="已到箱数/总箱数">{{details.sumQuantity}}/{{details.sumNum}}</el-descriptions-item>
<el-descriptions-item label="订单状态">{{details.status}}</el-descriptions-item>
<el-descriptions-item label="送货日期">{{}}</el-descriptions-item>
<el-descriptions-item label="运输方式">{{details.transportId}}</el-descriptions-item>
<el-descriptions-item label="出货渠道">{{details.channelId}}</el-descriptions-item>
<el-descriptions-item label="始发地">{{details.logisticsInfoDto.startWarehouseId}}</el-descriptions-item>
<el-descriptions-item label="目的地">{{details.logisticsInfoDto.destWarehouseId}}</el-descriptions-item>
<el-descriptions-item label="发货人姓名">{{details.consignorVO.customerId}}</el-descriptions-item>
<el-descriptions-item label="发货人公司">{{details.consignorVO.company}}</el-descriptions-item>
<el-descriptions-item label="发货人电话">{{details.consignorVO.phone}}</el-descriptions-item>
<el-descriptions-item></el-descriptions-item>
<el-descriptions-item label="收货人姓名">{{details.consigneeVO.customerId}}</el-descriptions-item>
<el-descriptions-item label="收货人公司">{{details.consigneeVO.company}}</el-descriptions-item>
<el-descriptions-item label="收货人电话">{{details.consigneeVO.phone}}</el-descriptions-item>
<el-descriptions-item></el-descriptions-item>
</el-descriptions>
</div>
</template>
<script>
export default {
props:{
details:{
type:Object,
default:()=>{
return {
logisticsInfoDto:undefined,
consignorVO:undefined,
consigneeVO:undefined,
}
}
},
},
name: "ordeDetailsForm",
}
</script>
<template>
<div>
<el-dialog :before-close="()=>{
clearFrom();$emit('update:show',false)
}" center width="80%" :visible.sync="show">
<div class="content">
<el-form label-width="180px" label-position="left">
<el-form-item label="特殊要求">
<dict-selector v-model="form.advanceType" formType="radio" :type="DICT_TYPE.ORDER_SPECIAL_NEEDS" ></dict-selector>
</el-form-item>
<el-form-item label="特殊要求备注"><el-input type="textarea" style="width: 300px;" v-model="form.todoDetail"></el-input></el-form-item>
<el-form-item label="内陆运费垫付预计金额" v-if="form.advanceType == 6">
<el-input style="width: 300px;" v-model="form.transFee">
<div style="width: 100px;" slot="append" >
<dict-selector v-model="form.transCurrency" :type="DICT_TYPE.COMMISSION_CURRENCY_TYPE" ></dict-selector>
</div>
</el-input>
</el-form-item>
<el-form-item label="付款类型" v-if="form.advanceType == 6">
<div style="width: 300px;">
<dict-selector v-model="form.payType" :type="DICT_TYPE.PAY_TYPE" ></dict-selector>
</div>
</el-form-item>
</el-form>
</div>
<div slot="footer" class="dialog-footer">
<el-button @click="submit">提交</el-button>
<el-button @click="clearFrom();$emit('update:show',false)">取消</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { getDictDatas, DICT_TYPE } from '@/utils/dict';
import {specialNeedCreate} from "@/api/ecw/order";
export default {
name: "specialNeeds",
created() {
this.clearFrom()
},
props:{
orderId:{
type:[String,Number],
},
show:Boolean,
},
data(){
return{
getDictDatas,
DICT_TYPE,
form:{},
}
},
methods:{
clearFrom(){
this.form = {
advanceType:undefined,
advanceWho: undefined,
payType: undefined,
todoDetail: undefined,
transCurrency: undefined,
transFee: undefined
}
},
submit(){
specialNeedCreate(this.form).then(r=>{
console.log(r)
if(r.code === 0){
this.clearFrom();
this.$emit('update:show',false)
}
})
},
},
watch:{
orderId(val){
this.form.orderId = val;
},
'form.advanceType'(val){
this.form.transFee = undefined;
this.form.transCurrency = undefined;
this.form.payType = undefined;
}
}
}
</script>
<style scoped lang="scss">
</style>
......@@ -116,7 +116,7 @@
<el-table-column label="品牌" width="100px">
<template slot-scope="{row}">
<dict-selector v-model="row.brand" :type="DICT_TYPE.ECW_IS_BRAND" formatter="bool" defaultable @input="calculationPrice(row)" :disabled="!form.lineId" />
<dict-selector v-model="row.brand" :type="DICT_TYPE.ECW_IS_BRAND" defaultable @input="calculationPrice(row)" :disabled="!form.lineId" />
</template>
</el-table-column>
<el-table-column label="件数" width="90px">
......@@ -164,19 +164,22 @@
<el-table-column label="运费" width="200px">
<template slot-scope="{row}">
<template v-if="row.fee">
<template v-if="row.fee && row.fee.charging == 1">
全包价:{{row.fee.freight}} {{currentcyMap[row.fee.freightCurrency]}} / {{unitMap[row.fee.freightVolume]}}
</template>
<template v-else-if="row.fee">
<div>
运费:{{row.fee.seaFreight}} {{currentcyMap[row.fee.seaFreightCurrency]}} / {{unitMap[row.fee.seaFreightVolume]}}
运费:{{row.fee.freight}} {{currentcyMap[row.fee.freightCurrency]}} / {{unitMap[row.fee.freightVolume]}}
</div>
<div>
清关费:{{row.fee.clearanceFreight}} {{currentcyMap[row.fee.clearanceFreightCurrency]}} / {{unitMap[row.fee.clearanceFreightVolume]}}
清关费:{{row.fee.clearanceFee}} {{currentcyMap[row.fee.clearanceFeeCurrency]}} / {{unitMap[row.fee.clearanceFeeVolume]}}
</div>
</template>
</template>
</el-table-column>
<el-table-column label="是否预付" width="200px">
<el-table-column label="是否预付">
<template slot-scope="{row}">
{{row.yufu || '未知'}}
<dict-tag v-if="row.fee" :type="DICT_TYPE.ECW_PAY_ADVANCE" :value="row.fee.isPayAdvance" />
</template>
</el-table-column>
<el-table-column label="操作" width="80px" fixed="right">
......@@ -188,7 +191,7 @@
<!--
</el-card>
<el-card class="mt-10"> -->
<div class="card-title" style="padding:20px 0;">费用小</div>
<div class="card-title" style="padding:20px 0;"></div>
<el-descriptions :column="4" border>
<el-descriptions-item label="总件数">
{{sum.totalNum || 0}}
......@@ -208,6 +211,60 @@
</el-descriptions>
</el-card>
<el-card class="mt-10">
<div class="card-title" slot="header">预计费用</div>
<el-descriptions :column="5" border>
<el-descriptions-item label="保价费">
{{fee.insuranceFee || 0}} 人民币
</el-descriptions-item>
<el-descriptions-item label="总运费">
<div>{{fee.seaNGN || 0}}奈拉</div>
<div>{{fee.seaRMB || 0}}人民币</div>
<div>{{fee.seaUSD || 0}}美元</div>
</el-descriptions-item>
<!--代收货款,只有非控货订单、并且线路开通了代收货款后,才显示是否代收货款选项-->
<el-descriptions-item label="总清关费">
<div>{{fee.clearanceNGN || 0}}奈拉</div>
<div>{{fee.clearanceRMB || 0}}人民币</div>
<div>{{fee.clearanceUSD || 0}}美元</div>
</el-descriptions-item>
<el-descriptions-item label="其他费用">
<!--TODO 缺少其他费用字段-->
<el-input v-model="form.collectionProxy" placeholder="" style="width:200px"></el-input>
<selector v-model="form.collectionProxyCurrency" :options="currencyList" label-field="titleZh" value-field="id" defaultable style="width:100px" />
</el-descriptions-item>
<el-descriptions-item label="原价" :span="2">
<!--TODO 缺少字段-->
<div>{{fee.clearanceNGN || 0}}奈拉</div>
<div>{{fee.clearanceRMB || 0}}人民币</div>
<div>{{fee.clearanceUSD || 0}}美元</div>
</el-descriptions-item>
</el-descriptions>
<div class="card-title" style="padding:20px 0;">优惠信息</div>
<el-row v-for="(item, index) in getDictDatas(DICT_TYPE.ECW_COUPON_TYPE)" :key="item.value">
<el-col :span="2">{{index+1}}.{{item.label}}</el-col>
<el-col :span="4">
<el-select placeholder="">
</el-select>
</el-col>
<el-col :span="2">-10美元</el-col>
<el-col :span="5">有效期:永久有效</el-col>
</el-row>
<el-descriptions :column="1" border>
<el-descriptions-item label="优惠合计">
1233.1美元
</el-descriptions-item>
<el-descriptions-item label="预计费用">
</el-descriptions-item>
</el-descriptions>
</el-card>
<el-card class="mt-10">
<div class="card-title" slot="header">通用</div>
......@@ -332,11 +389,10 @@ import Selector from '@/components/Selector'
import CustomerContactSelector from '@/components/CustomerContactSelector'
import {openedRouterList as getOpenedRouterList} from '@/api/ecw/warehouse'
import {getTradeCityList} from '@/api/ecw/region'
import {getDictData} from '@/utils/dict'
import {getDictData, getDictDatas} from '@/utils/dict'
import Fee from '@/components/Fee'
import {getCurrencyList} from '@/api/ecw/currency'
import {getUnitList} from '@/api/ecw/unit'
import { getDictDatas } from '@/utils/dict';
import { getCustomer } from '@/api/ecw/customer';
import { getListTree } from "@/api/ecw/region";
import AreaSelector from '@/components/AreaSelector'
......@@ -391,6 +447,9 @@ export default {
getDictData(){
return (type, value) => getDictData(type, value) || {}
},
getDictDatas(){
return getDictDatas
},
// 根据线路id显示线路名称
getRouterNameById(){
......@@ -460,6 +519,9 @@ export default {
// 收货联系人发生变化获取收货客户
consigneeContact(){
this.getConsignee()
},
productList(){
console.log('计算运费')
}
},
created() {
......@@ -533,61 +595,13 @@ export default {
this.consignee = res.data
})
},
/* onTransportChange(row, val){
this.this.calculationPrice(row)
if(this.getDictData(this.DICT_TYPE.ECW_TRANSPORT_TYPE, val).cssClass != 'channel') row.channelId = null
this.updateEnabledTransports()
},
onLineChange(row){
this.getProductFee(row)
this.updateEnabledTransports()
},
onChannelChange(row){
this.getProductFee(row)
}, */
onProductAttrChange(row, attr){
console.log(attr)
this.calculationPrice(row)
/* // 需要强制刷新,否则勾选框不更新
this.$forceUpdate() */
},
// 更新运输方式
/* updateEnabledTransports(){
let enabled = {}
this.productList.forEach(prod => {
if(prod.transportId){
if(!enabled[prod.transportId]){
enabled[prod.transportId] = {
// transportId: prod.transportId,
lineIdSet: new Set(),
channelIdSet: new Set(),
routers:[]
}
}
if(prod.lineId){
enabled[prod.transportId].lineIdSet.add(prod.lineId)
}
if(prod.channelId){
enabled[prod.transportId].channelIdSet.add(prod.channelId)
}
if(prod.lineId && enabled[prod.transportId].routers.findIndex(item => { item.lineId == prod.lineId && item.channelId == prod.channelId }) < 0){
enabled[prod.transportId].routers.push({
lineId: prod.lineId,
channelId: prod.channelId
})
}
}
})
console.log(JSON.stringify(enabled))
let enabledTransportIds = Object.keys(enabled).map(item => +item)
this.transportList.forEach(transport => {
this.$set(transport, '_enabled', enabledTransportIds.indexOf(transport.transportId) > -1 && enabled[transport.transportId].routers.length)
if(transport._enabled){
Object.assign(transport, enabled[transport.transportId])
}
})
}, */
addProduct(data){
this.productList.push(data || {prodAttrArr:[]})
},
......@@ -604,7 +618,7 @@ export default {
channelId: this.form.channelId,
prodConditionParamList: [row]
}).then(res => {
this.$set(row, 'fee', res.data[0] || {})
this.$set(row, 'fee', res.data.prodCostDtoList[0] || {})
})
},
// 获取路线
......
<template>
<div class="fee-application">
<h1>费用申请-{{orderDetails.orderNo}}
</h1>
<el-divider></el-divider>
<el-form label-width="100px" inline>
<el-form-item label="订单号:"><div class="content">
{{orderDetails.orderNo}}
</div></el-form-item>
<el-form-item label="发货人:"><div class="content">{{orderDetails.consignorVO.name}}</div></el-form-item>
<el-form-item label="唛头"><div class="content">{{orderDetails.marks}}</div></el-form-item>
<el-form-item> <el-button @click="addCost">添加申请</el-button></el-form-item>
</el-form>
<el-table :data="list">
<el-table-column label="序号" type="index"></el-table-column>
<el-table-column label="费用类型">
<template v-slot:default="scope">
<dict-selector :type="DICT_TYPE.FEE_TYPE" v-model="scope.row.feeType" />
</template>
</el-table-column>
<el-table-column label="金额">
<template v-slot:default = 'scope'>
<el-input v-model="scope.row.applicationFee" ></el-input>
</template>
</el-table-column>
<el-table-column label="货币类型">
<template v-slot:default = 'scope'>
<dict-selector :type="DICT_TYPE.COMMISSION_CURRENCY_TYPE" v-model="scope.row.applicationFeeCurrency" />
</template>
</el-table-column>
<el-table-column label="付款类型">
<template v-slot:default = 'scope'>
<dict-selector :type="DICT_TYPE.PAY_TYPE" v-model="scope.row.payType" />
</template>
</el-table-column>
<el-table-column label="备注">
<template v-slot:default="scope">
<el-input v-model="scope.row.remarks" type="textarea"></el-input>
</template>
</el-table-column>
<el-table-column label="确认收款">
<template v-slot:default ="scope">
<dict-tag :type="DICT_TYPE.RECEIVE_FLAG" :value="scope.row.receiveFlag" />
</template>
</el-table-column>
<el-table-column label="申请人">
<template v-slot:default ="scope">
{{scope.row.status == 0 ?'未提交': scope.row.applicationAuthor}}
</template>
</el-table-column>
<el-table-column label="审核人">
<template v-slot:default ="scope">
{{scope.row.status == 0 ?'未提交': scope.row.shenhe}}
</template>
</el-table-column>
<el-table-column label="操作">
<template v-slot:default = 'scope'>
<el-button type="text" v-if="scope.row.status !== 0">{{status[scope.row.status]}}</el-button>
<el-button type="text" v-if="scope.row.status === 2">修改</el-button>
</template>
</el-table-column>
</el-table>
<div style="text-align: center;margin-top: 20px;">
<el-button style="margin-right: 30px;" @click="submit">提交</el-button>
<el-button>取消</el-button>
</div>
</div>
</template>
<script>
import {getOrder, feeApplicationListByOrderId, feeApplicationCreate} from "@/api/ecw/order";
import { getDictDatas, DICT_TYPE } from '@/utils/dict';
import Template from "@/views/cms/template";
let status = {0:'未提交',1:'审核中',2:'审核通过',3:'审核不通'}
export default {
name: "feeApplication",
components: {Template},
props:{
orderId:[Number, String],
},
data(){
return {
orderDetails:{},
list:[],
DICT_TYPE,
getDictDatas,
status
}
},
created() {
getOrder(this.orderId).then(r =>{
this.orderDetails = r.data
})
this.feeApplicationFn();
},
methods:{
feeApplicationFn(){
feeApplicationListByOrderId({orderId:this.orderId}).then(r => {
console.log(r)
})
},
addCost(){
this.list.push(
{
orderId:this.orderId,
feeType:undefined,//费用申请类型
applicationFee:undefined,//金额
applicationFeeCurrency:undefined,// 费用申请货币类型
remarks:undefined,
receiveFlag:0,
applicationAuthor:undefined,
shenhe:undefined,
status:0,
}
)
},
submit(){
feeApplicationCreate(this.list[0]).then(r=>{
console.log(r);
})
}
}
}
</script>
<style scoped lang="scss">
.fee-application {
padding: 0 20px;
h1{
font-weight: 600;
font-size: 20px;
}
.content{
width: 200px;
}
}
</style>
......@@ -147,6 +147,11 @@
v-hasPermi="['ecw:order:update']">退仓</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
v-hasPermi="['ecw:order:delete']">删除</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="printTagOrderId=scope.row.orderId"
v-hasPermi="['ecw:order:delete']">打印标签</el-button>
<el-button type="text" size="mini" @click="$router.push(`/order/fee-application/${scope.row.orderId}`)">费用申请</el-button>
<el-button type="text" size="mini" @click="orderId = scope.row.orderId;isShow = true" >特殊</el-button>
<el-button type="text" size="mini" @click="$router.push(`/order/associated-order/${scope.row.orderId}`)" >关联</el-button>
</template>
</el-table-column>
</el-table>
......@@ -185,6 +190,12 @@
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
<!-- <el-dialog :title="'打印标签'" visible.sync="showPrintTag">
</el-dialog> -->
<print-tag v-if="printTagOrderId !== null" :order-id="printTagOrderId" @close="printTagOrderId=null" />
<special-needs :show.sync="isShow" :order-id="orderId" ></special-needs>
</div>
</template>
......@@ -193,13 +204,16 @@ import Selector from '@/components/Selector'
import ProductSelector from '@/components/ProductSelector'
import { getProductAttrList } from '@/api/ecw/productAttr'
import CustomerSelector from '@/components/CustomerSelector'
import specialNeeds from '@/views/ecw/order/components/specialNeeds';
import { getTradeCityList } from '@/api/ecw/region'
import { createOrder, updateOrder, deleteOrder, getOrder, getOrderPage, exportOrderExcel } from "@/api/ecw/order";
import { getDictDatas, DICT_TYPE } from '@/utils/dict';
import PrintTag from './components/PrintTag'
export default {
name: "Order",
components: {
CustomerSelector, ProductSelector, Selector
CustomerSelector, ProductSelector, Selector,specialNeeds,PrintTag
},
filters: {
cargoControlStatusFilter(e, cargoControlStatusList) {
......@@ -252,60 +266,7 @@ export default {
// 查询参数
queryParams: {
pageNo: 1,
pageSize: 10,
orderNo: null,
number: null,
tidanNo: null,
parentNumber: null,
oldNumbers: null,
transportId: null,
lineId: null,
channelId: null,
orderType: null,
userId: null,
marks: null,
productRecord: null,
isCargoControl: null,
cargoControlStatus: null,
customsType: null,
upFile: null,
payType: null,
status: null,
isDel: null,
collectionProxy: null,
isCollection: null,
zhongPao: null,
wVolume: null,
vWeight: null,
weightUnit: null,
warehouseType: null,
countryAbbreviation: null,
countryCode: null,
sendsms: null,
commissionId: null,
documentsFile: null,
remarks: null,
isTodoOrder: null,
advanceType: null,
transFee: null,
transCurrency: null,
plateFee: null,
boxFee: null,
todoDetail: null,
advanceWho: null,
toDepartureId: null,
sumNum: null,
sumVolume: null,
sumWeight: null,
weightRatio: null,
customerId: null,
wareId: null,
areaId: null,
locationId: null,
locationName: null,
sumValue: null,
valuationFee: null,
cost: null,
pageSize: 10
},
// 表单参数
form: {},
......@@ -327,6 +288,10 @@ export default {
denominator: '', //重货比分母
dateFilterType: '', //日期筛选类别
dateFilter: [], //筛选日期
printTagOrderId: null, // 显示打印标签的订单号
isShow:false,//特殊显示
orderId:undefined,
};
},
computed: {
......@@ -343,6 +308,9 @@ export default {
getTradeCityList().then(res => this.tradeCityList = res.data)
},
methods: {
printTag(item){
},
/** 查询列表 */
getList() {
this.loading = true;
......
<template>
<div class="single-application">
<h1 class="title">
调仓申请-EC00123132N
</h1>
<el-divider></el-divider>
<h1>订单信息</h1>
<orde-details-form></orde-details-form>
<el-divider></el-divider>
<h1>货物信息</h1>
<el-table border >
<el-table-column label="序号"></el-table-column>
<el-table-column label="品名">
<template v-slot:default = "scope">
</template>
</el-table-column>
<el-table-column label="填单货物属性">
<template v-slot:default = "scope"></template>
</el-table-column>
<el-table-column label="入库货物属性">
<template v-slot:default = "scope"></template>
</el-table-column>
<el-table-column label="入库统计">
<template v-slot:default = "scope"></template>
</el-table-column>
<el-table-column label="收款货物属性">
<template v-slot:default = "scope"></template>
</el-table-column>
<el-table-column label="最后操作时间">
<template v-slot:default = "scope"></template>
</el-table-column>
<el-table-column label="状态"></el-table-column>
</el-table>
<el-row style="margin-top: 20px;line-height: 3;" type="flex" justify="center" align="center">
<el-col :span="3">
<div>
从 广州仓 调至
</div>
</el-col>
<el-col :span="3">
<el-input></el-input>
</el-col>
</el-row>
<el-divider></el-divider>
<h1>审批流程</h1>
<div style="height: 50px"></div>
<el-form label-width="100px">
<el-form-item label="抄送"></el-form-item>
<el-form-item label="抄送人"></el-form-item>
</el-form>
<div style="text-align:center">
<el-button style="margin-right: 50px">提交申请</el-button>
<el-button>取消</el-button>
</div>
</div>
</template>
<script>
import ordeDetailsForm from "@/views/ecw/order/components/ordeDetailsForm";
export default {
name: "singleApplication",
components: {ordeDetailsForm}
}
</script>
<style scoped lang="scss">
.single-application{
padding: 20px;
box-sizing: border-box;
.title{
font-size: 30px;
font-weight: 600;
}
.el-form {
.content{
min-width:230px ;
max-width: 300px;
}
}
}
</style>
......@@ -74,6 +74,7 @@
<el-button size="mini" type="text" @click="operationLogFn(scope.row)">操作日志</el-button>
<el-button v-if="scope.row.identityAuditStatus !== 0 && scope.row.identityAuditStatus !== undefined" size="mini" type="text" @click="identityFn(scope.row , '1')">身份证</el-button>
<el-button v-if="scope.row.enterpriseAuditStatus !== 0 && scope.row.enterpriseAuditStatus !== undefined" size="mini" type="text" @click="identityFn(scope.row, '2')">营业执照</el-button>
<el-button size="mini" type="text" @click="deleteFn(scope.row)">删 除</el-button>
</template>
</el-table-column>
</el-table>
......@@ -224,7 +225,7 @@ import {
memberGetAuthEnterpriseInfo,
memberUserAuditIdCard,
memberUserUpdateIdCard,
memberUserUpdateEnterprise
memberUserUpdateEnterprise, setUserUpdateStatus
} from "@/api/member/user";
import {DICT_TYPE, getDictDatas} from "@/utils/dict";
import FileUpload from "@/components/FileUpload"
......@@ -315,6 +316,18 @@ export default {
this.getList();
},
methods: {
deleteFn(row){
console.log(row)
this.$modal.confirm(`是否要删除昵称为${row.nickname}的会员`).then(function (){
return deleteUser(row.id)
}).then( res => {
if(res.code === 0) this.getList(); this.$message.success('删除成功')
}).catch(() =>{
this.$message.success('删除失败')
}
)
},
//导出
exportFn(){
this.$modal.confirm('是否确认导出所有用户数据项?').then(() => {
......@@ -329,8 +342,7 @@ export default {
handleStatusChange(row) {
let text = row.status === CommonStatusEnum.ENABLE ? "启用" : "停用";
this.$modal.confirm('确认要"' + text + '""' + row.nickname + '"用户吗?').then(function() {
// return changeUserStatus(row.id, row.status);
return
return setUserUpdateStatus({id:row.id,status:row.status})
}).then(() => {
this.$modal.msgSuccess(text + "成功");
}).catch(function() {
......@@ -422,7 +434,7 @@ export default {
seTupdateBackletter({userId:this.publicObj.id,backLetter:this.guaranteeUrl}).then(r=>{
if(r.code === 0){
this.guaranteeShow = false;
this.guaranteeUrl = true;
this.guaranteeUrl = '';
this.$message.success('保存成功');
}
})
......
......@@ -119,6 +119,9 @@
<el-form-item label="模板内容" prop="content">
<el-input type="textarea" v-model="form.content" placeholder="请输入模板内容" />
</el-form-item>
<el-form-item label="英文模板内容" prop="content">
<el-input type="textarea" v-model="form.contentEn" placeholder="请输入模板内容" />
</el-form-item>
<el-form-item label="开启状态" prop="status">
<el-radio-group v-model="form.status">
<el-radio v-for="dict in this.getDictDatas(DICT_TYPE.COMMON_STATUS)"
......@@ -128,6 +131,9 @@
<el-form-item label="短信 API 模板编号" prop="apiTemplateId">
<el-input v-model="form.apiTemplateId" placeholder="请输入短信 API 的模板编号" />
</el-form-item>
<el-form-item label="短信 API 英文模板编号" prop="apiTemplateId">
<el-input v-model="form.apiTemplateIdEn" placeholder="请输入短信 API 的英文模板编号" />
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" placeholder="请输入备注" />
</el-form-item>
......
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