diff --git a/jero-web/src/mixins/tableheader.js b/jero-web/src/mixins/tableheader.js
new file mode 100644
index 000000000..b73712d24
--- /dev/null
+++ b/jero-web/src/mixins/tableheader.js
@@ -0,0 +1,278 @@
+import _ from 'lodash'
+
+const events = {
+ start: 'mousedown',
+ move: 'mousemove',
+ stop: 'mouseup'
+}
+let istableAll = [] // 单个页面存放多个表格的columns
+var tablecolumnsAll = []
+var tablecolumnsKey = ''
+let tableminColumn = [] // 存放设置最小宽的列及宽度
+const tableDragHandler = {
+ name: 'nio-drag-handler',
+ //获取混入的方法(重新设置表头宽度)
+ inject: ['onResizeColumn'],
+ props: {
+ column: { type: Object, required: true },
+ minWidth: { type: Number, required: true }
+ },
+
+ data() {
+ return {
+ dragging: false,
+ thWidth: 0,// 列头的宽度,用于计算
+ startX: 0,
+ moveEvent: {
+ remove: function() {
+ }
+ },
+ stopEvent: {
+ remove: function() {
+ }
+ }
+ }
+ },
+ //销毁监听
+ tablebeforeDestroy() {
+ this.removeEvents()
+ },
+ methods: {
+ //鼠标开始拖拽
+ tablehandleMouseDown(e) {
+ e.stopPropagation()
+ e.preventDefault()
+ this.tablehandleStart(e)
+ },
+
+ tablehandleStart(e) {
+ console.log(e)
+ this.dragging = true
+ this.removeEvents()
+ this.thWidth = this.$el.parentNode.getBoundingClientRect().width
+ if (e instanceof MouseEvent && e.which !== 1) {
+ return
+ }
+ if (e.stopPropagation) e.stopPropagation()
+ this.startX = e.pageX
+ this.moveEvent = addEventListenerWrap(document.documentElement, events.move, this.handleMove)
+ this.stopEvent = addEventListenerWrap(document.documentElement, events.stop, this.handleStop)
+ },
+
+ handleMove(e) {
+ this.updateWidth(e)
+ },
+ handleStop(e) {
+ this.dragging = false
+ this.updateWidth(e)
+ this.removeEvents()
+ },
+
+ updateWidth(e) {
+ let pageX = e.pageX
+ const tmpDeltaX = this.startX - pageX
+ let w = Math.max(this.thWidth - tmpDeltaX, this.minWidth)
+ w = Math.min(w, Infinity)
+ this.onResizeColumn(w, this.column)
+ },
+
+ removeEvents() {
+ this.moveEvent.remove()
+ this.stopEvent.remove()
+ }
+ },
+ //渲染div 绑定拖拽
+ render(h) {
+ const line = h('div', { class: 'nio-drag-handler-line' }, [])
+ return h('div', { class: 'nio-drag-handler', on: { mousedown: this.tablehandleMouseDown } }, [line])
+ }
+}
+const tableResizeHeaderOne = function(val, name ,minWidths) {
+ tablecolumnsAll = val
+ tablecolumnsKey = name
+ tableminColumn = minWidths
+ if(istableAll.indexOf(val) === -1){
+ istableAll.push(val)
+ }
+ return (h, props, children) => {
+ const { key, column, ...restProps } = props
+ let col = {}
+ // 处理多级表头
+ // col = getRenderCoL(key, val)
+ col = getRenderCoL(key, tablecolumnsAll)
+ let content = [].concat(children)
+ if (col) {
+ let handlerVNode;
+ if(tableminColumn && minWidths !== undefined && tableminColumn.length>0){
+ // 存放所有需要手动设置最小宽度的列的dataIndex
+ let colsdataIndex = []
+ tableminColumn.forEach((item)=>{
+ colsdataIndex.push(item[0].dataIndex)
+ handlerVNode = h(tableDragHandler, {
+ props: {
+ width: col.width,
+ minWidth: Math.min(item[1]),
+ column: col
+ }
+ }, [])
+ content = content.concat(
+ handlerVNode
+ )
+ })
+ // 不需要手动设置最小宽度的列
+ if(colsdataIndex.indexOf(col.dataIndex) === -1){
+ handlerVNode = h(tableDragHandler, {
+ props: {
+ width: col.width,
+ minWidth: Math.min(col.width, 100),
+ column: col
+ }
+ }, [])
+ content = content.concat(
+ handlerVNode
+ )
+ }
+ }else{
+ handlerVNode = h(tableDragHandler, {
+ props: {
+ width: col.width,
+ minWidth: Math.min(col.width, 100),
+ column: col
+ }
+ }, [])
+ content = content.concat(
+ handlerVNode
+ )
+ }
+ }
+ return h('th', {
+ key,
+ props: { col },
+ ...Object.assign({}, restProps, { class: (restProps.class || '') + ' nio-header-th' })
+ }, content)
+ }
+}
+export const tableResizeHeader = {
+ methods: {
+ tabledrag(columns, name ,minWidths) {
+ console.log(minWidths)
+ return {
+ header: {
+ // minWidths : 最小宽度 => [[需要设置的列,最小宽],[需要设置的列,最小宽],...]
+ cell: tableResizeHeaderOne(columns, name,minWidths)
+ }
+ }
+ }
+ }
+}
+const getRenderCoL = (key, tbCols) => {
+ let result = ''
+ _.forEach(tbCols, (item) => {
+ if (item.children) {
+ result = getRenderCoL(key, item.children)
+ return !result
+ } else {
+ const k = item.dataIndex || item.key
+ if (k === key) {
+ result = item
+ return false
+ }
+ }
+ })
+ return result
+}
+//拖拽的节流方法
+const throttle2 = (fn, delay) => {
+ let valid = true
+ return (...args) => {
+ if (!valid) {
+ return
+ }
+ valid = false
+ setTimeout(() => {
+ fn(...args)
+ valid = true
+ }, delay)
+ }
+}
+//对table组件进行重构的核心方法组件
+
+
+//监听鼠标移动的方法
+function addEventListenerWrap(target, eventType, cb) {
+ if (target && target.addEventListener) {
+ target.addEventListener(eventType, cb)
+ }
+
+ return {
+ remove: () => {
+ if (target && target.removeEventListener) {
+ target.removeEventListener(eventType, cb)
+ }
+ }
+ }
+}
+
+//在table组件中混入的一个方法 provide => onResizeColumn
+//目的是在table重写中(tableDragHandler方法)
+//可以用到构造的onResizeColumn方法(重新设置表头的宽度)
+export const tableResizeColumnProvide = {
+ name: 'ResizeColumnProvideMixin',
+ provide() {
+ return {
+ onResizeColumn: this.onResizeColumn
+ }
+ },
+
+ data() {
+ const onResizeColumn = throttle2(this._resizeColumn, 30)
+ return {
+ moving: false, //这个属性是为了在拖拽时 阻止表头触发排序的功能
+ onResizeColumn
+ }
+ },
+ methods: {
+ _resizeColumn(w, column) {
+ console.log(column)
+ istableAll.forEach(item=>{
+ item.forEach((i)=>{
+ if(i === column && i.dataIndex === column.dataIndex){
+ tablecolumnsAll = item
+ }
+ })
+ })
+ this.moving = true
+ let time = setTimeout(() => {
+ this.moving = false
+ clearTimeout(time)
+ }, 2000)
+ //在拖拽时找到对应表头 重新设置表头的宽度
+ let num = -1
+ let numOne = -1
+ for (let i = 0; i < tablecolumnsAll.length; i++) {
+ if (tablecolumnsAll[i].dataIndex === column.dataIndex) {
+ num = i
+ break
+ }
+ if (tablecolumnsAll[i].children && tablecolumnsAll[i].children.length > 0) {
+ for (let j = 0; j < tablecolumnsAll[i].children.length; j++) {
+ if (tablecolumnsAll[i].children[j].dataIndex === column.dataIndex) {
+ num = i
+ numOne = j
+ break
+ }
+ }
+ }
+ }
+ // const matchedIndex = columns.findIndex(item => item.dataIndex === column.dataIndex)
+ // console.log(matchedIndex)
+ // columns[matchedIndex].width = w
+ if (numOne > -1) {
+ tablecolumnsAll[num].children[numOne].width = w
+ } else {
+ tablecolumnsAll[num].width = w
+ }
+ this[tablecolumnsKey] = tablecolumnsAll
+ }
+ }
+}
\ No newline at end of file
diff --git a/jero-web/src/views/documentTools/documentComparison/components/initiateComparison.vue b/jero-web/src/views/documentTools/documentComparison/components/initiateComparison.vue
index 30c4b9de6..ad0dbe1b0 100644
--- a/jero-web/src/views/documentTools/documentComparison/components/initiateComparison.vue
+++ b/jero-web/src/views/documentTools/documentComparison/components/initiateComparison.vue
@@ -42,19 +42,7 @@
-