Merge branch 'master' of http://git.xdadan.com/tanex/emis-frontend
This commit is contained in:
commit
e06af25dc2
Binary file not shown.
@ -198,7 +198,7 @@ export default {
|
|||||||
</script>
|
</script>
|
||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
// .el-upload--picture-card 控制加号部分
|
// .el-upload--picture-card 控制加号部分
|
||||||
:deep.hide .el-upload--picture-card {
|
:deep .hide .el-upload--picture-card {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
// 去掉动画效果
|
// 去掉动画效果
|
||||||
|
|||||||
@ -186,7 +186,7 @@ export default {
|
|||||||
</script>
|
</script>
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
.mini-form {
|
.mini-form {
|
||||||
:deep.el-form-item--mini.el-form-item {
|
:deep .el-form-item--mini.el-form-item {
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,391 +0,0 @@
|
|||||||
<template>
|
|
||||||
<div class="xd-table">
|
|
||||||
|
|
||||||
<div class="table-operate-btn-content" v-show="showOperateButton">
|
|
||||||
<!-- toolbar -->
|
|
||||||
<slot name="operateBtnContent">
|
|
||||||
<div class="operate-btn-content">
|
|
||||||
<slot name="toolbar">
|
|
||||||
<div />
|
|
||||||
</slot>
|
|
||||||
<div class="top-right-btn" v-show="showRightButton">
|
|
||||||
<el-row>
|
|
||||||
<el-tooltip class="item" effect="dark" :content="showSearch ? '隐藏搜索' : '显示搜索'" placement="top">
|
|
||||||
<el-button size="mini" circle icon="el-icon-search" @click="toggleSearch()" />
|
|
||||||
</el-tooltip>
|
|
||||||
<el-tooltip class="item" effect="dark" content="刷新" placement="top">
|
|
||||||
<el-button size="mini" circle icon="el-icon-refresh" @click="refresh()" />
|
|
||||||
</el-tooltip>
|
|
||||||
<el-tooltip class="item" effect="dark" content="间距" placement="top">
|
|
||||||
<el-dropdown size="mini" @command="(command) => handleAdjustTableSize(command)">
|
|
||||||
<el-button size="mini" circle style="margin-left: 10px;" class="icon iconfont icon-hangjianju" />
|
|
||||||
<el-dropdown-menu slot="dropdown">
|
|
||||||
<el-dropdown-item command="small" >中等</el-dropdown-item>
|
|
||||||
<el-dropdown-item command="mini" >紧凑</el-dropdown-item>
|
|
||||||
<el-dropdown-item command="medium" >宽松</el-dropdown-item>
|
|
||||||
</el-dropdown-menu>
|
|
||||||
</el-dropdown>
|
|
||||||
</el-tooltip>
|
|
||||||
<el-tooltip class="item" effect="dark" content="显隐列" placement="top" v-if="canHideColumns">
|
|
||||||
<el-popover
|
|
||||||
placement="bottom-end"
|
|
||||||
popper-class="table-cloumn-setting-popper"
|
|
||||||
trigger="click"
|
|
||||||
:show-arrow="false"
|
|
||||||
>
|
|
||||||
<div class="setting-row-content">
|
|
||||||
<div style="text-align:right;display: inline-flex;width:180px;border-bottom: 1px solid #d5d4d438;padding: 0px 0px 10px 0px;">
|
|
||||||
<!-- <el-button @click="delAllStorage">恢复系统表格设置</el-button>
|
|
||||||
<el-button @click="delStorage">恢复当前表格设置</el-button> -->
|
|
||||||
<div style="text-align: left;width: 50%;line-height: 30px;">显示列</div>
|
|
||||||
<div style="text-align: right;width: 50%;"><el-button type="text" size="mini" plain @click="delAllStorage" >重置</el-button></div>
|
|
||||||
</div>
|
|
||||||
<draggable v-model="storageList"
|
|
||||||
ghostClass="drag-ghost"
|
|
||||||
chosenClass="drag-chosen"
|
|
||||||
:animation="500"
|
|
||||||
handle=".el-icon-s-operation"
|
|
||||||
@end="updateTable">
|
|
||||||
<div v-for="clo in storageList" :key="clo.label" class="setting-row">
|
|
||||||
<!-- <i class="el-icon-s-operation" /> -->
|
|
||||||
<i class="el-icon-s-operation icon iconfont icon-ui_drag_horizontally" />
|
|
||||||
<el-checkbox v-model="clo.show" class="label" @change="showOrHidden($event,clo)">{{ clo.label }}</el-checkbox>
|
|
||||||
<!-- <el-button
|
|
||||||
class="btn"
|
|
||||||
size="mini"
|
|
||||||
:type="clo.fixed === 'left' ? 'primary' : 'default'"
|
|
||||||
@click="setFixed('left',clo)"
|
|
||||||
>K</el-button> -->
|
|
||||||
<!-- <el-button
|
|
||||||
class="btn"
|
|
||||||
size="mini"
|
|
||||||
:type="clo.fixed === 'right' ? 'primary' : 'default'"
|
|
||||||
@click="setFixed('right',clo)"
|
|
||||||
>固定在右侧</el-button> -->
|
|
||||||
</div>
|
|
||||||
</draggable>
|
|
||||||
</div>
|
|
||||||
<el-button style="margin-left: 10px;" slot="reference" size="mini" circle icon="el-icon-menu" />
|
|
||||||
</el-popover>
|
|
||||||
</el-tooltip>
|
|
||||||
<!-- <el-tooltip class="item" effect="dark" content="导出" placement="top" v-if="download!=null">
|
|
||||||
<el-button size="mini" circle icon="el-icon-download" @click="download()" />
|
|
||||||
</el-tooltip> -->
|
|
||||||
</el-row>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</slot>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<orig-table ref="table"
|
|
||||||
:config="config" />
|
|
||||||
<pagination
|
|
||||||
v-show="total>0"
|
|
||||||
:total="total"
|
|
||||||
:page-sizes="[10,20,50,100,300,500,1000,2000,5000]"
|
|
||||||
:page.sync="queryParams.pageNum"
|
|
||||||
:limit.sync="queryParams.pageSize"
|
|
||||||
:page-size="queryParams.pageSize"
|
|
||||||
@pagination="queryTable"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
<script>
|
|
||||||
import Sortable from 'sortablejs'
|
|
||||||
import draggable from 'vuedraggable'
|
|
||||||
import origTable from './table.jsx'
|
|
||||||
// import setHeight from '@/mixins/setHeight'
|
|
||||||
const components = { origTable, draggable }
|
|
||||||
|
|
||||||
export default {
|
|
||||||
name: 'XadvTable',
|
|
||||||
components,
|
|
||||||
// mixins: [setHeight],
|
|
||||||
props: {
|
|
||||||
showSearch: {
|
|
||||||
type: Boolean,
|
|
||||||
default: true,
|
|
||||||
},
|
|
||||||
canHideColumns: {
|
|
||||||
type: Boolean,
|
|
||||||
default: true,
|
|
||||||
},
|
|
||||||
storageName: {
|
|
||||||
type: String,
|
|
||||||
required: false
|
|
||||||
},
|
|
||||||
queryParams:{
|
|
||||||
type: Object,
|
|
||||||
default: {},
|
|
||||||
},
|
|
||||||
total:{
|
|
||||||
type: Number,
|
|
||||||
default: 0,
|
|
||||||
},
|
|
||||||
showRightButton:{
|
|
||||||
type: Boolean,
|
|
||||||
default: true,
|
|
||||||
},
|
|
||||||
showOperateButton:{
|
|
||||||
type: Boolean,
|
|
||||||
default: true,
|
|
||||||
},
|
|
||||||
|
|
||||||
|
|
||||||
},
|
|
||||||
data() {
|
|
||||||
return {
|
|
||||||
// 弹出层标题
|
|
||||||
title: "显示/隐藏",
|
|
||||||
// 是否显示弹出层
|
|
||||||
open: false,
|
|
||||||
showTable: false,
|
|
||||||
popVisible:false,
|
|
||||||
storageList: [],
|
|
||||||
tbSize:"",
|
|
||||||
name: '',
|
|
||||||
config: {
|
|
||||||
children: [],
|
|
||||||
attrs: {size:"small"},
|
|
||||||
listeners: {},
|
|
||||||
key: ''
|
|
||||||
},
|
|
||||||
|
|
||||||
selection: [],
|
|
||||||
startX: null,
|
|
||||||
startY: null,
|
|
||||||
endX: null,
|
|
||||||
endY: null,
|
|
||||||
}
|
|
||||||
},
|
|
||||||
watch: {
|
|
||||||
'$attrs': {
|
|
||||||
handler(newV) {
|
|
||||||
this.$set(this.config, 'attrs', newV)
|
|
||||||
},
|
|
||||||
deep: true,
|
|
||||||
immediate: true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
mounted() {
|
|
||||||
this.initStorage()
|
|
||||||
this.updateTable()
|
|
||||||
this.initSort();
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
// 动态列渲染表格时,需要在列渲染完成后重新渲染一下表格
|
|
||||||
reload() {
|
|
||||||
this.$nextTick(() => {
|
|
||||||
this.initStorage()
|
|
||||||
this.updateTable()
|
|
||||||
this.initSort();
|
|
||||||
})
|
|
||||||
},
|
|
||||||
download(){
|
|
||||||
this.$emit("download");
|
|
||||||
},
|
|
||||||
initSort() {
|
|
||||||
|
|
||||||
},
|
|
||||||
// 查询
|
|
||||||
queryTable(){
|
|
||||||
this.$emit("queryTable");
|
|
||||||
},
|
|
||||||
// 显示搜索
|
|
||||||
toggleSearch() {
|
|
||||||
this.$emit("update:showSearch", !this.showSearch);
|
|
||||||
},
|
|
||||||
// 刷新
|
|
||||||
refresh() {
|
|
||||||
this.$emit("queryTable");
|
|
||||||
},
|
|
||||||
// 打开显隐列
|
|
||||||
showColumn() {
|
|
||||||
this.open = true;
|
|
||||||
},
|
|
||||||
getInstance() {
|
|
||||||
// const ref = this.$children.find(i => i.$options._componentTag === 'el-table')
|
|
||||||
// return ref
|
|
||||||
return this.$refs.table.$refs?.elTable
|
|
||||||
},
|
|
||||||
delStorage() {
|
|
||||||
// this.$confirm('恢复当前表格设置将清除当前表格设置并刷新页面是否继续?', '提示', {
|
|
||||||
// confirmButtonText: '确定',
|
|
||||||
// cancelButtonText: '取消',
|
|
||||||
// type: 'warning'
|
|
||||||
// }).then(() => {
|
|
||||||
// const storage = window.localStorage.getItem('tableStorage') ? JSON.parse(window.localStorage.getItem('tableStorage')) : {}
|
|
||||||
// storage[this.storageName] = []
|
|
||||||
// window.localStorage.setItem('tableStorage', JSON.stringify(storage))
|
|
||||||
// location.reload()
|
|
||||||
// })
|
|
||||||
},
|
|
||||||
delAllStorage() {
|
|
||||||
// this.$confirm('恢复系统表格设置将清除当前表格设置并刷新页面是否继续?', '提示', {
|
|
||||||
// confirmButtonText: '确定',
|
|
||||||
// cancelButtonText: '取消',
|
|
||||||
// type: 'warning'
|
|
||||||
// }).then(() => {
|
|
||||||
// window.localStorage.removeItem('tableStorage')
|
|
||||||
// location.reload()
|
|
||||||
// })
|
|
||||||
window.localStorage.removeItem('tableStorage');
|
|
||||||
this.reload();
|
|
||||||
|
|
||||||
},
|
|
||||||
showOrHidden(val, clo) {
|
|
||||||
if (!val && this.storageList.filter(i => i.show).length === 0) {
|
|
||||||
this.$message.warning('列表最少显示一列')
|
|
||||||
this.$nextTick(() => {
|
|
||||||
clo.show = true
|
|
||||||
})
|
|
||||||
return
|
|
||||||
}
|
|
||||||
this.updateTable()
|
|
||||||
},
|
|
||||||
setFixed(value, clo) {
|
|
||||||
if (clo.fixed === value) {
|
|
||||||
clo.fixed = false
|
|
||||||
} else {
|
|
||||||
clo.fixed = value
|
|
||||||
}
|
|
||||||
this.updateTable()
|
|
||||||
},
|
|
||||||
// 更多操作触发
|
|
||||||
handleAdjustTableSize(command) {
|
|
||||||
//size:mini/small/medium;
|
|
||||||
// console.log(this.config);
|
|
||||||
switch (command) {
|
|
||||||
case "small":
|
|
||||||
this.config.attrs.size='small';
|
|
||||||
break;
|
|
||||||
case "mini":
|
|
||||||
this.config.attrs.size='mini';
|
|
||||||
break;
|
|
||||||
case "medium":
|
|
||||||
this.config.attrs.size='medium';
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
this.updateTable();
|
|
||||||
},
|
|
||||||
// 初始化缓存配置
|
|
||||||
initStorage() {
|
|
||||||
this.storageList = []
|
|
||||||
let list = [];
|
|
||||||
const storage = window.localStorage.getItem('tableStorage') ? JSON.parse(window.localStorage.getItem('tableStorage')) : {}
|
|
||||||
// 不管是否初次还是要做一下处理,万一页面有修改,做一下更新,以最新的node节点数组为准
|
|
||||||
if(this.storageName!=undefined && this.storageName!=''){
|
|
||||||
list = storage[this.storageName] ? storage[this.storageName] : []
|
|
||||||
}
|
|
||||||
|
|
||||||
// let list = storage[this.storageName] ? storage[this.storageName] : []
|
|
||||||
this.$vnode.componentOptions.children.forEach(node => {
|
|
||||||
// 以label为准,因为可能会改文本
|
|
||||||
if (!(!node.componentOptions || node.componentOptions.propsData.type) && list.findIndex(i => i.label === node.componentOptions.propsData.label) < 0) {
|
|
||||||
// 非插槽且 不是特殊类型的 找不到就加上
|
|
||||||
const propsData = JSON.parse(JSON.stringify(node.componentOptions.propsData))
|
|
||||||
if (propsData.fixed === undefined || propsData.fixed === false) {
|
|
||||||
propsData.fixed = false
|
|
||||||
} else {
|
|
||||||
propsData.fixed = propsData.fixed ? propsData.fixed : 'left'
|
|
||||||
}
|
|
||||||
list.push({
|
|
||||||
fixed: false, // 默认新增的都是不固定
|
|
||||||
show: true, // 默认新增的都是显示的
|
|
||||||
...propsData
|
|
||||||
})
|
|
||||||
}
|
|
||||||
})
|
|
||||||
// 必须在节点数组存在的才有意义
|
|
||||||
list = list.filter(item => this.$vnode.componentOptions.children.find(n => {
|
|
||||||
return n.componentOptions && item.label === n.componentOptions.propsData.label
|
|
||||||
}))
|
|
||||||
this.storageList = list
|
|
||||||
},
|
|
||||||
// 根据缓存的数组进行渲染表格
|
|
||||||
updateTable() {
|
|
||||||
// 特殊类型
|
|
||||||
const childrenNodes = this.$vnode.componentOptions.children.filter(node => node.componentOptions && node.componentOptions.propsData.type)
|
|
||||||
this.storageList.forEach(item => {
|
|
||||||
if (item.show) {
|
|
||||||
const node = this.$vnode.componentOptions.children.find(n => n.componentOptions && n.componentOptions.propsData.label === item.label)
|
|
||||||
if (node) {
|
|
||||||
node.componentOptions.propsData.fixed = item.fixed
|
|
||||||
childrenNodes.push(node)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
})
|
|
||||||
this.config.children = childrenNodes
|
|
||||||
this.config.attrs = this.$attrs
|
|
||||||
this.config.listeners = this.$listeners
|
|
||||||
// 通过key值触发表格刷新,避免拖拽由于数组长度一致导致diff算法无法识别
|
|
||||||
this.config.key = Math.random() + ''
|
|
||||||
// 控制下表格重新刷新
|
|
||||||
// this.getInstance()?.doLayout()
|
|
||||||
const storage = window.localStorage.getItem('tableStorage') ? JSON.parse(window.localStorage.getItem('tableStorage')) : {}
|
|
||||||
storage[this.storageName] = this.storageList
|
|
||||||
window.localStorage.setItem('tableStorage', JSON.stringify(storage))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
<style lang="scss" scoped>
|
|
||||||
.table-cloumn-setting-popper{
|
|
||||||
.setting-row-content{
|
|
||||||
max-height: 600px;
|
|
||||||
overflow-y: auto;
|
|
||||||
.setting-row{
|
|
||||||
height: 30px;
|
|
||||||
line-height: 30px;
|
|
||||||
.el-icon-s-operation{
|
|
||||||
cursor: move;
|
|
||||||
font-size: 16px;
|
|
||||||
margin-right: 8px;
|
|
||||||
}
|
|
||||||
.label{
|
|
||||||
margin-right: 8px;
|
|
||||||
}
|
|
||||||
.btn{
|
|
||||||
padding: 4px!important;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.xd-table{
|
|
||||||
width:100%;
|
|
||||||
height:100%;
|
|
||||||
position: relative;
|
|
||||||
.el-icon-setting{
|
|
||||||
position: absolute;
|
|
||||||
right: 7px;
|
|
||||||
top: 5px;
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
.table-operate-btn-content{
|
|
||||||
// width: calc(100% - 40px);
|
|
||||||
width: 100%;
|
|
||||||
// min-height: 28px; // 给一个最低的高度,防止没有插槽,右侧icon被吞
|
|
||||||
min-height: 40px; // 给一个最低的高度,防止没有插槽,右侧icon被吞
|
|
||||||
.operate-btn-content {
|
|
||||||
display: flex;
|
|
||||||
justify-content: space-between;
|
|
||||||
align-items: center;
|
|
||||||
min-height: 28px;
|
|
||||||
padding-bottom: 6px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.drag-ghost { background-color: #e7e7e77d; }
|
|
||||||
.drag-chosen { background-color: #e7e7e77d; }
|
|
||||||
|
|
||||||
.pagination-container{
|
|
||||||
padding: 0px 20px !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
</style>
|
|
||||||
|
|
||||||
|
|
||||||
@ -1,5 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="xd-table">
|
<div class="xd-table" :id="tableId">
|
||||||
|
|
||||||
<div class="table-operate-btn-content" v-show="showOperateButton">
|
<div class="table-operate-btn-content" v-show="showOperateButton">
|
||||||
<!-- toolbar -->
|
<!-- toolbar -->
|
||||||
@ -168,8 +168,6 @@
|
|||||||
<el-button size="mini" @click="openTbShowTplDlg = false">关 闭</el-button>
|
<el-button size="mini" @click="openTbShowTplDlg = false">关 闭</el-button>
|
||||||
</div>
|
</div>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
@ -256,10 +254,11 @@ export default {
|
|||||||
|
|
||||||
|
|
||||||
// 增加图层
|
// 增加图层
|
||||||
var tbBody1=document.getElementsByClassName("el-table__body-wrapper")[0];
|
var xdTableObj = document.getElementById(vnode.context.tableId);
|
||||||
|
var tbBody1=xdTableObj.getElementsByClassName("el-table__body-wrapper")[0];
|
||||||
var selDiv = document.createElement("div");
|
var selDiv = document.createElement("div");
|
||||||
selDiv.style.cssText = "position:absolute;width:0px;height:0px;font-size:0px;margin:0px;padding:0px;border:2px solid #409eff;background-color:#d9ecff;z-index:1000;filter:alpha(opacity:60);opacity:0.6;display:none;";
|
selDiv.style.cssText = "position:absolute;width:0px;height:0px;font-size:0px;margin:0px;padding:0px;border:2px solid #409eff;background-color:#d9ecff;z-index:1000;filter:alpha(opacity:60);opacity:0.6;display:none;";
|
||||||
selDiv.id = "selectDiv";
|
selDiv.id = "selectDiv-"+vnode.context.tableId;
|
||||||
tbBody1.appendChild(selDiv);
|
tbBody1.appendChild(selDiv);
|
||||||
|
|
||||||
// 表格对象
|
// 表格对象
|
||||||
@ -315,7 +314,8 @@ export default {
|
|||||||
//重置选中css
|
//重置选中css
|
||||||
for (var i = 0; i < fileNodes.length; i++) {
|
for (var i = 0; i < fileNodes.length; i++) {
|
||||||
if (fileNodes[i].className.indexOf("el-table__cell") != -1) {
|
if (fileNodes[i].className.indexOf("el-table__cell") != -1) {
|
||||||
fileNodes[i].className = "el-table__cell";
|
// fileNodes[i].className = "el-table__cell";
|
||||||
|
fileNodes[i].classList.remove("seled");
|
||||||
selList.push(fileNodes[i]);
|
selList.push(fileNodes[i]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -360,8 +360,6 @@ export default {
|
|||||||
if (sl > _l && st > _t && selList[i].offsetLeft < _l + _w && selList[i].offsetTop < _t + _h) {
|
if (sl > _l && st > _t && selList[i].offsetLeft < _l + _w && selList[i].offsetTop < _t + _h) {
|
||||||
if (selList[i].className.indexOf("seled") == -1) {
|
if (selList[i].className.indexOf("seled") == -1) {
|
||||||
selList[i].className = selList[i].className + " seled";
|
selList[i].className = selList[i].className + " seled";
|
||||||
// console.log("===>tst==i>",i);
|
|
||||||
|
|
||||||
const cellInfo=getCellPosition(selList[i]);
|
const cellInfo=getCellPosition(selList[i]);
|
||||||
vnode.context.multipleSelection.push(cellInfo);
|
vnode.context.multipleSelection.push(cellInfo);
|
||||||
|
|
||||||
@ -375,7 +373,9 @@ export default {
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (selList[i].className.indexOf("seled") != -1 ) {
|
if (selList[i].className.indexOf("seled") != -1 ) {
|
||||||
selList[i].className = "el-table__cell";
|
// selList[i].className = "el-table__cell";
|
||||||
|
selList[i].classList.remove("seled");
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -469,9 +469,10 @@ export default {
|
|||||||
document.onmouseup = function () {
|
document.onmouseup = function () {
|
||||||
//把鼠标移动事初始化
|
//把鼠标移动事初始化
|
||||||
document.onmousemove=null;
|
document.onmousemove=null;
|
||||||
var selDiv=document.getElementById("selectDiv");
|
var xdTableObj = document.getElementById(vnode.context.tableId);
|
||||||
|
var selDiv=document.getElementById("selectDiv-"+vnode.context.tableId);
|
||||||
if (selDiv) {
|
if (selDiv) {
|
||||||
document.getElementsByClassName("el-table__body-wrapper")[0].removeChild(selDiv);
|
xdTableObj.getElementsByClassName("el-table__body-wrapper")[0].removeChild(selDiv);
|
||||||
}
|
}
|
||||||
selList = null, _x = null, _y = null, selDiv = null, startX = null, startY = null, evt = null;
|
selList = null, _x = null, _y = null, selDiv = null, startX = null, startY = null, evt = null;
|
||||||
vnode.context.mouseflag = false;
|
vnode.context.mouseflag = false;
|
||||||
@ -484,6 +485,7 @@ export default {
|
|||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
tableId:"XdTable"+Math.random().toString(36).substring(3,10),
|
||||||
// 弹出层标题
|
// 弹出层标题
|
||||||
title: "显示/隐藏",
|
title: "显示/隐藏",
|
||||||
// 是否显示弹出层
|
// 是否显示弹出层
|
||||||
@ -528,7 +530,6 @@ export default {
|
|||||||
currentCellInfo:null,
|
currentCellInfo:null,
|
||||||
currentSelectStr:null,
|
currentSelectStr:null,
|
||||||
|
|
||||||
|
|
||||||
// 表格个性化记忆配置
|
// 表格个性化记忆配置
|
||||||
isNeedDbSaveTpl:false,
|
isNeedDbSaveTpl:false,
|
||||||
fullUrl:null,
|
fullUrl:null,
|
||||||
@ -571,6 +572,9 @@ export default {
|
|||||||
this.tableDom=this.getTableDom();
|
this.tableDom=this.getTableDom();
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
getUUID() {
|
||||||
|
return Math.random().toString(36).substring(3,10);
|
||||||
|
},
|
||||||
setTbShowTpl(){
|
setTbShowTpl(){
|
||||||
this.openTbShowTplDlg=true;
|
this.openTbShowTplDlg=true;
|
||||||
},
|
},
|
||||||
@ -978,10 +982,9 @@ export default {
|
|||||||
|
|
||||||
|
|
||||||
:deep .seled{
|
:deep .seled{
|
||||||
// background-color: #f3f3f3;
|
background-color: #d9ecff7d !important;
|
||||||
// background-color: #d0d0d0;
|
color: black;
|
||||||
background-color: #dcdcdc!important;
|
font-weight: 600;
|
||||||
// background-color: #f00202!important;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -106,7 +106,7 @@
|
|||||||
<div>扫二维码下载 探路国际速运APP</div>
|
<div>扫二维码下载 探路国际速运APP</div>
|
||||||
</div>
|
</div>
|
||||||
<div style="width: 100%;height: 100%;text-align:center;">
|
<div style="width: 100%;height: 100%;text-align:center;">
|
||||||
<QrCodeImage width="220" height="220" style="width: 220px;margin:auto" id="shareQrCodeImage" :text="appUrl" logoImage="@/assets/logo/short_logo.png"/>
|
<QrCodeImage width="220" height="220" style="width: 220px;margin:auto" id="shareQrCodeImage" :text="appUrl" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
|
|||||||
@ -287,6 +287,12 @@ export default {
|
|||||||
ownerSiteCode: [
|
ownerSiteCode: [
|
||||||
{ required: true, message: "所属网点不能为空", trigger: "blur" }
|
{ required: true, message: "所属网点不能为空", trigger: "blur" }
|
||||||
],
|
],
|
||||||
|
ownerSiteCode: [
|
||||||
|
{ required: true, message: "部门不能为空", trigger: "blur" }
|
||||||
|
],
|
||||||
|
ownerSiteCode: [
|
||||||
|
{ required: true, message: "角色不能为空", trigger: "blur" }
|
||||||
|
],
|
||||||
password: [
|
password: [
|
||||||
{ required: true, message: "员工密码不能为空", trigger: "blur" },
|
{ required: true, message: "员工密码不能为空", trigger: "blur" },
|
||||||
{ min: 5, max: 20, message: '员工密码长度必须介于 5 和 20 之间', trigger: 'blur' }
|
{ min: 5, max: 20, message: '员工密码长度必须介于 5 和 20 之间', trigger: 'blur' }
|
||||||
@ -316,12 +322,12 @@ export default {
|
|||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
this.initData();
|
this.initData();
|
||||||
// this.getConfigKey("sys.user.initPassword").then(response => {
|
this.getConfigKey("sys.user.initPassword").then(response => {
|
||||||
// if(this.userId == null) {
|
if(this.userId == null) {
|
||||||
// this.initPassword = response.msg;
|
this.initPassword = response.msg;
|
||||||
// this.form.password = this.initPassword;
|
// this.form.password = this.initPassword;
|
||||||
// }
|
}
|
||||||
// });
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
methods: {
|
methods: {
|
||||||
@ -335,7 +341,7 @@ export default {
|
|||||||
this.roleOptions = response.roles;
|
this.roleOptions = response.roles;
|
||||||
this.open = true;
|
this.open = true;
|
||||||
this.title = "添加用户";
|
this.title = "添加用户";
|
||||||
// this.form.password = this.initPassword;
|
this.form.password = this.initPassword;
|
||||||
});
|
});
|
||||||
}else{
|
}else{
|
||||||
getUser(this.userId).then(response => {
|
getUser(this.userId).then(response => {
|
||||||
|
|||||||
@ -57,7 +57,7 @@
|
|||||||
<el-tag v-if="scope.row.uploadStatus==-1" type="danger">下单异常</el-tag>
|
<el-tag v-if="scope.row.uploadStatus==-1" type="danger">下单异常</el-tag>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column :label="$t('异常信息')" align="left" prop="errorInfo" min-width="120" :show-overflow-tooltip="true" >
|
<el-table-column :label="$t('异常信息')" align="center" prop="errorInfo" min-width="300" :show-overflow-tooltip="true" >
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span v-if="scope.row.uploadStatus==-1" style="color:red">{{ scope.row.errorInfo }}</span>
|
<span v-if="scope.row.uploadStatus==-1" style="color:red">{{ scope.row.errorInfo }}</span>
|
||||||
<span v-if="scope.row.uploadStatus==1">下单成功</span>
|
<span v-if="scope.row.uploadStatus==1">下单成功</span>
|
||||||
@ -71,7 +71,7 @@
|
|||||||
<el-table-column :label="$t('产品类型')" align="center" prop="productType" min-width="80" :show-overflow-tooltip="true"/>
|
<el-table-column :label="$t('产品类型')" align="center" prop="productType" min-width="80" :show-overflow-tooltip="true"/>
|
||||||
|
|
||||||
<el-table-column :label="$t('取件方式')" align="center" prop="pickupMethod" width="100" />
|
<el-table-column :label="$t('取件方式')" align="center" prop="pickupMethod" width="100" />
|
||||||
<el-table-column :label="$t('快递员')" align="center" prop="operateEmployeeCode" min-width="100"/>
|
<el-table-column :label="$t('取件员/操作员')" align="center" prop="operateEmployeeCode" min-width="100"/>
|
||||||
<el-table-column :label="$t('报关方式')" align="center" prop="customsEclaration" min-width="80" />
|
<el-table-column :label="$t('报关方式')" align="center" prop="customsEclaration" min-width="80" />
|
||||||
<el-table-column :label="$t('清关方式')" align="center" prop="customsClear" min-width="80" />
|
<el-table-column :label="$t('清关方式')" align="center" prop="customsClear" min-width="80" />
|
||||||
<el-table-column :label="$t('回款联系人')" align="center" prop="payee" min-width="100" />
|
<el-table-column :label="$t('回款联系人')" align="center" prop="payee" min-width="100" />
|
||||||
@ -95,6 +95,9 @@
|
|||||||
<el-table-column :label="$t('寄件区')" align="center" prop="sendCounty" min-width="80" :show-overflow-tooltip="true"/>
|
<el-table-column :label="$t('寄件区')" align="center" prop="sendCounty" min-width="80" :show-overflow-tooltip="true"/>
|
||||||
<el-table-column :label="$t('寄件地址')" align="center" prop="sendAddress" min-width="80" :show-overflow-tooltip="true"/>
|
<el-table-column :label="$t('寄件地址')" align="center" prop="sendAddress" min-width="80" :show-overflow-tooltip="true"/>
|
||||||
|
|
||||||
|
<el-table-column :label="$t('月结客户')" align="center" prop="custNo" min-width="80" :show-overflow-tooltip="true"/>
|
||||||
|
<el-table-column :label="$t('寄件/签收短信')" align="center" prop="blMessage" min-width="80" :show-overflow-tooltip="true"/>
|
||||||
|
|
||||||
<el-table-column :label="$t('货物名称')" align="center" prop="goodsInfo" min-width="80" :show-overflow-tooltip="true"/>
|
<el-table-column :label="$t('货物名称')" align="center" prop="goodsInfo" min-width="80" :show-overflow-tooltip="true"/>
|
||||||
<el-table-column :label="$t('包装类型')" align="center" prop="packType" min-width="80" />
|
<el-table-column :label="$t('包装类型')" align="center" prop="packType" min-width="80" />
|
||||||
<el-table-column :label="$t('件数')" align="center" prop="parcelQty" min-width="80" />
|
<el-table-column :label="$t('件数')" align="center" prop="parcelQty" min-width="80" />
|
||||||
@ -456,12 +459,14 @@ export default {
|
|||||||
// 运单号 收件人 收件电话 收件国 收件省 收件市 收件区 收件公司 收件地址
|
// 运单号 收件人 收件电话 收件国 收件省 收件市 收件区 收件公司 收件地址
|
||||||
// 寄件人 寄件电话 寄件国 寄件省 寄件市 寄件区 寄件公司 寄件地址
|
// 寄件人 寄件电话 寄件国 寄件省 寄件市 寄件区 寄件公司 寄件地址
|
||||||
// 线路 产品类型 报关方式 清关方式 快递员 货物名称 包装类型 件数 实际重量 体积
|
// 线路 产品类型 报关方式 清关方式 快递员 货物名称 包装类型 件数 实际重量 体积
|
||||||
// 取件方式 派送方式 运费 支付方式 月结账号 回款联系人 销售联系人 费用备注
|
// 取件方式 派送方式 运费 支付方式 月结客户 回款联系人 销售联系人 费用备注
|
||||||
|
// 取件员/操作员
|
||||||
|
// 寄件/签收短信
|
||||||
let rowIndex=element['__rowNum__']
|
let rowIndex=element['__rowNum__']
|
||||||
let orderData={
|
let orderData={
|
||||||
billCode: element['运单号'],
|
billCode: element['运单号'],
|
||||||
sendDate: parseTime(new Date()),
|
sendDate: parseTime(new Date()),
|
||||||
custNo: element['月结账号'],
|
custNo: element['月结客户'],
|
||||||
receiveName: element['收件人'],
|
receiveName: element['收件人'],
|
||||||
receiveCompany:element['收件公司'],
|
receiveCompany:element['收件公司'],
|
||||||
receiveMobile:element['收件电话'],
|
receiveMobile:element['收件电话'],
|
||||||
@ -495,8 +500,10 @@ export default {
|
|||||||
feeRemark:element['费用备注'],
|
feeRemark:element['费用备注'],
|
||||||
payee: element['回款联系人'],
|
payee: element['回款联系人'],
|
||||||
salesmen: element['销售联系人'],
|
salesmen: element['销售联系人'],
|
||||||
operateEmployeeCode: element['快递员'],
|
operateEmployeeCode: element['取件员/操作员'],
|
||||||
remark: element['录单备注'],
|
remark: element['录单备注'],
|
||||||
|
blMessage: element['寄件/签收短信'],
|
||||||
|
|
||||||
uploadStatus: 0,
|
uploadStatus: 0,
|
||||||
errorInfo:'',
|
errorInfo:'',
|
||||||
}
|
}
|
||||||
|
|||||||
@ -665,6 +665,7 @@ export default {
|
|||||||
billCode:null,
|
billCode:null,
|
||||||
|
|
||||||
openTraceInfo:false,
|
openTraceInfo:false,
|
||||||
|
currentTraceBillItem:null,
|
||||||
currentTraceBillCode:null,
|
currentTraceBillCode:null,
|
||||||
dateRange:[],
|
dateRange:[],
|
||||||
|
|
||||||
@ -891,8 +892,10 @@ export default {
|
|||||||
|
|
||||||
return '';
|
return '';
|
||||||
},
|
},
|
||||||
|
|
||||||
handleShowTraceInfo(row){
|
handleShowTraceInfo(row){
|
||||||
this.currentTraceBillCode=row.billCode;
|
this.currentTraceBillCode=row.billCode;
|
||||||
|
this.currentTraceBillItem=row;
|
||||||
this.openTraceInfo=true;
|
this.openTraceInfo=true;
|
||||||
},
|
},
|
||||||
/** 查询运单列表列表 */
|
/** 查询运单列表列表 */
|
||||||
|
|||||||
@ -665,6 +665,7 @@ export default {
|
|||||||
billCode:null,
|
billCode:null,
|
||||||
|
|
||||||
openTraceInfo:false,
|
openTraceInfo:false,
|
||||||
|
currentTraceBillItem:null,
|
||||||
currentTraceBillCode:null,
|
currentTraceBillCode:null,
|
||||||
dateRange:[],
|
dateRange:[],
|
||||||
|
|
||||||
|
|||||||
@ -621,8 +621,6 @@ import WaybillDetailReadOnly from '@/views/emis/emisWaybill/waybillDetailReadOnl
|
|||||||
import TraceWaybillDetailView from '@/views/emis/customerService/traceWaybillDetailView.vue';
|
import TraceWaybillDetailView from '@/views/emis/customerService/traceWaybillDetailView.vue';
|
||||||
|
|
||||||
|
|
||||||
import XdTableAdv from "@/components/XdTable/index_adv.vue";
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
import {timeDiffTime,timeFormat} from '@/utils/dateUtils'
|
import {timeDiffTime,timeFormat} from '@/utils/dateUtils'
|
||||||
@ -654,8 +652,6 @@ export default {
|
|||||||
|
|
||||||
WaybillDetailReadOnly,
|
WaybillDetailReadOnly,
|
||||||
|
|
||||||
XdTableAdv
|
|
||||||
|
|
||||||
},
|
},
|
||||||
dicts: ['emis_qujian_fangshi','emis_declare_mode','emis_customs_clear',
|
dicts: ['emis_qujian_fangshi','emis_declare_mode','emis_customs_clear',
|
||||||
'emis_tab_packing_type','emis_tab_dispatch_mode','emis_payment_type',
|
'emis_tab_packing_type','emis_tab_dispatch_mode','emis_payment_type',
|
||||||
|
|||||||
@ -1720,9 +1720,11 @@ methods: {
|
|||||||
}
|
}
|
||||||
|
|
||||||
let totalFee=0;
|
let totalFee=0;
|
||||||
|
if(this.form.feeItems&&this.form.feeItems.length>0){
|
||||||
this.form.feeItems.forEach(item=>{
|
this.form.feeItems.forEach(item=>{
|
||||||
totalFee=totalFee+parseInt(item.realFee);
|
totalFee=totalFee+parseInt(item.realFee);
|
||||||
});
|
});
|
||||||
|
}
|
||||||
this.form.freight = totalFee;
|
this.form.freight = totalFee;
|
||||||
},
|
},
|
||||||
// 计算体积重量
|
// 计算体积重量
|
||||||
|
|||||||
@ -1720,9 +1720,11 @@ methods: {
|
|||||||
}
|
}
|
||||||
|
|
||||||
let totalFee=0;
|
let totalFee=0;
|
||||||
|
if(this.form.feeItems&&this.form.feeItems.length>0){
|
||||||
this.form.feeItems.forEach(item=>{
|
this.form.feeItems.forEach(item=>{
|
||||||
totalFee=totalFee+parseInt(item.realFee);
|
totalFee=totalFee+parseInt(item.realFee);
|
||||||
});
|
});
|
||||||
|
}
|
||||||
this.form.freight = totalFee;
|
this.form.freight = totalFee;
|
||||||
},
|
},
|
||||||
// 计算体积重量
|
// 计算体积重量
|
||||||
|
|||||||
@ -60,6 +60,7 @@
|
|||||||
border
|
border
|
||||||
ref="singleSelectTable"
|
ref="singleSelectTable"
|
||||||
size="small"
|
size="small"
|
||||||
|
storageName="emisTransferList_main"
|
||||||
:data="emisTransferList"
|
:data="emisTransferList"
|
||||||
:showSearch.sync="showSearch"
|
:showSearch.sync="showSearch"
|
||||||
:queryParams="queryParams"
|
:queryParams="queryParams"
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user