Commit cd61ae53 authored by 黄奎's avatar 黄奎
parents 9d5f31a0 9cc9880f
......@@ -96,6 +96,91 @@
width: 757px !important;
}
._addUpload_tips {
font-size: 12px;
color: #999999;
}
._addUpload_box {
display: block;
margin-top: 15px
}
._addUpload_box img {
width: 100%;
height: 100%;
}
._addUpload_box>div {
float: left;
width: 138px;
height: 92px;
border: 1px dashed rgba(210, 210, 210, 1);
border-radius: 2px;
cursor: pointer;
margin-bottom: 10px;
padding: 5px;
margin-right: 10px;
position: relative;
}
._addUpload_box>div:hover {
background-color: #f5f5f5;
}
._addFile_name {
padding-left: 15px;
max-width: 450px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
._addUpload_box .icon-guanbi1 {
font-size: 12px;
color: white;
display: inline-block;
margin-left: 15px;
position: absolute;
right: -6px;
top: -9px;
background-color: #f56c6c;
border-radius: 50%;
height: 20px;
width: 20px;
text-align: center;
line-height: 20px;
}
._addUpload_box .icon-guanbi1:hover {
font-size: 12px;
color: #c94052;
}
._addUpload_box .icon-excel,
._addUpload_box .icon-pdf {
text-align: center;
font-size: 38px;
color: green;
line-height: 75px;
}
._show_img_box {
position: fixed;
background: rgba(0, 0, 0, .6);
left: 0;
top: 0;
width: 100%;
height: 100%;
z-index: 999;
text-align: center;
}
.AC_content .el-upload-dragger {
width: 126px !important;
height: 80px !important;
}
</style>
<template>
......@@ -140,6 +225,42 @@
</li>
</ul>
</div>
<div v-if="userInfo.SimpleEasy==1">
<p>{{$t('fnc.scfujian')}}<span class="_addUpload_tips">{{$t('tips.wjdxbncgsz')}}</span></p>
<div class="_addUpload_box clearfix">
<template v-for="(file,fIndex) in saveMsg">
<div v-if="file.FileType==3">
<div style="width:100%;height:100%;overflow: hidden;">
<img :src="file.Url?file.Url:file.Content" @click="showUpLoadFile(file)">
</div>
<span class="iconfont icon-guanbi1" @click="deleteUploadFile(fIndex)"></span>
</div>
<div v-if="file.FileType==1">
<div class="iconfont "
:class="file.Content.substring(file.Content.lastIndexOf('.')+1,file.Content.length).toUpperCase()=='PDF'? 'icon-pdf' : 'icon-excel'"
@click="showUpLoadFile(file)">
</div>
<span class="iconfont icon-guanbi1" @click="deleteUploadFile(fIndex)"></span>
</div>
<div v-if="file.FileType==2">
<div class="iconfont icon-excel" @click="showUpLoadFile(file)">
</div>
<span class="iconfont icon-guanbi1" @click="deleteUploadFile(fIndex)"></span>
</div>
</template>
<div class="_pic_upload">
<el-upload drag :http-request="uploadFileBtn" :multiple="true" :show-file-list="false" action="">
<i class="el-icon-plus avatar-uploader-icon"></i>
<div class="el-upload__text">{{$t('active.ld_djscwj')}}</div>
</el-upload>
</div>
</div>
</div>
<el-input type="textarea" style="margin-top:10px;" :rows="5" v-model="EditMsg.Description" :placeholder="$t('objFill.v101.Complaints.jutiwtmstsr')"></el-input>
<p style="margin: 15px 0">{{$t('objFill.v101.Complaints.zhidinclr')}}</p>
<el-select class="w150" v-model="EditMsg.NextPersion" filterable :placeholder="$t('pub.pleaseSel')">
......@@ -152,12 +273,24 @@
<!--<input type="button" class="normalBtn" value="暂存" @click="SaveData(1)"/>-->
<input type="button" class="normalBtn" :value="$t('pub.cancelBtn')"/>
</p>
<div v-if='picIsShow' class="_show_img_box" @click="picIsShow=false,picObj=[]">
<div
style="position: absolute; width: 800px; height: 600px; left: 50%; top: 50%; margin-left: -400px; margin-top: -300px;">
<el-carousel :initial-index=initialIndex height="600px" :interval="5000" trigger="click">
<el-carousel-item style="height: 600px;overflow:auto;" v-for="(item,index) in picObj" :key="index">
<img :src="item" style="" />
</el-carousel-item>
</el-carousel>
</div>
</div>
</div>
</template>
<script>
export default {
data() {
return {
userInfo:{},
//主题内容
themeList: [],
//严重程度
......@@ -168,6 +301,10 @@
severityCked: [],
//员工
EmployeeList: [],
saveMsg:[],
picObj: [],
picIsShow:false,
initialIndex: 0,
//添加修改投诉
EditMsg: {
ID: 0,//编号
......@@ -181,6 +318,7 @@
NextPersion: '',//下一个审核人
LineID: 0,// 线路id
LineteamId: 0,//系列id
FileDataList:[],
},
//查询参数
QMsg: {
......@@ -195,6 +333,64 @@
mounted() {
},
methods: {
showUpLoadFile(i) { // 预览上传文件
if (i.FileType == 3) {
this.picObj.push(i.Url);
this.picIsShow = true;
} else {
if (i.Content.substring(i.Content.lastIndexOf('.') + 1, i.Content.length).toUpperCase() == 'PDF') {
this.previewPDF(i.Url)
} else {
window.open("https://view.officeapps.live.com/op/view.aspx?src=" + i.Url)
}
}
},
deleteUploadFile(i) { // 删除上传文件
this.saveMsg.splice(i, 1);
},
uploadFileBtn(file) { //上传
if (file.file.size > 1024 * 1024 * 10) {
this.$message.warning(this.$t('tips.wjdxbncgsz'))
return
}
// 1 文档 2 数据 3 图片
let typeArr = [{
stringArr: 'GIF|JPG|JPEG|PNG|BMP',
type: 3
},
{
stringArr: 'DOCX|DOC|XLSX|XLS|PPT|PPTX|PDF',
type: 1
},
]
let ft = file.file.name.substring(file.file.name.lastIndexOf('.') + 1, file.file.name.length).toUpperCase();
let fileTypeNumber = 2;
let typeOk = false;
typeArr.forEach(x => {
if (x.stringArr.indexOf(ft) != '-1') {
fileTypeNumber = x.type;
typeOk = true;
}
})
if (!typeOk) return this.$message.error(this.$t('tips.qscWEfile'));
let newArr = [];
newArr.push(file.file)
let path = "/Upload/Temporary/"
this.$message.info(this.$t('tips.shangchuanzhong'))
this.UploadSelfFileT(path, newArr, x => {
let fileSize = file.file.size < 1024 ? file.file.size : (file.file.size / 1024).toFixed(0);
this.saveMsg.push({
Content: x.data.FilePath,
ID: 0,
FileType: fileTypeNumber,
Name:x.data.SourceFileName,
Url: this.domainManager().ViittoFileUrl + x.data.FilePath,
})
this.$message.success(this.$t('tips.scchenggong'))
console.log("this.saveMsg",this.saveMsg);
}, 1);
},
//选取主题内容
getTheme(item) {
item.isCheck = !item.isCheck;
......@@ -283,6 +479,12 @@
this.EditMsg.SeverityLevel = x.Id;
}
});
if(this.saveMsg!=null&&this.saveMsg.length>0){
this.EditMsg.FileDataList=this.saveMsg;
}
else{
this.EditMsg.FileDataList=[];
}
this.apipost('conplain_post_Set', this.EditMsg, res => {
if (res.data.resultCode == 1) {
this.Success(this.$t('objFill.v101.administrative.tianjiacg'));
......@@ -341,6 +543,7 @@
this.EditMsg.ID = this.$route.query.id;
},
mounted() {
this.userInfo = this.getLocalStorage();
this.getEnumeration();
this.getEmployeeList();
}
......
This diff is collapsed.
......@@ -1773,8 +1773,23 @@
</el-row>
</div>
<!-- 表格 -->
<div style="width: 100%; height: auto; overflow-x: auto" class="ownScrollbarStyle">
<table class="groupTourOrderSearchTable" border="0" cellspacing="0" cellpadding="0" v-loading="loading">
<div style="width: 100%; height: auto; overflow-x: auto" class="ownScrollbarStyle" v-loading="loading">
<groupOrder v-if="userInfo.SimpleEasy==1" :list="list" :orderList="orderList"
:logList="logList" :redBagList="redBagList" :qjGroupId="qjGroupId" :isShow="isShow"
:showID="showID" :TransferMission="TransferMission" :isEditOrderCreate="isEditOrderCreate"
@goIisDetail="goIisDetail" @goUrlTS="goUrlTS" @goContract="goContract"
@goSingleContract="goSingleContract" @goProtocol="goProtocol" @goDisclaimer="goDisclaimer"
@goInvetig="goInvetig" @SpecialAPP="SpecialAPP" @deleteItem="deleteItem"
@ShenQingPhoto="ShenQingPhoto" @Discount="Discount" @goUrlAdd="goUrlAdd"
@getOrderGender="getOrderGender" @transfer="transfer" @getHouse="getHouse"
@toTrip="toTrip" @getSalerInfo="getSalerInfo" @getLogDetail="getLogDetail"
@getRemarks="getRemarks" @getDetail="getDetail" @downLoadFile="downLoadFile"
@getMembersDetail="getMembersDetail" @seeBJD="seeBJD" @gotoProduct="gotoProduct"
@goUrlX="goUrlX" @getOrderDetail="getOrderDetail" @goUrlHappy="goUrlHappy"
@getRedBag="getRedBag" @goUrlT="goUrlT" @setChargeLoss="setChargeLoss"
@goUrlSFD="goUrlSFD" @uploadFileBtn="uploadFileBtn" @childByValue="childByValue"
></groupOrder>
<table v-else class="groupTourOrderSearchTable" border="0" cellspacing="0" cellpadding="0">
<tr>
<th width="210">{{ $t("fnc.danhao") }}&{{ $t("visa.v_tuanhao") }}</th>
<th width="120">{{ $t("fnc.khxinxi") }}</th>
......@@ -2707,14 +2722,15 @@
import orderRemark from "../orderCommon/order-remark.vue"; //订单备注
import PriceDetail from '../orderCommon/PriceDetail.vue';
import DateLimit from '../public/DateLimit.vue';
import pinkDrawer from './components/pinkDrawer.vue';
import pinkDrawer from '../common/pinkDrawer.vue';
import addOrder from './components/addOrder.vue';
import addConfig from "./components/addConfig.js";
import groupOrder from "./components/groupOrder.vue";
export default {
data() {
return {
selectedSpotData: null,
showType: 1,
showType: 1,//团信息
pickerBeginDateAfter: {
disabledDate: time => {
let startTime = new Date(this.msg.QStartDate);
......@@ -3063,6 +3079,7 @@
DateLimit,
pinkDrawer,
addOrder,
groupOrder,
},
filters: {
priceFormat(value) {
......@@ -3091,11 +3108,13 @@
},
methods: {
addOrders() {
this.selectedSpotData = null
this.$refs.addOrders.openDrawer();
},
handleSaveSuccess() {
this.$refs.addOrders.handleDrawerClose();
this.getList();
this.getCount()
this.$message.success('保存成功');
},
gotoProduct(item) {
......@@ -3958,6 +3977,14 @@
}
},
getDetail(obj) {
if(this.userInfo.SimpleEasy==1){
this.OperationType = 1
this.showType = 1
obj.OperationType = 1
this.selectedSpotData = obj;
this.$refs.addOrders.openDrawer(obj);
return;
}
this.goLVurl.orderId = obj.orderId;
this.goLVurl.tcid = obj.tcid;
this.goLVurl.tcnum = obj.tcnum;
......@@ -4065,7 +4092,6 @@
if (x.ClientSource == 1) {
this.isPingtai = true;
}
this.isShowLayer = true;
this.isShowHouse = false;
this.isShowLayerRemarks = false;
......
......@@ -53,7 +53,7 @@
<div class="HotelWorkList" @click="showWarningSearch=false">
<div class="query-box HotelWorkInput" style="border-bottom: none;">
<ul>
<li>
<!-- <li>
<span>
<em>{{$t('OrderList.search.status')}}</em>
<el-select v-model="msg.OrderStatus" class="w200 HworkInput">
......@@ -61,7 +61,7 @@
<el-option v-for="item in OrderStatusList" :key="item.Id" :label="item.Name" :value="item.Id"></el-option>
</el-select>
</span>
</li>
</li> -->
<li v-if="Title!='销售'">
<span>
<em>{{$t('visa.v_yewuyuan')}}</em>
......@@ -73,7 +73,7 @@
</el-select>
</span>
</li>
<li v-if="Title!='销售'">
<!-- <li v-if="Title!='销售'">
<span>
<em>{{$t('objFill.yinliuren')}}</em>
<el-select filterable v-model='msg.CreateBy' class="w200">
......@@ -83,7 +83,7 @@
</el-option>
</el-select>
</span>
</li>
</li> -->
<li>
<span>
<em>{{$t('hotel.hotel_OrderStates')}}</em>
......@@ -110,11 +110,11 @@
class="w200" />
</span>
</li>
<li>
<!-- <li>
<span><em>{{$t('ground.CustomerName')}}</em>
<el-input clearable v-model="msg.GuestName" :placeholder="$t('ground.CustomerName')" class="w200" />
</span>
</li>
</li> -->
<li>
<span>
<em>{{$t('objFill.baomingshijian')}}</em>
......@@ -137,58 +137,17 @@
</span>
</li>
<li>
<span>
<em @click.stop="showWarningSearch=true" style="margin-top: 10px;cursor: pointer;"> {{$t('visa.v_gjchaxun')}} <i
class="el-icon-caret-bottom"></i></em>
<el-popover width="300" v-model="showWarningSearch" trigger="click">
<div>
<div class="TC_queryTitle">{{$t('objFill.v101.jipgjcxun')}}</div>
<div class="clearfix">
<div class="TC_leftSearch">
<div>
<span>{{$t('salesModule.TicketStatus')}}</span>
<el-select v-model='msg.TicketStatus' class="w150">
<el-option :value="0" :label="$t('pub.unlimitedSel')"></el-option>
<el-option v-for='item in ticketingStatusList' :label='item.Name' :value='item.Id'
:key='item.Id'>
</el-option>
</el-select>
</div>
<div>
<span>{{$t('objFill.v101.chuqianzt')}}</span>
<el-select v-model='msg.VisaStatus' class="w150">
<el-option v-for='item in VisaList' :label='item.Name' :value='item.Id' :key='item.Id'>
</el-option>
</el-select>
</div>
<div>
<span>{{$t('objFill.wangjie')}}{{$t('salesModule.Time')}}</span>
<!-- <el-date-picker style="height: 34px;width: 210px;" value-format="yyyy-MM-dd" v-model="Datelist"
type="daterange" :range-separator="$t('OrderList.zhi')"
:start-placeholder="$t('OrderList.star')" :end-placeholder="$t('OrderList.end')"
@change="getDates">
</el-date-picker> -->
<StartDateLimit :clearable="true" :dateTime="Datelist" @change="(startDate,endDate)=>{Datelist=[startDate,endDate],getDates()}" style="width: 210px;"></StartDateLimit>
</div>
<div>
<StartDateLimit :clearable="true" :dateTime="Datelist" @change="(startDate,endDate)=>{Datelist=[startDate,endDate],getDates()}"></StartDateLimit>
</li>
<li>
<span>{{$t('objFill.v101.FinancialModule.chuxings')}}</span>
<el-input v-model='msg.StartCityName' style="width: 210px;"></el-input>
</div>
</div>
<div style="text-align: right;margin-top: 10px;">
<button class="normalBtn TC_SearchBtn"
@click.stop="GetList(),showWarningSearch=false">{{$t('pub.searchBtn')}}
</button>
</div>
</div>
</div>
</el-popover>
</span>
<el-input v-model='msg.StartCityName'></el-input>
</li>
<li>
<input v-if="userInfo.SimpleEasy==1" type="button" class="normalBtn" value="新增机票" @click="AddAirTicket()" />
<input type="button" class="normalBtn" :value="$t('pub.searchBtn')"
@click.stop="msg.pageIndex=1,currentPage=1,GetList()" />
</li>
......@@ -252,25 +211,37 @@
</el-row>
</div>
<OrderList :pagesTitle="Title" :OrderList="OrderList" v-loading="loading" @success="msg.pageIndex=1,GetList()">
<OrderList :pagesTitle="Title" :OrderList="OrderList" v-loading="loading" @success="msg.pageIndex=1,GetList()" @getlist="GetList()">
</OrderList>
<div v-if="OrderList&&OrderList.length==0" style="text-align: center;padding: 100px;">{{$t('system.content_noData')}}</div>
<el-pagination v-if="OrderList&&OrderList.length>0" background @current-change="handleCurrentChange"
:current-page.sync="currentPage" layout="total,prev, pager, next, jumper" :page-size=msg.pageSize :total=total>
</el-pagination>
<!-- 添加机票订单 -->
<div v-if="dialogTicketOrderVisible">
<ticketOrderDialog :name="dialogTicketOrderVisibleName" :ID="TicketOrderID" :GuestId="GuestId" :obj="editObj" type="1" @closeDialog="dialogTicketOrderVisible=false" @getlist="GetList()"></ticketOrderDialog>
</div>
</div>
</template>
<script>
import OrderList from './OrderList.vue';
import ticketOrderDialog from './ticketOrderDialog.vue';
import StartDateLimit from '../../public/StartDateLimit.vue';
import OrderList from './OrderList.vue';
export default {
props: ['pagesTitle', 'dataObj'],
components: {
OrderList,
StartDateLimit
StartDateLimit,
ticketOrderDialog
},
data() {
return {
GuestId:0,
TicketOrderID:0,
editObj:{},
dialogTicketOrderVisible:false,
dialogTicketOrderVisibleName:'',
showWarningSearch: false,
TotalMsg: null,
MultipleChoiceList: [ //多选项目
......@@ -509,15 +480,14 @@
},
//获取酒店订单列表
GetList() {
this.loading = true
let url = "/api/Order/GetGuestOrderStatisticsPageList"
this.loading = true
// 销售 OP
if (this.pagesTitle == '销售') {
this.msg.IsMyOrder = '1'
} else {
this.msg.IsMyOrder = '0'
}
this.crmapipost(url, this.msg,
this.apipost('ticket_post_GetAirOrderStatisticsPageList', this.msg,
res => {
if (res.data.resultCode == 1) {
let data = res.data.data.Data.pageData
......@@ -657,6 +627,11 @@
//设置table的行高
this.tableHeight = h;
},
AddAirTicket(){
this.TicketOrderID=0;
this.dialogTicketOrderVisible=true;
this.dialogTicketOrderVisibleName="新建机票订单";
}
},
created() {
if (this.$route.query.OrderId) {
......
......@@ -29,6 +29,7 @@ export const listManagerMixin = {
IsLeave: 0,
},
EmployeeList: [],//员工
BranchList:[],//公司
//单选产品订单状态
OrderStatusType: [
// { Name: this.$t('OrderList.orderStatus.apply'), ID: '1' },
......@@ -58,6 +59,22 @@ export const listManagerMixin = {
}
},
async getBranch() { //公司
try {
this.apipost('admin_Get_GetCompanyDepartMentEmployeeForChar', {}, res => {
if (res.data.resultCode == 1) {
this.BranchList = res.data.data;
}
}, err => {})
} catch (error) {
console.error("加载数据失败:", error);
this.$message.error("网络请求失败");
return null;
} finally {
}
},
// 通用数据加载方法
async loadData(apiName, params = {}) {
......
......@@ -427,8 +427,9 @@
<div class="flexOne changInfo" :class="{ 'drawer-mode': isDrawerMode }">
<!-- 正常内容 -->
<div class="resource-content clearfix">
<!-- :disabled="addMsg.OrderId>0&&(activeTab=='basic'||activeTab=='contact')" -->
<el-form :model="addMsg" :rules="rules" class="h-full" ref="addMsg" label-width="120px"
:disabled="addMsg.OrderId>0&&(activeTab=='basic'||activeTab=='contact')">
>
<div class="hotel-form-container h-full">
<el-tabs v-model="activeTab" type="border-card" class="hotel-tabs">
<el-tab-pane label="基础资料" name="basic">
......@@ -682,7 +683,8 @@
</el-dialog>
<div class="btn-list">
<div class="btn-actions">
<button v-if="!addMsg.OrderId" class="save-Btn" @click="submitForm('addMsg')" :disabled="isSaving">
<!-- v-if="!addMsg.OrderId" -->
<button class="save-Btn" @click="submitForm('addMsg')" :disabled="isSaving">
<i v-if="isSaving" class="el-icon-loading" style="margin-right: 4px;"></i>
{{ isSaving ? '' : $t('pub.saveBtn') }}
</button>
......
......@@ -54,7 +54,7 @@ export const spotListConfig = {
prop: 'CouponsName',
minWidth: 150,
fixed: 'left',
type: 'link',
// type: 'link',
slotName: 'CouponsName',
filter: {
type: 'input',
......
......@@ -20,11 +20,11 @@
@add-click="addSpot"
>
<!-- 插槽 -->
<template slot="CouponsName" slot-scope="{ row }">
<!-- <template slot="CouponsName" slot-scope="{ row }">
<span class="name-link" @click="editSpot(row)">
{{ row.CouponsName }}
</span>
</template>
</template> -->
<template slot="profit" slot-scope="{ row }">
{{ row.Income-row.CostMoney-row.Refund>0?(row.Income-row.CostMoney-row.Refund).toFixed(2):'-' }}
</template>
......@@ -114,6 +114,12 @@
<!-- <el-button type="text" size="mini" @click="manageData(row)">邮轮</el-button> -->
<!-- <el-button type="text" size="mini" @click="editSpot(row)">编辑</el-button> -->
<div class="row">
<span v-if="row.OrderStatus == 2"
class="c059FF6 mr-xs pointer"
@click="editSpot(row)"
>{{$t('pub.edit')}}</span>
<span v-if="row.OrderStatus == 1 && row.IncomeList.length == 0 && row.RefundList.length == 0 && row.CostList.length == 0"
class="delete-btn mr-xs pointer"
@click="cancelOrder(row)"
......@@ -124,7 +130,7 @@
@click="clickOperation(row,3)"
>{{$t('fnc.shousun')}}</span>
<!-- v-if="row.OrderStatus>1&&!row.OrderStatus!=3&&!row.OrderStatus!=4&&isOP&&userInfo.ActionMenuCode.indexOf('is_correlationOP') != -1" -->
<span
<!-- <span
class="c059FF6 mr-xs pointer"
@click="clickOperation(row,4)"
>{{$t('pub.edit')}}OP</span>
......@@ -132,7 +138,7 @@
<span v-if="row.OrderStatus!=3"
class="c059FF6 mr-xs pointer"
@click="clickOperation(row,5)"
>{{$t('pub.edit')}}{{$t('fnc.a_zongjine')}}</span>
>{{$t('pub.edit')}}{{$t('fnc.a_zongjine')}}</span> -->
<ApplyFoInvoice class="pointer" v-if="userInfo&&userInfo.RB_Group_id==2&&userInfo.EmployeeId==row.EnterID"
:obj="row" :type="7"></ApplyFoInvoice>
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
// 邮轮列表配置
export const spotListConfig = {
// 表格基础配置
tableConfig: {
height: '100%',
border: true,
stripe: false,
size: 'mini',
multiple: false,//是否支持多选
'empty-text': '暂无数据'
},
// 分页配置
paginationConfig: {
background: true,
layout: 'total, sizes, prev, pager, next, jumper',
'pager-count': 7,
'hide-on-single-page': false,
'page-sizes': [10, 14, 20, 25, 50, 100],
'page-size': 14,
'current-page': 1,
small: false,
disabled: false,
'prev-text': '',
'next-text': '',
total: 0
},
// 分页默认配置
defaultPagination: {
currentPage: 1,
pageSize: 14,
total: 0,
pageSizes: [10, 14, 20, 25, 50, 100]
},
// 列配置工厂函数
createColumns: (options = {}) => [
{
type: 'selection',
minWidth: 55,
fixed: 'left',
slotName: 'FrID',
},
{
id: 'FrID',
label: '单号',
prop: 'FrID',
minWidth: 30,
// fixed: 'left',
slotName: 'FrID',
},
{
label: '公司',
prop: 'BranchName',
minWidth: 90,
slotName: 'BranchName',
},
{
label: '费用类型',
prop: 'CostTypeName',
minWidth: 80,
slotName: 'CostTypeName',
},
{
label: '币种',
prop: 'CurrencyName',
minWidth: 30,
slotName: 'CurrencyName',
},
{
label: '汇率',
prop: 'Rate',
minWidth: 30,
slotName: 'Rate',
},
{
label: '金额',
prop: 'Money',
minWidth: 80,
slotName: 'Money',
},
{
label: '冲抵金额',
prop: 'MatchMoney',
minWidth: 80,
slotName: 'MatchMoney',
},
{
label: '状态',
prop: 'StatusStr',
minWidth: 30,
slotName: 'StatusStr',
},
{
label: '付款对象',
prop: 'ClientTypeName',
minWidth: 80,
slotName: 'ClientTypeName',
},
{
label: '备注',
prop: 'Remark',
minWidth: 80,
slotName: 'Remark',
}
],
// 操作列配置
actionColumn: {
label: '操作',
width: 240,
minWidth: 150,
fixed: 'right'
},
// 高级查询配置
advancedSearchConfig: {
title: '高级查询',
buttonText: '高级查询',
width: 600,
fields: [
{
key: 'FrID',
label: '编号',
type: 'input',
placeholder: '单据编号',
span: 8,
options: [] // 动态填充
},
{
key: 'CostTypeID',
label: '费用类型',
type: 'select',
span: 8,
options: [] // 动态填充
},
{
key: 'Datelist',
label: '交易时间',
type: 'date',
dateType: 'daterange',
placeholder: '选择交易时间',
span: 8,
}
]
},
// 工具操作配置
toolActions: [
{
command: 'refresh',
label: '刷新',
icon: 'el-icon-refresh',
type: 'default'
},
{
command: 'clearFilters',
label: '清除筛选',
icon: 'el-icon-delete',
type: 'warning'
}
],
// 抽屉配置
drawerConfig: {
title: '冲抵信息',
size: '90%',
direction: 'rtl'
},
// API 配置
apiConfig: {
list: 'Financial_get_GetAdvanceFinancePageList',//列表
costType: 'Financial_get_GetAdvanceCostTypeList',
},
// 默认查询参数
defaultQueryParams: {
pageIndex: 1,
pageSize: 16,
FrID: 0,
CostTypeID:'',
sTradeDate:'',
eTradeDate:'',
IsAdvanceFinance:1,
Datelist: [],
},
// 分页配置工具方法
createPaginationConfig: (options = {}) => ({
...spotListConfig.paginationConfig,
...options
}),
// 验证分页参数
validatePaginationParams: (pageIndex, pageSize, total) => {
const validPageSizes = [10, 14, 20, 25, 50, 100]
const normalizedPageSize = validPageSizes.includes(pageSize) ? pageSize : 14
const maxPage = total > 0 ? Math.ceil(total / normalizedPageSize) : 1
const normalizedPageIndex = Math.max(1, Math.min(pageIndex, maxPage))
return {
pageIndex: normalizedPageIndex,
pageSize: normalizedPageSize,
isValid: pageIndex === normalizedPageIndex && pageSize === normalizedPageSize
}
}
}
// 导出默认配置
export default spotListConfig
// 导出分页配置工具方法
export const createPaginationConfig = spotListConfig.createPaginationConfig
export const validatePaginationParams = spotListConfig.validatePaginationParams
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
......@@ -49,13 +49,13 @@
</el-row>
<template v-if="postMsg.TeamType!=2">
<el-row :gutter="20">
<el-col :span="2">
<el-col :span="2" v-if="userInfo.SimpleEasy!=1">
<el-form-item :label="$t('salesModule.IsLianYn')">
<el-checkbox v-model="postMsg.IsIntermodal" :true-label="1" :false-label="0">
</el-checkbox>
</el-form-item>
</el-col>
<el-col :span="22">
<el-col :span="userInfo.SimpleEasy!=1?22:24">
<el-form-item :label="$t('objFill.liangyunbeizhu')">
<el-input v-model="postMsg.UnionRemark" type="textarea" maxlength="500">
</el-input>
......@@ -67,8 +67,10 @@
</div>
</template>
<script>
import { userMixin } from "../common/mixins/userMixin.js";
export default {
props: ["remarksMsg"],
mixins: [userMixin],
data() {
return {
RemarksRules: {
......
......@@ -1987,5 +1987,29 @@ export default {
var language = localStorage.getItem('language')
return language;
}
Vue.prototype.deepFirstLetterToLower = function (obj) {
if (typeof obj !== 'object' || obj === null) return obj; // 非对象直接返回
// 处理数组:遍历每个元素递归转换
if (Array.isArray(obj)) {
return obj.map(item => deepFirstLetterToLower(item));
}
// 处理普通对象:遍历键值对递归转换
const newObj = {};
for (const key in obj) {
const value = obj[key];
// 键名首字母转小写(可选,根据需求)
const newKey = firstLetterToLower(key);
newObj[newKey] = deepFirstLetterToLower(value);
}
return newObj;
}
// 基础首字母转小写函数(同上)
Vue.prototype.firstLetterToLower = function (str) {
if (typeof str !== 'string' || str.length === 0) return '';
return str.charAt(0).toLowerCase() + str.slice(1);
}
}
}
......@@ -1905,6 +1905,14 @@ export default {
title: '邮轮订单'
},
},
{
path: '/cruiseshipVisaOrderList',
name: 'cruiseshipVisaOrderList',
component: resolve => require(['@/components/cruiseshipVisa/list/cruiseshipVisaOrderList'], resolve),
meta: {
title: '签证订单'
},
},
{
path: '/cruiseShipOrderListOP',
name: 'cruiseShipOrderListOP',
......
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