Commit 2b4f2e4c authored by 邓春圆's avatar 邓春圆

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

parents dc6fc82d c71e3ae2
......@@ -70,3 +70,10 @@ export function taskTodoCount(){
}
)
}
// 用户角标数据
export function userMark(){
return request({
url:'/system/user/profile/user-mark',
})
}
......@@ -142,4 +142,20 @@ export function exportDeptOfferExcel(query) {
params: query,
responseType: 'blob'
})
}
// 报价单
export function getOfferSelect(params) {
return request({
url: '/ecw/offer/select',
method: 'get',
params
})
}
// 报价单
export function getOfferCheck(params) {
return request({
url: '/ecw/offer/check',
method: 'get',
params
})
}
\ No newline at end of file
......@@ -632,7 +632,6 @@ export function orderExportSearch(params){
url: '/ecw/order/export/search',
method: 'GET',
timeout: 5 * 60000,
responseType: 'arraybuffer',
params
})
}
......@@ -641,7 +640,6 @@ export function orderExportSearch(params){
export function orderExportMySearch(params){
return request({
url: '/ecw/order/export/my/search',
responseType: 'arraybuffer',
method: 'GET',
timeout: 5 * 60000,
params
......@@ -653,7 +651,6 @@ export function orderExportDeptSearch(params){
return request({
url: '/ecw/order/export/dept/search',
method: 'GET',
responseType: 'arraybuffer',
timeout: 5 * 60000,
params
})
......@@ -666,7 +663,6 @@ export function exportAbnormal(params){
method: 'get',
params: params,
timeout: 5 * 60000,
responseType: 'blob'
})
}
......@@ -678,7 +674,6 @@ export function exportHeavyOrder(params){
method: 'get',
params: params,
timeout: 5 * 60000,
responseType: 'blob'
})
}
......@@ -689,7 +684,6 @@ export function exportReturnOrder(params){
method: 'get',
params: params,
timeout: 5 * 60000,
responseType: 'blob'
})
}
......@@ -700,7 +694,6 @@ export function exportSaleRepay(params){
method: 'get',
params: params,
timeout: 5 * 60000,
responseType: 'blob'
})
}
......@@ -712,7 +705,6 @@ export function exportCustomsDatas(params){
method: 'get',
params: params,
timeout: 5 * 60000,
responseType: 'blob'
})
}
......@@ -724,7 +716,6 @@ export function exportShippingDatas(params){
method: 'get',
params: params,
timeout: 5 * 60000,
responseType: 'blob'
})
}
......@@ -736,7 +727,6 @@ export function exportShipFee(params){
method: 'get',
params: params,
timeout: 5 * 60000,
responseType: 'blob'
})
}
......@@ -748,7 +738,6 @@ export function exportUnload(params){
method: 'get',
params: params,
timeout: 5 * 60000,
responseType: 'blob'
})
}
......
import request from '@/utils/request'
import axios from "axios";
// 下载日志分页
export function downloadPage(params) {
return request({
url: '/system/download-log/page',
method: 'get',
params
})
}
// 下载
export function download(id){
return request({
url: 'system/download-log/down/' + id
})
}
// 获取文件二进制
export function downloadFileResponse(url){
return axios.get(url, {responseType: 'blob'})
}
<template>
<el-select
v-model="index"
filterable
clearable
remote
reserve-keyword
:placeholder="$t('请输入关键词')"
:remote-method="remoteMethod"
:loading="loading">
<el-option
v-for="(item, index) in list"
:key="item.id"
:label="`${item.payerName?item.payerName:item.name}(${item.number})`"
:value="index">
</el-option>
</el-select>
</template>
<script>
import {getCustomerSelect, getCustomer} from '@/api/ecw/customer'
export default {
props:{
productType: [String, Number],
value: [String, Number]
},
data(){
return {
index: null,
list:[],
loading: false
}
},
watch:{
index(val){
this.$emit('input', (val!==''&&val !== null) ? this.list[val].id: null)
this.$emit('change', (val!==''&&val !== null) ? this.list[val]: null)
},
value(val){
this.init()
}
},
created(){
this.init()
},
methods:{
init(){
if(!this.value) return
let index = this.list.findIndex(item => item.id == this.value)
if(index < 0){
getCustomer(this.value).then(res => {
this.list.unshift(res.data)
this.index = 0
})
}else{
this.index = index
}
},
remoteMethod(keyword){
let params = {}
params.searchKey = keyword
this.loading = true
getCustomerSelect(params)
.then(res => this.list = res.data.list)
.finally(() => this.loading = false)
},
reset(){
this.index=null
}
}
}
</script>
......@@ -196,7 +196,7 @@ export default {
"orderId": this.orderId,
"orderItemId": this.orderItemId,
"orderLocationUpdateReqVOList": data,
"warehouseInId": this.warehouseId
"warehouseInId": this.warehouseInId
}).then(() => {
this.$message.success('储位修改成功')
})
......
......@@ -1181,7 +1181,7 @@
"待收款": "Payment Unreceived",
"请输入唛头": "Please enter shipping mark",
"收款": "Receipt",
"收款单": "receipt",
"收款单": "Collection Note",
"商品名称": "product name",
"请输入商品名称": "Please enter a product name",
"收款类型": "Receipt Type",
......@@ -2641,7 +2641,7 @@
"上级区域": "Superior Area",
"选择上级区域": "Select superior area",
"请输入简称": "Please enter the abbreviation",
"国家代码-城市代码": "Country City Code",
"国家城市代码": "Country City Code",
"显示顺序": "Display order",
"请输入显示顺序": "Please enter the display order",
"部门状态": "Department Status",
......@@ -4032,14 +4032,16 @@
"供应商自提": "Supplier self pickup",
"数量(个)": "Quantity (pieces)",
"品名可拆数据": "Product name detachable data",
"剩余货值": "Remaining value",
"可拆入仓记录": "Removable warehouse records",
"已拆完": "Completed dismantling",
"已放入入仓记录": "Placed in warehouse entry record",
"放入货值": "Value of goods placed",
"{num}箱": "{num} box",
"长{boxGauge1}cm": "Length {boxGauge1} cm",
"宽{boxGauge2}cm": "Width {boxGauge2} cm",
"高{boxGauge3}cm": "Height {boxGauge3} cm",
"方数{volume}m³": "Square {volume} m ³ ",
"方数{volume}m³": "Square {volume} m ³",
"重量{weight}kg": "Weight {weight} kg",
"数量{n}": "Quantity {n}",
"快递{expressNo}": "Express {expressNo}",
......@@ -4146,5 +4148,110 @@
"暂无清关费设置": "Batch set up air freight routes for goods",
"查看更多": "There is currently no customs clearance fee setting",
"単询": "View more",
"查看阶梯价": "Single inquiry"
"查看阶梯价": "Single inquiry",
"您确定要将订单{orderNo}设置为可出吗?": "Are you sure you want to set order {orderNo} as available?",
"币种1": "Currency 1",
"请选择币种": "Please select a currency",
"币种2": "Currency 2",
"币种1 金额": "Currency 1 Amount",
"币种1金额兑换币种2汇率": "Currency 1 Amount Exchange Currency 2 Exchange Rate",
"币种2金额": "Currency 2 Amount",
"最后修改人": "Last modified by",
"日志": "journal",
"例子:": "Example:",
"例子:1RMB = 0.138611USD": "Example: 1RMB=0.138611USD",
"最后更新人": "Last updated by",
"修改前内容": "Content before modification",
"币种1:": "Currency 1:",
"币种2:": "Currency 2:",
"汇率:": "Exchange rate:",
"币种1不能为空": "Currency 1 cannot be empty",
"原币种代码不能为空": "The original currency code cannot be empty",
"币种2不能为空": "Currency 2 cannot be empty",
"目标种代码不能为空": "The target type code cannot be empty",
"汇率不能为空": "Exchange rate cannot be empty",
"是否确认删除汇率管理编号为": "Are you sure to delete the exchange rate management number as",
"是否确认导出所有汇率管理数据项?": "Are you sure to export all exchange rate management data items?",
"汇率不能为0,请输入正确的汇率": "The exchange rate cannot be 0. Please enter the correct exchange rate",
"核销基准币种汇率不能为0,请输入正确的汇率": "The benchmark currency exchange rate for verification cannot be 0. Please enter the correct exchange rate",
"期望收款汇率不能为0,请输入正确的汇率": "The expected collection exchange rate cannot be 0. Please enter the correct exchange rate",
"目的国": "Destination country",
"自编号状态": "Self numbered status",
"结算时间": "Settlement time",
"是否结算": "Settlement or not",
"No.柜号": "Cabinet No",
"应收款(Accounts receivableAccounts receivable)": "Accounts receivable",
"received in + 目的国国家Received in+items(目的地实收)": "Received in+Country of Destination Received in+Items",
"received in China(中国实收)": "Received in China",
"Discounts 折扣": "Discounts",
"是否重泡货": "Do you want to re bubble the goods",
"收费数据": "Fee data",
"订单优惠金额": "Order discount amount",
"实收总金额": "Total amount received",
"已收总金额": "Total amount received",
"应收运费": "Freight receivable",
"运费优惠金额": "Freight discount amount",
"实收运费": "Paid-up freight",
"已收运费": "Received shipping fee",
"应收清关费": "Payable customs clearance fee",
"实收清关费": "Paid-in customs clearance fee",
"清关费优惠金额": "Discount amount for customs clearance fee",
"已收清关费": "Customs clearance fee received",
"应收额外费用": "Additional fees receivable",
"实收额外费用": "Actual additional fees received",
"额外费用优惠金额": "Additional fee discount amount",
"已收额外费用": "Additional fees received",
"是否全部核销": "Whether to write off all",
"订单入仓时间": "Order warehousing time",
"订单装柜时间": "Order loading time",
"上传新附件": "Upload a new attachment",
"您最多上传10个附件": "You can upload up to 10 attachments",
"附件仅限doc/xls/ppt/txt/pdf/jpg/png/jpeg/docx/xlsx格式": "Attachment only in doc/xls/ppt/txt/pdf/jpg/png/jpeg/docx/xlsx format",
"上传成功": "Upload successful",
"确定删除附件吗?": "Are you sure to delete the attachment?",
"实收总额": "Total amount received",
"已核销总金额": "Total amount written off",
"是否重货": "Heavy cargo or not",
"原收费数据": "Original fee data",
"优惠重货标准": "Preferential Heavy Duty Standard",
"实际收费数据": "Actual Charge Data",
"入仓实测": "Actual measurement during warehousing",
"是否重货/泡货": "Whether it is heavy or not",
"应收数据": "Accounts receivable data",
"实收数据": "Paid-in data",
"应收单价": "Receivable unit price",
"优惠单价金额": "Discount unit price amount",
"应收运费&清关费": "Receivable freight and customs clearance fees",
"收款单优惠金额": "Discount amount on payment receipt",
"总优惠金额": "Total discount amount",
"实收运费&清关费": "Paid-up shipping and customs clearance fees",
"特需类型": "Special type",
"收款优惠金额": "Collection discount amount",
"实收美元金额": "Paid-in USD amount",
"优惠活动": "Promotional Activities",
"查看报关资料": "View customs declaration information",
"费用汇总": "Cost aggregation ",
"请再次确认国际运费是否由您支付?": "Please confirm the freight be paid by sender?",
"测量方数汇总": "Summary of measurement quantities",
"收费方数汇总": "Summary of charging parties",
"重量汇总": "Weight Summary",
"多个异常": "Multiple exceptions",
"目的港码头": "Destination Port Terminal",
"TIN NO./RC NO.": "TIN NO./RC NO",
"请输入TIN NO./RC NO.": "Please enter TIN NO./RC NO",
"CTN证书": "CTN certificate",
"COC证书": "COC certificate",
"SONCAP证书": "SONCAP Certificate ",
"码头": "wharf",
"保费币种": "Premium Currency",
"是否支持控货": "Does it support controlling goods",
"默认送货上门": "Default door-to-door delivery",
"广州市捷道国际货运代理有限公司": "E&C LOGISTICS LIMITED",
"报关退税,请备齐资料。":"Customs refund, prepare necessary documents.",
"订单号、唛头、提单号": "order number、marks、B/L NO",
"发货人名称、手机号": "sender name or mobile",
"收货人名称、手机号": "Receiver Name or Mobile",
"订单费用报表": "Order cost report",
"请先选择目的国": "select the destination country first",
"控货日志": "Control cargo log"
}
......@@ -20,6 +20,9 @@
<el-image style="width: 22px;height: 20px;cursor: pointer;" :src="unreadMessage" @click="notRead"></el-image>
</el-badge>
<el-badge :value="downloadCnt ? downloadCnt : '' " class="right-menu-item badge">
<el-image style="width: 22px;height: 20px;cursor: pointer;" :src="unDownload" @click="handleDownload"></el-image>
</el-badge>
<search id="header-search" class="right-menu-item" />
......@@ -80,17 +83,22 @@ import RuoYiDoc from '@/components/RuoYi/Doc'
import {getLocale, saveLocale} from "@/utils/db";
import unreadMessage from "@/assets/images/unread-message.png"
import helpIcon from "@/assets/images/help.png"
import unDownload from "@/assets/images/download.png"
import i18n from '@/i18n'
export default {
data() {
return {
unreadMessage,
helpIcon,
unDownload,
// locale: getLocale(),
// 枚举
// langDatas: LangEnum.LANG,
notReadTotal:0,//要去取VUEX里面的未读数据总数,我不会,登录之后要调得到当前人未读记录总数接口放到VUEX中
lang: i18n.locale, // 当前语言
// 未下载文件数量
notDownload: 0
}
},
created() {
......@@ -98,7 +106,7 @@ export default {
if(process.env.NODE_ENV != 'development'){
setInterval(() => {
this.updateMessage()
}, 10000)
}, 20000)
}
this.updateMessage()
......@@ -140,7 +148,10 @@ export default {
},
matterNum(){
return this.$store.state.user.matterNum
}
},
downloadCnt(){
return this.$store.state.user.download
}
},
watch:{
lang(val){
......@@ -150,9 +161,11 @@ export default {
}
},
methods: {
handleDownload(){
this.$router.push('/system/download')
},
updateMessage(){
this.$store.dispatch('getNotMessage');
this.$store.dispatch('getToDoList');
this.$store.dispatch('getUserBadge');
},
toggleSideBar() {
this.$store.dispatch('app/toggleSideBar')
......
import {login, logout, getInfo, socialLogin, socialLogin2} from '@/api/login'
import { getToken, setToken, removeToken } from '@/utils/auth'
import {getNotReadInternalMessageTotal,} from '@/api/system/internalMessage'
import {taskTodoCount} from "@/api/bpm/task";
import {taskTodoCount, userMark} from "@/api/bpm/task";
const user = {
state: {
......@@ -12,7 +12,8 @@ const user = {
roles: [],
permissions: [],
notMessage:0,
matterNum:0
matterNum:0,
download: 0
},
mutations: {
......@@ -39,6 +40,9 @@ const user = {
},
SET_TODO:(state, matterNum) => {
state.matterNum = matterNum;
},
SET_DOWNLOAD(state, cnt){
state.download = cnt;
}
},
......@@ -178,6 +182,19 @@ const user = {
reject(err)
})
})
},
// 获取用户角标,包括未读消息、待办事项,下载数据
getUserBadge({commit}){
return new Promise((resolve,reject) =>{
userMark().then(r => {
commit('SET_TODO',r.data.todoCount)
commit('SET_UNREAD',r.data.notReadInternalMessageCount)
commit('SET_DOWNLOAD',r.data.fileWaitDownCount + r.data.fileMakeQueuingCount + r.data.fileMakeProgressCount)
resolve()
}).catch(err => {
reject(err)
})
})
}
}
}
......
......@@ -123,6 +123,8 @@ export const DICT_TYPE = {
STOCK_UP_EXCEPTION_TYPE: 'stock_up_exception_type', // 备货异常类型,
ORDER_ITEM_PACK_STATUS: 'order_item_pack_status', // 空运备货打包状态
RECEIPT_FEE_TYPE:'receipt_fee_type',
DOWNLOAD_LOG_STATUS: 'download_log_status', // 下载日志状态
DOWNLOAD_TYPE: 'download_type', // 下载类型
//--------ecw---------
CUSTOMER_STATUS: 'customer_status',
CUSTOMER_SOURCE: 'customer_source',
......
......@@ -326,7 +326,7 @@ export default {
//上传
let formData = new FormData();
formData.append("file", file);
formData.append("path", this.uuid());
// formData.append("path", this.uuid());
uploadFile(formData).then(response => {
this.$set(this.form, 'bannerUrlWeb', response.data);
// this.form.img = response.data;
......@@ -342,7 +342,7 @@ export default {
//上传
let formData = new FormData();
formData.append("file", file);
formData.append("path", this.uuid());
// formData.append("path", this.uuid());
uploadFile(formData).then(response => {
this.$set(this.form, 'bannerUrlApp', response.data);
// this.form.img = response.data;
......
......@@ -4,12 +4,9 @@
multiple
filterable
clearable
remote
reserve-keyword
:disabled="disabled"
:placeholder="$t('请输入订单号')"
@focus="remoteMethod('')"
:remote-method="remoteMethod"
:loading="loading">
<el-option
v-for="(item) in list"
......@@ -20,14 +17,16 @@
</el-select>
</template>
<script>
import {getOrderPage, getOrderList} from '@/api/ecw/order'
import { boxGoodsDetail } from "@/api/ecw/boxSea";
export default {
props:{
value: [Array],
disabled: {
type: Boolean,
default: false
},
shipmentId: {
type: Number
}
},
data(){
......@@ -43,32 +42,20 @@ export default {
},
value(val){
this.valueSync = this.value
this.init(val)
}
},
created(){
this.remoteMethod()
this.valueSync = this.value
this.init(this.value)
},
methods:{
init(val){
if(val === null || val == undefined || val == '') return
let params = {
ids: val.toString()
}
getOrderList(params).then(res => {
this.list = res.data
})
},
remoteMethod(keyword){
let params = {
pageSize: 10,
}
params.orderNo = keyword
this.loading = true
getOrderPage(params)
.then(res => this.list = res.data.list)
.finally(() => this.loading = false)
remoteMethod(){
boxGoodsDetail({
shipmentId: this.shipmentId,
secId: 0
}).then((res) => {
this.list = res.data.sectionOrderList;
});
}
}
}
......
......@@ -95,7 +95,7 @@
<el-input v-model="cusDeclarationObj.overRemarks" style="width: 180px" />
</el-form-item>
<el-form-item :label="$t('超重订单')" prop="overOrders" v-show="cusDeclarationObj.overMachineStatus == 2&&cusDeclarationObj.weightMisreport == 4">
<ordersSelect v-model="cusDeclarationObj.overOrders" :placeholder="$t('请选择超重订单')" :allUsers="this.$attrs.allUsers" />
<ordersSelect v-model="cusDeclarationObj.overOrders" :placeholder="$t('请选择超重订单')" :shipmentId="shipmentObj.id" />
</el-form-item>
<!-- <el-form-item :label="$t('装箱单')">
......@@ -423,8 +423,11 @@ export default {
}审核吗?`)
)
.then(() => {
let parems = {... this.cusDeclarationObj}
parems.overDealUser = !Array.isArray(parems.overDealUser)?null:parems.overDealUser.join(',')
parems.overOrders = !Array.isArray(parems.overOrders)?null:parems.overOrders.join(',')
customsCreate({
...this.cusDeclarationObj,
...parems,
shipmentId: this.shipmentObj.id,
operateType,
}).then((res) => {
......
......@@ -158,7 +158,11 @@ export default {
// 出货信息
shipmentObj: this.$attrs.shipmentObj,
addMergedialogVisible: false,
addMergeForm: {},
addMergeForm: {
pkgLength: null,
pkgWidth: null,
pkgHight: null,
},
mergeTitle: '',
isMergeEdit: false,
pkgPageType: 1,
......
......@@ -46,6 +46,11 @@
<el-input v-model="queryParams.weightRatioMin" :placeholder="$t('请输入 小')" clearable />
</el-form-item>
<el-form-item prop="airShipment">
<el-checkbox v-model="queryParams.airShipment" :true-label="4" @change="changeAirShipment">{{$t('已完成备货')}}</el-checkbox>
<!-- <el-radio v-model="queryParams.airShipment" :label="4">{{$t('已完成备货')}}</el-radio> -->
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" @click="handleQuery('pre')">{{$t('搜索已分拣订单')}}</el-button>
<el-button type="primary" icon="el-icon-search" @click="handleQuery('toBePre')">{{$t('搜索待分拣订单')}}</el-button>
......@@ -293,9 +298,9 @@
<dict-tag :type="DICT_TYPE.ECW_PRODUCT_MATERIAL" :value="scope.row.material" />
</template>
</el-table-column>
<el-table-column :label="$t('特性')" align="center" prop="attrNameList" width="120">
<el-table-column :label="$t('特性')" align="center" prop="warehouseInAttrNameList" width="120">
<template slot-scope="scope">
{{scope.row.attrNameList?scope.row.attrNameList.toString():""}}
{{scope.row.warehouseInAttrNameList?scope.row.warehouseInAttrNameList.toString():""}}
</template>
</el-table-column>
<!-- <el-table-column :label="$t('操作')" align="center" class-name="small-padding fixed-width">
......@@ -506,6 +511,10 @@ export default {
checkboxSelect(selection, part) {
this.selectedRows[part.id] = selection;
},
/* 已备货 */
changeAirShipment() {
this.getPreLoad();
},
/* 查询已分拣 */
getSecGoods() {
this.preLoading = true;
......@@ -587,7 +596,7 @@ export default {
...this.operatorData,
applyReason: this.$t("分拣审核"),
approvalStatus: 0,
approvalType: 1, // 分拣
approvalType: 13, // 分拣
copyUserId: this.selectedUsers,
shipmentId: this.$attrs.shipmentObj.id,
}).then((res) => {
......
......@@ -92,9 +92,9 @@ export default {
this.$refs["reviewForm"].validate((valid) => {
if (valid) {
const { currNode, shipmentObj } = this.$attrs;
let approvalType = 4; // 预装反审
let approvalType = 14; // 预装反审
if (currNode.type === "cabinet") approvalType = 9; // 装柜反审
if (currNode.type === "unloading") approvalType = 7; // 卸柜反审核
if (currNode.type === "unloading") approvalType = 16; // 到仓反审核
approvalCreate({
shipmentId: shipmentObj.id,
......
......@@ -7,7 +7,7 @@
<el-form-item :label="$t('实际起飞时间')" prop="dtRealFlyTime">
<el-date-picker type="datetime" :placeholder="$t('请选择日期')" v-model="twoWayTakeoffObj.dtRealFlyTime" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker>
</el-form-item>
<el-form-item :label="$t('实际头程时间')" prop="dtRealHeadTime">
<el-form-item v-if="dtRealHeadTimeFlag" :label="$t('实际头程时间')" prop="dtRealHeadTime">
<el-date-picker type="datetime" :placeholder="$t('请选择日期')" v-model="twoWayTakeoffObj.dtRealHeadTime" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker>
</el-form-item>
</el-form>
......@@ -54,6 +54,7 @@ export default {
dialogVisible: false,
// 提示消息
showMsg: false,
dtRealHeadTimeFlag: false
};
},
created() {
......@@ -62,6 +63,9 @@ export default {
oldData = formatDateStr(oldData, ["dtRealFlyTime"], "YYYY-MM-DD HH:mm:ss");
oldData = formatDateStr(oldData, ["dtRealHeadTime"], "YYYY-MM-DD HH:mm:ss");
this.twoWayTakeoffObj = oldData;
if(this.$attrs.shipmentObj['bookAirInfo'].voyage && this.$attrs.shipmentObj['bookAirInfo'].voyage == 2){
this.dtRealHeadTimeFlag = true
}
},
watch: {
},
......
......@@ -267,7 +267,7 @@ export default {
approvalCreate({
shipmentId: this.$attrs.shipmentObj.id,
approvalStatus: 0,
approvalType: 3, // 卸柜
approvalType: 15, // 卸柜
copyUserId: this.selectedUsers,
}).then((res) => {
serviceMsg(res, this).then(() => {
......
......@@ -131,7 +131,7 @@ export default {
if(element.type == 'unloading'){
flag = false
}
if(element.type == 'clrDocument'){
if(element.type == 'cusClearance'){
flag = false
}
});
......
......@@ -6,9 +6,9 @@
<el-descriptions-item :label="$t('运输方式')">
<dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="boxBackVO.transportType" />
</el-descriptions-item>
<!-- <el-descriptions-item :label="$t('出货渠道')">
<el-descriptions-item :label="$t('出货渠道')">
{{getShipChannelName(boxBackVO.shippingChannelId)}}
</el-descriptions-item> -->
</el-descriptions-item>
<el-descriptions-item :label="$t('柜型')">
{{cabinetLabel}}
</el-descriptions-item>
......
......@@ -136,7 +136,8 @@ export default {
border-top: 1px solid gray;
font-size: 14px;
line-height: 25px;
grid-template-columns: repeat(2, 1fr);
word-wrap: break-word;
grid-template-columns: repeat(2, 100px);
> p:first-child {
border-right: 1px solid gray;
}
......
......@@ -113,6 +113,8 @@ export default {
this.$emit('change');
this.dialogTableVisible = false;
this.$message(this.$t('创建成功'));
this.reset()
this.$refs.form.resetFields()
}
})
}
......
......@@ -2,7 +2,7 @@
<div>
<div v-for="(item, index) in info.customerHandoverDetailDtoList">
<router-link :to="'/customer/query/' + item.customerId"><div style="color: blue"> 客户编号{{index + 1}}{{item.customerNumber}} 客户名称{{index + 1}}{{item.customerName}} </div></router-link>
<div>客户经理{{index + 1}}{{item.oldCustomerServiceName || '-'}} <span v-if="item.oldCustomerServiceDeptName">{{item.oldCustomerServiceDeptName}}</span></div>
<div>客户经理{{index + 1}}{{item.oldCustomerServiceName || '-'}} <span v-if="item.oldCustomerServiceDeptName">{{item.oldCustomerServiceDeptName}}</span></div>
</div>
<div>新客户经理:{{info.newCustomerServiceName || '-'}} <span v-if="info.newCustomerServiceDeptName">{{info.newCustomerServiceDeptName}}</span> </div>
<div>
......
......@@ -863,7 +863,7 @@ export default {
const form = {...this.form, type: this.form.type?.join(','), transportType: (this.form.transportType || [])?.join(','), taxRate: Number(this.form.taxRate)}
form.customerContacts = JSON.parse(JSON.stringify(this.form.customerContacts))
form.customerContacts.forEach(e =>{
e.email = [...e.email].join(',')
e.email = [...e.email].filter(i => i !== '').join(',')
})
// 检查路线是否启用了但是没选择目的仓
let errors = 0
......
......@@ -137,7 +137,7 @@
<template v-slot="{row}">
+{{row.defaultContactPhone}} <br/>
<contacts :id="row.id" >
<el-button v-if="$route.path === '/customer/customer'" type="text">更多</el-button>
<el-button type="text">更多</el-button>
</contacts>
</template>
</el-table-column>
......
......@@ -65,11 +65,19 @@ export default {
reason:this.textarea
}).then(r=>{
if(r.code === 0){
this.$emit('update:show',false)
this.$emit('update:customerIds',[])
this. service = '';
this.textarea = '';
this.$message.success(this.$t('用户批量转移成功!'))
if(r.data){
this.$message.warning(r.data)
this.$emit('update:show',false)
this.$emit('update:customerIds',[])
this. service = '';
this.textarea = '';
}else {
this.$emit('update:show',false)
this.$emit('update:customerIds',[])
this. service = '';
this.textarea = '';
this.$message.success(this.$t('用户批量转移成功!'))
}
}
})
},
......
......@@ -103,7 +103,12 @@
</el-table-column>
<el-table-column :label="$t('主联系人')" prop="defaultContactName"></el-table-column>
<el-table-column :label="$t('主联系方式')" prop="defaultContactPhone">
<template v-slot="{row}">{{row.defaultContactPhone}}</template>
<template v-slot="{row}">
+{{row.defaultContactPhone}} <br/>
<contacts :id="row.id" >
<el-button type="text">更多</el-button>
</contacts>
</template>
</el-table-column>
<el-table-column :label="$t('创建时间')" align="center" prop="createTime" width="180">
<template slot-scope="scope">
......@@ -364,6 +369,7 @@ import {handOverCustomer} from "../../../api/ecw/customer";
import {getCountryListAll} from "@/api/ecw/country";
import {getCreditPage} from "@/api/customer/credit";
import transferCustomer from "@/views/ecw/customer/transferCustomer.vue";
import Contacts from "@/views/ecw/customer/components/contacts.vue";
......@@ -381,6 +387,7 @@ export default {
},
},
components: {
Contacts,
transferCustomer
},
data() {
......
......@@ -115,7 +115,10 @@
<el-table-column :label="$t('主联系人')" prop="defaultContactName"></el-table-column>
<el-table-column :label="$t('主联系方式')" prop="defaultContactPhone">
<template v-slot="{row}">
+{{row.defaultContactPhone}}
+{{row.defaultContactPhone}} <br/>
<contacts :id="row.id" >
<el-button type="text">更多</el-button>
</contacts>
</template>
</el-table-column>
<el-table-column :label="$t('创建时间')" align="center" prop="createTime" width="180">
......@@ -175,12 +178,14 @@ import {getCountryListAll} from "@/api/ecw/country";
import {getCreditPage} from "@/api/customer/credit";
import transferCustomer from "@/views/ecw/customer/transferCustomer";
import Template from "@/views/cms/template/index.vue";
import Contacts from "@/views/ecw/customer/components/contacts.vue";
export default {
name: "EcwCustomertobeassignedIndex",
activated() {
this.getList()
},
components: {
Contacts,
Template,
upload,
transferCustomer
......
......@@ -18,7 +18,7 @@
:span="4"
>
<span style="margin-right:20px"><span style="color: #ff4949;">*</span>{{$t('客户')}}</span>
<customer-selector
<customer-selectorpay
ref="customer"
v-model="form.customerId"
@change="customerChange"
......@@ -693,6 +693,7 @@ import { listSimpleUsers } from "@/api/system/user";
import { DICT_TYPE } from "@/utils/dict";
import { getToken } from "@/utils/auth";
import CustomerSelector from "@/components/CustomerSelector";
import CustomerSelectorpay from "@/components/CustomerSelectorpay";
import { getBankAccountPage } from "@/api/ecw/bankAccount";
import { listSimpleDepts } from "@/api/system/dept";
import { getChannelList } from "@/api/ecw/channel";
......@@ -712,7 +713,7 @@ import WorkFlow from '@/components/WorkFlow/'
export default {
name: "EcwFinancialCreatcollection",
components: {
CustomerSelector,WorkFlow
CustomerSelector,WorkFlow,CustomerSelectorpay
},
data() {
return {
......@@ -1300,7 +1301,7 @@ export default {
this.flag = false
return
}
this.form.customerName = value.name
this.form.customerName = value.payerName?value.payerName:value.name
this.form.customerId && getCustomer(this.form.customerId).then(res => {
this.form = {
...this.form,
......
......@@ -12,7 +12,7 @@
<td style="font-weight: bold;width:12.5%">{{$t('部门')}}</td>
<td style="width:12.5%">{{form?form.departmentName:$t('')}}</td>
<td style="font-weight: bold;width:12.5%">{{$t('客户名称')}}</td>
<td colspan="2" style="width: 25%;">{{form?form.customerName:$t('')}}</td>
<td colspan="2" style="width: 25%;">{{form.customerName||$t('')}}</td>
<td style="font-weight: bold;width:12.5%">{{$t('收款日期')}}</td>
<td colspan="2" style="width: 25%;">{{form&&form.payedAt?parseTime(form.payedAt):$t('')}}</td>
</tr>
......@@ -141,9 +141,9 @@
that.deptArr.push(item)
}else{
that.deptData.push(item)
}
that.deptData.push(item)
})
that.deptData.forEach((value)=>{
......
......@@ -7,7 +7,7 @@
<el-descriptions-item :label="$t('状态')">
<dict-tag :type="DICT_TYPE.ECW_RECEIPT_STATE" :value="form.state"/>
</el-descriptions-item>
<el-descriptions-item :label="$t('客户')">{{ form.customerName }}</el-descriptions-item>
<el-descriptions-item :label="$t('客户')">{{form.customerName }}</el-descriptions-item>
<el-descriptions-item :label="$t('部门')">{{ form.departmentName }}</el-descriptions-item>
<el-descriptions-item :label="$t('业务员')">{{ form.salesmanName }}</el-descriptions-item>
<!-- <el-descriptions-item :label="$t('手续费(RMB)')">{{ form.feeRate }}</el-descriptions-item> -->
......@@ -725,9 +725,9 @@ export default {
this.id = this.$route.query.id;
await getReceiptInfoByIds({ id: this.id }).then(res => {
this.form = res.data
getCustomer(this.form.customerId).then(res => {
this.form.customerName = res?.data?.name
})
// getCustomer(this.form.customerId).then(res => {
// this.form.customerName = res?.data?.name
// })
var dept = this.deptData.filter((itt) => itt.id == res.data.departmentId);
// console.log(dept)
if(dept.length>0){
......
......@@ -202,6 +202,11 @@
</el-table-column>
<el-table-column :label="$t('发货人')" align="center" prop="consignorName" />
<el-table-column :label="$t('收货人')" align="center" prop="consigneeName" />
<el-table-column :label="$t('付款方')" align="center" prop="weight" >
<template slot-scope="scope">
{{ scope.row.paymentUser==1?$t('发货人'):$t('收货人')}}
</template>
</el-table-column>
<el-table-column :label="$t('订单状态')" align="center" prop="status">
<template slot-scope="scope">
<dict-tag :type="DICT_TYPE.ORDER_STATUS" :value="scope.row.status" />
......
......@@ -104,7 +104,10 @@
<el-table-column :label="$t('主联系人')" prop="defaultContactName"></el-table-column>
<el-table-column :label="$t('主联系方式')" prop="defaultContactPhone">
<template v-slot="{row}">
+{{row.defaultContactPhone}}
+{{row.defaultContactPhone}} <br/>
<contacts :id="row.id" >
<el-button type="text">更多</el-button>
</contacts>
</template>
</el-table-column>
<el-table-column :label="$t('创建时间')" align="center" prop="createTime" width="180">
......@@ -161,9 +164,12 @@ import {listServiceUser} from "@/api/system/user";
import {getCountryListAll} from "@/api/ecw/country";
import {getCreditPage} from "@/api/customer/credit";
import transferCustomer from "@/views/ecw/customer/transferCustomer";
import Template from "@/views/cms/template/index.vue";
import Contacts from "@/views/ecw/customer/components/contacts.vue";
export default {
name: "EcwMycustomerserviceIndex",
components: {
Contacts, Template,
upload,
customerFollowList,
customerComplaints,
......
......@@ -108,8 +108,11 @@
</el-table-column>
<el-table-column :label="$t('主联系人')" prop="defaultContactName"></el-table-column>
<el-table-column :label="$t('主联系方式')" prop="defaultContactPhone">
<template v-slot="{row}" >
+{{row.defaultContactPhone}}
<template v-slot="{row}">
+{{row.defaultContactPhone}} <br/>
<contacts :id="row.id" >
<el-button type="text">更多</el-button>
</contacts>
</template>
</el-table-column>
<el-table-column :label="$t('创建时间')" align="center" prop="createTime" width="180">
......@@ -173,12 +176,15 @@ import upload from '@/components/ImageUpload'
import {listServiceUser} from "@/api/system/user";
import {getCountryListAll} from "@/api/ecw/country";
import {getCreditPage} from "@/api/customer/credit";
import Template from "@/views/cms/template/index.vue";
import Contacts from "@/views/ecw/customer/components/contacts.vue";
export default {
name: "EcwOceancustomerIndex",
activated() {
this.getList()
},
components: {
Contacts, Template,
upload
},
data() {
......
......@@ -331,12 +331,12 @@
</el-descriptions>
<el-descriptions v-if="[3,4].indexOf(list.transportId) > -1">
<el-descriptions-item :label="$t('航空公司')">
{{getSupplierData(list.transportVO.airlineCompany)||'/'}}
{{airlineCompany ? $l(airlineCompany, 'company') : '/'}}
</el-descriptions-item>
</el-descriptions>
<el-descriptions v-if="list.transportId==2">
<el-descriptions-item :label="$t('船公司')">
{{getSupplierData(list.transportVO.shippingCompany)||'/'}}
{{shippingCompany ? $l(shippingCompany, 'company') : '/'}}
</el-descriptions-item>
</el-descriptions>
<el-descriptions v-if="[2,3,4].indexOf(list.transportId) > -1">
......@@ -419,6 +419,10 @@
customerSource: getDictDatas(DICT_TYPE.CUSTOMER_SOURCE),
couponAvailableGroupDtoList: [], // 可用优惠
couponTotalAmountList: [], // 优惠总额
// 航空公司
airlineCompany: null,
// 船公司
shippingCompany: null,
};
},
computed:{
......@@ -611,17 +615,6 @@
that.orderData = response.data;
});
},
getSupplierData(id){
var labelname = ''
if(id){
getSupplier(id).then(res=>{
if(res.data){
labelname = res.data.companyZh
}
})
}
return labelname
},
getProductListWithDefaultValue(){
let arr = []
this.list.offerProdRespVOList.forEach(item => {
......@@ -705,6 +698,21 @@
that.loading = false;
that.getOpenedRouterList()
if(this.list.transportVO.airlineCompany){
getSupplier(this.list.transportVO.airlineCompany).then(res=>{
if(res.data){
this.airlineCompany = res.data.companyZh
}
})
}
if(this.list.transportVO.shippingCompany){
getSupplier(this.list.transportVO.shippingCompany).then(res=>{
if(res.data){
this.shippingCompany = res.data.companyZh
}
})
}
});
},
getCity(id){
......
......@@ -310,7 +310,7 @@
<el-descriptions :column="5" border>
<el-descriptions-item :label="$t('保价费')">
{{fee.insuranceFee || 0}} {{$t('美元')}}
{{fee.insuranceFee || 0}} {{ selectedRouter ? currencyMap[selectedRouter.currencyUnit || 1] : '' }}
</el-descriptions-item>
<el-descriptions-item :label="$t('总运费')">
<template v-for="item in freightFeeList">
......@@ -730,8 +730,6 @@ export default {
// 预计费用(原价 - 优惠金额 + 其他费用 + 保价费)
estimatedCosts(){
let arr = []
let withInsuranceFee = false
let withOtherFee = false
this.originalFeeList.forEach(item => {
let it = {
currencyId: item.currencyId,
......@@ -741,50 +739,31 @@ export default {
if(coupon){
it.amount = it.amount.minus(coupon.reduceTotalAmount)
}
if(this.form.otherFee && this.form.otherFeeCurrencyId == item.currencyId){
it.amount = it.amount.plus(this.form.otherFee)
withOtherFee = true
}
// 保价费(美元)
if(item.currencyId == 1 && this.fee && this.fee.insuranceFee){
it.amount = it.amount.plus(this.fee.insuranceFee)
withInsuranceFee = true
}
arr.push(it)
})
// 没有累加保价费(没有美元计价)但是有保价费则需要加上去
if(!withInsuranceFee && this.fee && this.fee.insuranceFee){
let fee = Decimal(this.fee.insuranceFee)
// 如果没有美元费用,且保价费和其他费用币种相同(都是美元)
if(this.form.otherFeeCurrencyId == 1 && this.form.otherFee){
withOtherFee = true
fee = fee.plus(new Decimal(this.form.otherFee || 0))
}
// 累加保价费
const insuranceFeeIndex = arr.findIndex(item => item.currencyId == this.insuranceFeeCurrency)
if(insuranceFeeIndex > -1){
arr[insuranceFeeIndex].amount = arr[insuranceFeeIndex].amount.plus(this.fee.insuranceFee || 0)
}else{
arr.push({
currencyId: 1,
amount: fee
currencyId: this.insuranceFeeCurrency,
amount: Decimal(this.fee.insuranceFee || 0)
})
}
// 如果没有累加其他费用,则另外增加货币
if(!withOtherFee && this.form.otherFee){
let fee = {
// 累加其他费用
const otherFeeIndex = arr.findIndex(item => item.currencyId == this.form.otherFeeCurrencyId)
if(otherFeeIndex > -1){
arr[otherFeeIndex].amount = arr[otherFeeIndex].amount.plus(this.form.otherFee || 0)
}else{
arr.push({
currencyId: this.form.otherFeeCurrencyId,
amount: Decimal(this.form.otherFee)
}
// 如果保价费跟其他费用是同一种货币(都是美元)
if(!withInsuranceFee && this.fee && this.fee.insuranceFee && this.form.otherFeeCurrencyId == 1){
fee.amount = fee.amount.plus(this.fee.insuranceFee)
}
arr.push(fee)
amount: Decimal(this.form.otherFee || 0)
})
}
return arr
},
// 路线开通的服务
......@@ -792,6 +771,10 @@ export default {
if(!this.selectedRouter || !this.selectedRouter.otherService) return []
return this.selectedRouter.otherService.split(',')
},
// 保价费单位(路线里设置,默认美元)
insuranceFeeCurrency() {
return this.selectedRouter?.currencyUnit || 1;
},
// 是否可以添加商品
canAddProduct(){
if(!this.form.lineId){
......
......@@ -479,6 +479,7 @@ export default {
let total = {}
arr.forEach(item => {
const currency = item[currencyField]
if(!currency) return
if(!total[currency]){
total[currency] = new Decimal(0)
}
......
......@@ -26,11 +26,9 @@
style="width: 80mm; margin: 0 auto;" :id="'order-print-tag' + item.num"
:style="{display: index == 0 ? 'block':'none' }"
:key="item.num">
<div style="float: left; width: 28mm; border-bottom: 0.2mm solid #333; border-right: 0.2mm solid #333; " >
<img :src="item.url" :alt="item.url" style="width: 26mm" />
<p style=" text-align: center; height: 5mm; font-size: 3mm; -webkit-margin-before: 0em; -webkit-margin-after: 0em; margin-top: 0mm; " >
{{item.tag}}
</p>
<div style="float: left; text-align: center; width: 28mm; border-bottom: 0.2mm solid #333; border-right: 0.2mm solid #333; " >
<img class="qrcode" src="" :alt="item.url" style="width: 26mm" />
<p class="tag" style=" text-align: center; height: 5mm; font-size: 3mm; -webkit-margin-before: 0em; -webkit-margin-after: 0em; margin-top: 0mm; " >{{item.tag}}</p>
<p style="margin-top: -1mm; text-align: center">
<span style="text-align: center; font-weight: 600; font-size: 6mm" >{{item.num}}</span>
</p>
......@@ -73,6 +71,7 @@
import {printTag} from '@/api/ecw/order'
import {parseTime} from '@/utils/ruoyi'
import lodop from '@/utils/lodop'
import QRCode from "qrcode";
export default {
filters: {parseTime},
......@@ -136,12 +135,18 @@ export default {
if(!this.printTags.length){
return this.$message.error(this.$t('指定区域无可打印标签'))
}
this.$refs["form"].validate(valid => {
this.$refs["form"].validate((valid) => {
if (!valid) {
return;
}
this.currentNo = this.form.start
this.step = 'preview'
this.$nextTick(async () => {
const first = document.getElementsByClassName('order-print-tag-item')[0]
const tag = first.getElementsByClassName('tag')[0].innerText
const qrcode = await QRCode.toDataURL(tag, {margin: 1})
first.getElementsByClassName('qrcode')[0].setAttribute("src", qrcode)
})
})
},
print(){
......@@ -152,18 +157,22 @@ export default {
if(items.length > 1000){
this.$alert(this.$t('标签超过1000需要耐心等候标签生成,请稍候'))
}
lodop().then(LODOP => {
lodop().then(async(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,"打印页面部分内容");
LODOP.SET_PRINT_PAGESIZE(0, 800, 600, "TAG");
for(let i in items){
LODOP.ADD_PRINT_HTM("2mm",0,800,600, items[i].innerHTML);
let i = 0;
for(let item of items){
const tag = item.getElementsByClassName('tag')[0].innerText
const qrcode = await QRCode.toDataURL(tag, {margin: 1})
item.getElementsByClassName('qrcode')[0].setAttribute("src", qrcode)
LODOP.ADD_PRINT_HTM("2mm",0,800,600, item.innerHTML);
if(i < items.length){
LODOP.NewPage()
}
i++
}
LODOP.PREVIEW();
......
......@@ -208,6 +208,9 @@ export default {
}
},
computed:{
isChinese(){
return this.$i18n.locale === 'zh_CN'
},
currencyMap(){
return arrryToKeyedObjectBy(this.currencyList, 'id')
},
......@@ -249,7 +252,7 @@ export default {
return ''
},
selectChannel(val){
if(this.channelList.length > 0 && !!val) return this.channelList.find(e => e.channelId === val).nameEn
if(this.channelList.length > 0 && !!val) return this.channelList.find(e => e.channelId === val)[this.isChinese ? 'nameZh' : 'nameEn']
return ''
},
getDetails(){
......
......@@ -108,6 +108,12 @@
<el-descriptions-item :label="$t('单证报关')">
<dict-tag :type="DICT_TYPE.ECW_CUSTOMS_TYPE" :value="order.customsType" />
</el-descriptions-item>
<el-descriptions-item :label="$t('关联报价单')">
<router-link v-if="offerData" :to="{path: '/offer/detail',query: {offerId: offerData.offerId}}" class="link-type">
<span>{{ offerData.number }}</span>
</router-link>
<span v-else>/</span>
</el-descriptions-item>
</el-descriptions>
<el-descriptions class="mr-10" border :column="2" :class="showMore?'showInfo':'hiddenInfo'" :labelStyle="{width:'110px'}" :contentStyle="{width:'150px'}">
<el-descriptions-item :label="$t('出单方式')">
......@@ -300,7 +306,7 @@
<dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="order.transportId" />
</el-table-column>
<el-table-column :label="$t('出货渠道')">
{{channelName}}
{{order.channelName}}
</el-table-column>
<el-table-column :label="$t('始发地')" prop="orderNo">
{{$l(departure, 'title') || '-'}}
......@@ -479,6 +485,7 @@
<script>
import {getOrder, operateLogPage} from '@/api/ecw/order'
import {getOfferCheck} from '@/api/ecw/offer'
import { getDictDatas, DICT_TYPE, getDictData } from '@/utils/dict';
import PrintWarehouseReceipt from './components/PrintWarehouseReceipt'
import PrintLadingBill from './components/PrintLadingBill'
......@@ -553,6 +560,7 @@ export default {
packAfterData:null,//显示打包历史详情
showDeclaration:false, //显示报关资料
showFeeSummary: false, // 是否显示费用汇总
offerData:'' //关联报价单
}
},
computed:{
......@@ -614,6 +622,7 @@ export default {
if (this.$route.query.orderId) {
this.orderId = this.$route.query.orderId
this.getOrder();
this.getOfferNumber()
}
getCurrencyList().then(res => this.currencyList = res.data)
......@@ -811,6 +820,12 @@ export default {
//查看打包历史详情
showPackDetail(packAfterData){
this.packAfterData = packAfterData
},
getOfferNumber() {
const that = this
getOfferCheck({ orderId: that.orderId }).then(response => {
that.offerData = response.data
})
}
}
};
......
......@@ -448,6 +448,25 @@
</el-table>
</el-form-item>
</div>
<el-form-item :label="$t('关联报价单')" prop="offerId">
<span v-if="offerIdNochange&&offerNumber">{{offerNumber}}</span>
<el-select
v-else
v-model="form.offerId"
filterable
clearable
reserve-keyword
:disabled = "offerIdNochange"
:placeholder="$t('请选择')"
>
<el-option
v-for="(item, index) in offerData"
:key="index"
:label="item.number"
:value="item.offerId"
/>
</el-select>
</el-form-item>
</el-card>
<el-card class="mt-10" v-if="transport">
......@@ -595,6 +614,7 @@ import Decimal from 'decimal.js'
import WorkFlow from '@/components/WorkFlow'
import { getCustomer } from "@/api/ecw/customer";
import {debounce} from "@/utils";
import { getOfferSelect, getOfferCheck } from "@/api/ecw/offer"
// 缓存默认的表单数据
let makeDefaultFormData = () => {
......@@ -608,7 +628,7 @@ let makeDefaultFormData = () => {
externalWarehouseDtoList:[],
orderItemVOList:[],
drawee: 2,
harvestMethod: "1"
harvestMethod: "1",
}
}
window.Decimal = Decimal
......@@ -662,7 +682,10 @@ export default {
showWorkFlow: false, // 是否显示工作流表单
calculating: false, // 是否正在计算费用,防止频繁重新请求
initing: true, // 初始化中,
updateChannel: false // 是否更新渠道
updateChannel: false, // 是否更新渠道
offerData: [],// 关联报价单
offerIdNochange:false,
offerNumber:null
};
},
computed:{
......@@ -866,8 +889,8 @@ export default {
this.$set(this.form, 'channelId', null)
}
if(transportId == 3){
console.log('form.transportId', this.form.transportId, this.initing)
if(!this.initing && transportId == 3){
// 如果是专线空运默认目的港清关选择我司
this.$set(this.form, 'portDestCustomsClear', 1)
}
......@@ -877,6 +900,18 @@ export default {
'form.channelId'(){
this.calculationPrice()
},
'form.consigneeCountryCode'(){
if(this.form.lineId) this.getOfferData()
},
'form.consignorCountryCode'(){
if(this.form.lineId) this.getOfferData()
},
'form.consigneePhone'(){
if(this.form.lineId) this.getOfferData()
},
'form.consignorPhone'(){
if(this.form.lineId) this.getOfferData()
},
'form.lineId'(lineId){
let router = this.routerList.find(item => item.id == lineId)
if(!router){
......@@ -897,7 +932,7 @@ export default {
this.$set(this.form, 'isCargoControl', false)
}
})
this.getOfferData()
},
/* 'form.packageTypeArr'(val){
console.log('packageType', val, val.length)
......@@ -971,6 +1006,7 @@ export default {
},
activated(){
if(this.$route.query.id != this.form.id){
console.log("activated 加载订单数据")
this.getOrder()
}
let transportType = undefined
......@@ -985,7 +1021,6 @@ export default {
this.updateChannel = this.$route.query.updateChannel == 1
},
async created() {
this.productAttrList = (await getProductAttrList()).data
this.channelList = (await getChannelList()).data
this.tradeCityList = (await getTradeCityList()).data
......@@ -1007,6 +1042,7 @@ export default {
this.updateChannel = true
}
if(this.$route.query.id){
console.log('created 加载订单数据')
this.getOrder()
}else{
this.addProduct()
......@@ -1021,10 +1057,14 @@ export default {
// console.warn('onTableMounted', e)
},
getOrder(){
this.initing = true
if(this.form.orderId == this.$route.query.id){
console.log('加载中或者已加载此订单数据,不重复加载', this.initing, this.form.orderId, this.$route.query.id)
return
}
this.initing = true
getUpdateInfo(this.$route.query.id).then(res => {
this.form = Object.assign({}, {...res.data}, {orderItemVOList: []})
this.getOfferData()
/* this.form.orderItemVOList = []; */
this.form.type = this.form.type ? this.form.type.split(',').filter(item => item != '') : []
......@@ -1075,12 +1115,13 @@ export default {
// 如果已完成入仓,则需要监听必填内容,发生更改后需要填写审批表单
this.$nextTick(() => {
console.log('nextTick 订单渲染完成')
console.log('nextTick 订单渲染完成')
res.data.orderItemVOList.forEach(item => {
item.prodAttrArr = item.prodAttrIds.split(',').filter(item => item != '').map(attrId => +attrId)
item.prodAttrArr = item.prodAttrIds?.split(',').filter(item => item != '').map(attrId => +attrId) || []
this.form.orderItemVOList.push({...item})
})
// 已入仓后,必填字段修改则需要显示审批流
if(this.inWarehouse){
Object.keys(this.rules).forEach(field => {
console.log("watch", field)
......@@ -1089,6 +1130,18 @@ export default {
})
})
}
// 在初始化结束后transportId还会发生一次变化导致目的港清关被重置,所以需要延迟一下。暂不清楚原因
setTimeout(() =>{
console.log('transportId', this.form.transportId)
console.log('portDestCustomsClear', this.form.portDestCustomsClear, res.data.portDestCustomsClear)
if(res.data.portDestCustomsClear){
this.$set(this.form, 'portDestCustomsClear', res.data.portDestCustomsClear)
}
if(res.data.deliveryWay){
this.$set(this.form, 'deliveryWay', res.data.deliveryWay)
}
}, 100)
this.initing = false
})
......@@ -1114,6 +1167,7 @@ export default {
this.$set(this.form, this.contactChooseType + 'Phone', contact.phoneNew)
this.contactChooseType = null
this.quickCreateType = null
if(this.form.lineId) this.getOfferData()
},
upload(e){
console.log({upload: e})
......@@ -1370,7 +1424,49 @@ export default {
arr.push(tmp)
})
return arr
}
},
// 关联报价单
getOfferData() {
const that = this
const offParams = {}
if (that.form.lineId) {
offParams.lineId = that.form.lineId
}
if (that.form.channelId) {
offParams.channelId = that.form.channelId
}
if (that.form.consigneeContactsId) {
offParams.consigneeId = that.form.consigneeContactsId
} else {
offParams.consigneeCode = that.form.consigneeCountryCode
offParams.consigneePhone = that.form.consigneePhone
}
if (that.form.consignorContactsId) {
offParams.consignorId = that.form.consignorContactsId
} else {
offParams.consignorCode = that.form.consignorCountryCode
offParams.consignorPhone = that.form.consignorPhone
}
getOfferSelect(offParams).then((res) => {
that.offerData = res.data || []
if (!that.form.offerId && that.form.orderId) {
that.getOfferNumber(that.form.orderId)
}
})
},
getOfferNumber(id) {
const that = this
that.offerIdNochange = false
getOfferCheck({ orderId: id }).then(response => {
if(!response.data) return
if(that.offerData.length==0){
that.offerData.push(response.data)
}
that.offerIdNochange = true
that.offerNumber = response.data.number
that.$set(that.form, 'offerId', response.data.offerId)
})
},
}
};
</script>
......
......@@ -86,6 +86,12 @@
</template>
</el-input>
</el-form-item>
<el-form-item :label="$t('品名')+':'">
<div style="display: flex;width: 100%;">
<dict-selector :type="DICT_TYPE.EXCEPTION_SELECT_FILED" style="width: 90px;" v-model="queryParams.goodsNameKey" />
<product-selector v-model="queryParams.goodsName" style="flex:1;" :clearable="true" @keyup.enter.native="handleQuery" />
</div>
</el-form-item>
</el-row>
<el-row>
<el-form-item :label="$t('备案')+':'">
......@@ -176,9 +182,9 @@
</el-table-column>
<el-table-column :label="$t('总箱数/入仓箱数')" align="center" >
<template slot-scope="scope">
<p v-if="scope.row.orderExceptionType!='order_doc_exception'||scope.row.customsType==1">{{scope.row.totalBox+$t('箱/')+scope.row.warehousingBox+$t('')}}</p>
<p v-if="scope.row.customsType==1">{{scope.row.totalBox+$t('箱/')+scope.row.warehousingBox+$t('')}}</p>
<p style="color:#ff4949" v-else>{{scope.row.totalBox+$t('箱/')+scope.row.warehousingBox+$t('')}}</p>
<dict-tag style="color:#ff4949" v-if="scope.row.orderExceptionType=='order_doc_exception'&&scope.row.customsType!=1" :type="DICT_TYPE.ECW_CUSTOMS_TYPE" :value="scope.row.customsType"></dict-tag>
<dict-tag style="color:#ff4949" v-if="scope.row.customsType!=1" :type="DICT_TYPE.ECW_CUSTOMS_TYPE" :value="scope.row.customsType"></dict-tag>
</template>
</el-table-column>
<el-table-column :label="$t('体积/重量')" align="center">
......@@ -295,9 +301,9 @@ export default {
queryParams: {
page: 1,
rows: 10,
goodsNameKey:'eq',
orderNoKey:'eq',
marksKey:'eq'
marksKey:'eq',
goodsNameKey:'eq'
},
tradeCityList:[],
warehouseList:[],
......@@ -357,9 +363,9 @@ export default {
this.queryParams = {
page: 1,
rows: 10,
goodsNameKey:'eq',
orderNoKey:'eq',
marksKey:'eq'
marksKey:'eq',
goodsNameKey:'eq'
}
this.getList()
},
......
......@@ -18,29 +18,29 @@
<el-table-column :label="$t('序号')" type="index"></el-table-column>
<el-table-column :label="$t('费用类型')">
<template v-slot:default = "scope">
<dict-selector :disabled="!!processInstanceId" :type="DICT_TYPE.FEE_TYPE" v-model="scope.row.feeType" />
<dict-selector :disabled="!!scope.row.status" :type="DICT_TYPE.FEE_TYPE" v-model="scope.row.feeType" />
</template>
</el-table-column>
<el-table-column :label="$t('金额')">
<template v-slot:default = 'scope'>
<el-input :disabled="!!processInstanceId" v-model.number="scope.row.applicationFee" ></el-input>
<el-input :disabled="!!scope.row.status" v-model.number="scope.row.applicationFee" ></el-input>
</template>
</el-table-column>
<el-table-column :label="$t('货币类型')">
<template v-slot:default = 'scope'>
<el-select :disabled="!!processInstanceId" v-model="scope.row.applicationFeeCurrency">
<el-select :disabled="!!scope.row.status" v-model="scope.row.applicationFeeCurrency">
<el-option v-for="item in JSON.parse(currencys)" :key="item.id" :label="item.titleZh" :value="item.id" />
</el-select>
</template>
</el-table-column>
<el-table-column :label="$t('付款类型')">
<template v-slot = {row}>
<dict-selector :disabled="!!processInstanceId" :type="DICT_TYPE.PAYMENT_TYPE" v-model="row.payType" />
<dict-selector :disabled="row.status" :type="DICT_TYPE.PAYMENT_TYPE" v-model="row.payType" />
</template>
</el-table-column>
<el-table-column :label="$t('备注')">
<template v-slot:default="scope">
<el-input :disabled="!!processInstanceId" v-model="scope.row.remarks" type="textarea"></el-input>
<el-input :disabled="!!scope.row.status" v-model="scope.row.remarks" type="textarea"></el-input>
</template>
</el-table-column>
<el-table-column :label="$t('确认收款')">
......@@ -58,7 +58,7 @@
<!--<el-button type="text" v-if="scope.row.status !== 0&&scope.row.status !== 1">{{STATUS[scope.row.status]}}</el-button>
<el-button type="text" v-if="scope.row.status == 1" @click="examineFn">{{$t('审核中')}}</el-button>
<el-button type="text" v-if="scope.row.status === 2" @click="modify(scope.row)">{{$t('修改')}}</el-button>-->
<el-button type="text" :disabled="!!processInstanceId" @click="del(scope.$index)">删除</el-button>
<el-button type="text" :disabled="!!scope.row.status" @click="del(scope.$index)">删除</el-button>
</template>
</el-table-column>
</el-table>
......@@ -89,11 +89,10 @@ import {
qetBatchFeeByBusinessId, getBatchFeeByBusinessId
} from "@/api/ecw/order";
import { getDictDatas, DICT_TYPE } from '@/utils/dict';
import Template from "@/views/cms/template";
import workFlow from "@/components/WorkFlow";
export default {
name: "feeApplication",
components: {Template,workFlow},
components: {workFlow},
props:{
orderId:[Number, String],
dialogVisible:{
......@@ -127,6 +126,11 @@ export default {
this.orderDetails = res.data
})
// 查询历史申请
feeApplicationListByOrderId({orderId: this.orderId}).then(res => {
this.list = res.data
})
// 查询是否有审核中的费用申请
getFeeApplicationApproveByOrderId(this.orderId).then(res => {
if(res.data.formId){
......@@ -157,7 +161,7 @@ export default {
},
submit(){
feeApplicationCreateBatch( {
orderFeeApplicationCreateReqVOList: this.list,
orderFeeApplicationCreateReqVOList: this.list.filter(item => !item.status),
copyUserId:this.selectedUsers,
orderId: this.orderId
}).then(r=>{
......
......@@ -792,7 +792,8 @@ export default {
if(!fileName){
fileName = this.$t('订单')
}
this.$download.excel(res, fileName + '.xls');
this.$message.success(this.$t('已加入导出队列,请稍后在下载日志中下载'))
// this.$download.excel(res, fileName + '.xls');
}).finally(() => {
this.exportLoading = false
})
......
......@@ -399,8 +399,8 @@ export default {
},
// 批量可出
batchCanShipment(){
let orderNos = this.multipleSelection.map(item => item.orderNo).join(',')
this.$confirm(this.$t(`您确定要将订单{orderNos}设置为可出吗?`, {orderNos})).then(() =>{
let orderNo = this.multipleSelection.map(item => item.orderNo).join(',')
this.$confirm(this.$t(`您确定要将订单{orderNo}设置为可出吗?`, {orderNo})).then(() =>{
return batchCanShipment(this.ids)
}).then(res =>{
this.$message.success(res.message || this.$t('操作成功'))
......@@ -413,6 +413,7 @@ export default {
return this.$message.error("暂无选择订单")
}
this.showBatchException = true
this.batchExceptionForm.exceptionUrls = []
},
handleBatchException(){
// 以下代码是copilot生成,暂无接口,回头在改
......@@ -452,7 +453,7 @@ export default {
this.exporting = true
const exportParams = Array.isArray(params) ? {orderIdList: params} : {...params}
exportWaitingShipment(exportParams).then(res => {
this.$download.excel(res, this.$t('待出订单') + '.xls');
this.$message.success(this.$t('已加入导出队列,请稍后在下载日志中下载'))
}).finally(() => {
this.exporting = false
})
......
......@@ -22,7 +22,7 @@
<dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="orderData.transportId" />
</el-descriptions-item>
<el-descriptions-item :label="$t('出货渠道')">
{{orderData.channelId?getChannelName(orderData.channelId):'/'}}
{{orderData.channelName||'/'}}
</el-descriptions-item>
<el-descriptions-item :label="$t('始发地')" >
{{orderData.logisticsInfoDto?orderData.logisticsInfoDto.startTitleZh:$t('')}}
......
......@@ -90,7 +90,7 @@ export default {
return {
4: this.$t('重货标准优惠申请'),
5: this.$t('泡货标准优惠申请'),
29: this.$t('泡货优惠申请')
29: this.$t('申请泡重优惠')
}[this.applyType]
// return this.applyType == 4 ? this.$t('重货优惠申请') : this.$t('泡货优惠申请')
},
......
......@@ -113,9 +113,9 @@
1.海运整柜、海运拼柜显示重货优惠 1,2
2.空运专线、海空联运显示泡货优惠 3,4
-->
<el-button v-hasPermi="['ecw:order:heavy']" type="primary" @click="showPreferentialType=4" v-if="order.transportId === 1 || order.transportId === 2">{{$t('申请重货优惠')}}</el-button>
<el-button v-hasPermi="['ecw:order:heavy']" type="primary" @click="showPreferentialType=4" v-if="order.transportId === 1 || order.transportId === 2">{{$t('申请重货标准优惠')}}</el-button>
<template v-else>
<el-button v-hasPermi="['ecw:order:bulky2']" type="primary" @click="showPreferentialType=29">{{$t('申请泡优惠')}}</el-button>
<el-button v-hasPermi="['ecw:order:bulky2']" type="primary" @click="showPreferentialType=29">{{$t('申请泡优惠')}}</el-button>
<el-button v-hasPermi="['ecw:order:bulky']" type="primary" @click="showPreferentialType=5">{{$t('申请泡货标准优惠')}}</el-button>
</template>
<el-button type="primary" @click="$tab.closePage()">{{$t('关闭窗口')}}</el-button>
......
......@@ -349,7 +349,8 @@ export default {
exportXls(params){
this.exporting = true
exportCanShipment(params).then(res => {
this.$download.excel(res, this.$t('备货订单') + '.xls');
// this.$download.excel(res, this.$t('备货订单') + '.xls');
this.$message.success(this.$t('已加入导出队列,请稍后在下载日志中下载'))
}).finally(() => {
this.exporting = false
})
......
......@@ -682,7 +682,7 @@ export default {
//上传
let formData = new FormData();
formData.append("file", file);
formData.append("path", this.uuid());
// formData.append("path", this.uuid());
uploadFile(formData).then(response => {
this.$set(this.form, 'imgs', response.data);
// this.form.img = response.data;
......
......@@ -30,40 +30,41 @@
disabled/>
</el-form-item>-->
<!--多条路线批量修改-->
<el-form-item :label="$t('路线')" prop="lineChannelList" v-if="lineList.length">
<template v-if="lineList.length == 1">
<el-input
v-for="(item, index) in lineList"
:key="index"
:value="!item.warehouseLineDO ? $t('数据异常,缺少warehouseLineDO字段') : $t('【{transport}】从【{from}】发往【{to}】', {
transport: getDictDataLabel(DICT_TYPE.ECW_TRANSPORT_TYPE, item.warehouseLineDO.transportType),
from: $l(item.warehouseLineDO, 'startTitle'),
to: $l(item.warehouseLineDO, 'destTitle')
})"
disabled />
</template>
<el-checkbox-group v-else v-model="checkList">
<el-checkbox
v-for="item in lineList"
:key="item.id"
:label="item.id"
:disabled="!item.warehouseLineDO"
style="display:block"
>
{{
!item.warehouseLineDO ? $t('数据异常,缺少warehouseLineDO字段') : $t('【{transport}】从【{from}】发往【{to}】', {
<template v-if="lineList.length">
<el-form-item :label="$t('路线')" prop="lineChannelList">
<template v-if="lineList.length == 1">
<el-input
v-for="(item, index) in lineList"
:key="index"
:value="!item.warehouseLineDO ? $t('数据异常,缺少warehouseLineDO字段') : $t('【{transport}】从【{from}】发往【{to}】', {
transport: getDictDataLabel(DICT_TYPE.ECW_TRANSPORT_TYPE, item.warehouseLineDO.transportType),
from: $l(item.warehouseLineDO, 'startTitle'),
to: $l(item.warehouseLineDO, 'destTitle')
})
}}
</el-checkbox>
</el-checkbox-group>
</el-form-item>
<el-form-item v-if="channel" :label="$t('出货渠道')">
{{$l(channel, 'name')}}
</el-form-item>
})"
disabled />
</template>
<el-checkbox-group v-else v-model="checkList">
<el-checkbox
v-for="item in lineList"
:key="item.id"
:label="item.id"
:disabled="!item.warehouseLineDO"
style="display:block"
>
{{
!item.warehouseLineDO ? $t('数据异常,缺少warehouseLineDO字段') : $t('【{transport}】从【{from}】发往【{to}】', {
transport: getDictDataLabel(DICT_TYPE.ECW_TRANSPORT_TYPE, item.warehouseLineDO.transportType),
from: $l(item.warehouseLineDO, 'startTitle'),
to: $l(item.warehouseLineDO, 'destTitle')
})
}}
</el-checkbox>
</el-checkbox-group>
</el-form-item>
<el-form-item v-if="channel" :label="$t('出货渠道')">
{{$l(channel, 'name')}}
</el-form-item>
</template>
<!--有路线则不显示路线选择器-->
<routers-selector v-else v-model="selectedRoutes" :option="routerOption" :type="type" />
......
......@@ -817,7 +817,7 @@ export default {
//上传
let formData = new FormData();
formData.append("file", file);
formData.append("path", this.uuid());
// formData.append("path", this.uuid());
uploadFile(formData).then(response => {
this.$set(this.form, 'img', response.data);
// this.form.img = response.data;
......
......@@ -103,29 +103,29 @@ const air= `
<img src="https://static2.groupage.cn/logo.png" alt="" style="width: 118px;"/>
</td>
<td class="laymain" style="vertical-align: text-top; word-break: break-all;">
<p style="margin-top: 5px; margin-bottom: 5px; font-size: 36px; color: rgb(0, 143, 215); font-family: &quot;Times New Roman&quot;; text-align: center;">
<p style="margin-top: 5px; margin-bottom: 5px; font-size: 36px; color: rgb(0, 143, 215); font-family: 'Times New Roman'; text-align: center;">
E&C LOGISTICS LIMITED
</p>
<p style="margin-top: 5px; margin-bottom: 5px; color: rgb(0, 143, 215); font-family: &quot;Times New Roman&quot;; text-align: center; line-height: 1.75em;">
<p style="margin-top: 5px; margin-bottom: 5px; color: rgb(0, 143, 215); font-family: 'Times New Roman'; text-align: center; line-height: 1.75em;">
<span style="font-size: 16px;">China Head Add.:+86 400 9009962(Guangzhou/Yiwu)</span>
</p>
<p style="margin-top: 5px; margin-bottom: 5px; color: rgb(0, 143, 215); font-family: &quot;Times New Roman&quot;; text-align: center; line-height: 1.75em;">
<p style="margin-top: 5px; margin-bottom: 5px; color: rgb(0, 143, 215); font-family: 'Times New Roman'; text-align: center; line-height: 1.75em;">
<span style="font-size: 16px;">NGR head office: 07011331745/ 08140352000 Onitsha: 07043969197 /09048725208</span>
</p>
<p style="margin-top: 5px; margin-bottom: 5px; color: rgb(0, 143, 215); font-family: &quot;Times New Roman&quot;; text-align: center; line-height: 1.75em;">
<p style="margin-top: 5px; margin-bottom: 5px; color: rgb(0, 143, 215); font-family: 'Times New Roman'; text-align: center; line-height: 1.75em;">
<span style="font-size: 16px;">Complaint Line:+86 400 9009962(CHINA)/+2348140352000(NIGERIA)</span>
</p>
</td>
<td style="text-align: center;">
<img src="https://static2.groupage.cn/weixin.jpg" alt="" style="width: 142px;"/>
<p style="margin-top: 5px; margin-bottom: 5px; color: rgb(0, 143, 215); font-family: &quot;Times New Roman&quot;;">
<p style="margin-top: 5px; margin-bottom: 5px; color: rgb(0, 143, 215); font-family: 'Times New Roman';">
https://person2.groupage.cn
</p>
</td>
</tr>
</tbody>
</table>
<p style="margin: 2rem; margin-top:0rem; text-wrap: wrap; font-size: 33px; font-family: &quot;Times New Roman&quot;; text-align: center;">
<p style="margin: 2rem; margin-top:0rem; text-wrap: wrap; font-size: 33px; font-family: 'Times New Roman'; text-align: center;">
AIR WAY BILL
</p>
<p>
......
<template>
<div class="app-container">
<div class="mb-10 flex items-center">
<div class="flex-1">
<h2 class="page-title mb-5">下载队列</h2>
<div>*{{$t('文件生成成功后,保留12小时,12小时后自动删除')}}</div>
</div>
<el-button class="" @click="handleQuery" type="primary">刷新</el-button>
</div>
<!--el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="68px">
<el-form-item :label="$t('文件名称')" prop="fileName">
<el-input v-model="queryParams.fileName" :placeholder="$t('请输入文件名称')" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" @click="handleQuery">{{$t('搜索')}}</el-button>
<el-button icon="el-icon-refresh" @click="resetQuery">{{$t('重置')}}</el-button>
</el-form-item>
</el-form-->
<el-table v-loading="loading" :data="list">
<el-table-column :label="$t('下载编号')" align="center" prop="id" width="100" />
<el-table-column :label="$t('分类')" align="center" prop="type" width="100" >
<template v-slot:default="{row}">
<dict-tag :type="DICT_TYPE.DOWNLOAD_TYPE" :value="row.type"/>
</template>
</el-table-column>
<!--<el-table-column :label="$t('业务编号')" align="center" prop="type" width="100" /-->
<el-table-column :label="$t('下载内容')" align="center" prop="name" />
<el-table-column :label="$t('开始下载时间')" align="center" prop="createTime" width="150">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime) }}</span>
</template>
</el-table-column>
<el-table-column :label="$t('下载状态')" align="center" prop="createBy" width="150">
<template v-slot:default="{row}">
<!--status ==2 表示已处理,配合downNum来判断是否已下载-->
<template v-if="row.status == 2 && row.downNum > 0">{{$t('已下载')}}</template>
<template v-else-if="row.status == 2">{{$t('待下载')}}</template>
<dict-tag v-else :type="DICT_TYPE.DOWNLOAD_LOG_STATUS" :value="row.status"/>
</template>
</el-table-column>
<el-table-column :label="$t('操作')" align="center" class-name="small-padding fixed-width" width="100">
<template slot-scope="scope" >
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleDownload(scope.row)"
v-hasPermi="['system:notice:update']">{{$t('下载')}}</el-button>
</template>
</el-table-column>
</el-table>
<pagination v-show="total>0" :total="total" :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize"
@pagination="getList"/>
</div>
</template>
<script>
import {download, downloadFileArrayBuffer, downloadFileResponse, downloadPage} from "@/api/system/download";
import {parseTime} from "../../../utils/ruoyi";
import Template from "@/views/cms/template/index.vue";
export default {
name: "Download",
components: {Template},
data() {
return {
// 遮罩层
loading: true,
// 总条数
total: 0,
list: [],
queryParams: {
pageNo: 1,
pageSize: 10
}
};
},
created() {
this.getList();
},
methods: {
parseTime,
handleDownload(row){
const loading = this.$loading()
download(row.id).then(res => {
return downloadFileResponse(res.data)
}).then(res => {
console.log({res})
this.$download.download0(res.data, row.name + row.fileSuffix, res.headers['content-type'])
}).finally(() => {
loading.close()
})
},
/** 查询公告列表 */
getList() {
this.loading = true;
downloadPage(this.queryParams).then(response => {
this.list = response.data.list;
this.total = response.data.total;
this.loading = false;
}).finally(() => {
this.loading = false;
})
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNo = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
}
}
};
</script>
......@@ -324,7 +324,7 @@ export default {
/** 处理上传的文件发生变化 */
handleFileChange(file, fileList) {
this.upload.data.path = this.uuid() + "/" + file.name;
// this.upload.data.path = this.uuid() + "/" + file.name;
},
/** 文件上传成功处理 */
......@@ -355,7 +355,7 @@ export default {
let formData = new FormData();
// console.log(file);
formData.append("file", file);
formData.append("path", this.uuid() + "/" + file.name);
// formData.append("path", this.uuid() + "/" + file.name);
uploadFile(formData).then(response => {
this.$set(this.form, 'appUrl', response.data);
// this.form.img = response.data;
......
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