Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
P
patzn-cloud-web-back-soil
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wangweidong
patzn-cloud-web-back-soil
Commits
0f83ee75
Commit
0f83ee75
authored
Oct 19, 2020
by
lichengming
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改了样品管理
parent
7c01c8e8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
782 additions
and
225 deletions
+782
-225
soil-sample.js
api/soil/soil-sample.js
+9
-1
PTVXETableTemp.vue
components/table/PTVXETableTemp.vue
+565
-0
SoilSampleManage.vue
pages/soil-sample-manage/SoilSampleManage.vue
+2
-2
SampleParpareApply.vue
.../soil-sample-manage/backups-manage/SampleParpareApply.vue
+75
-89
SampleBackupsManage.vue
...-sample-manage/backups-manage/tab/SampleBackupsManage.vue
+127
-114
SampleDisposeManage.vue
...-sample-manage/sample-dispose/tab/SampleDisposeManage.vue
+2
-11
SampleSurplusManage.vue
...-sample-manage/surplus-manage/tab/SampleSurplusManage.vue
+0
-8
global.js
plugins/global.js
+2
-0
No files found.
api/soil/soil-sample.js
View file @
0f83ee75
...
...
@@ -21,5 +21,13 @@ export default {
http
.
put
(
'soil/v1/receive_location/'
+
data
.
id
,
data
.
obj
).
then
(
res
=>
res
),
// 试验室领样操作
takeSample
:
data
=>
http
.
post
(
'soil/v1/sample/take_sample?ids='
+
data
).
then
(
res
=>
res
)
http
.
post
(
'soil/v1/sample/take_sample?ids='
+
data
).
then
(
res
=>
res
),
// 备样管理提交申请
appleHandle
:
data
=>
http
.
post
(
'soil/v1/sample_backup/apply_handle'
,
data
).
then
(
res
=>
res
),
// 样品处理分页列表
pageBackupHandleCheck
:
data
=>
http
.
post
(
'soil/v1/sample_backup/page_backup_handle_check'
,
data
)
.
then
(
res
=>
res
)
}
components/table/PTVXETableTemp.vue
0 → 100644
View file @
0f83ee75
<
template
>
<div>
<vxe-grid
ref=
"xTable"
:resizable=
"(resizable === undefined || resizable === true)?true:false"
:column-key=
"tableName!==undefined?true:false"
:highlight-current-row=
"
hideCheckbox!==undefined|| hideCheckbox === true"
:height=
"newTableHeight"
:loading=
"loading"
:auto-resize=
"true"
:scroll-y=
"setOptimization === undefined?defOptimization:setOptimization"
:scroll-x=
"setXOptimization === undefined?defXOptimization:setXOptimization"
size=
"mini"
:checkbox-config=
"selectConfig"
border
@
checkbox-all=
"_selectAll"
stripe
@
checkbox-change=
"_selectRowChange"
show-overflow
@
cell-click=
"_cellChange"
show-header-overflow
@
cell-dblclick=
"_dbChange"
@
radio-change=
"_radioChange"
:cell-class-name=
"_tableCellClassName"
:row-class-name=
"_tableRowClassName"
:edit-config=
"isEdit !== undefined?editConfig:null"
:radio-config=
"isRadio !== undefined?radioConfig:null"
:row-key=
"true"
:tooltip-config=
"
{enterable:true}"
:animat="false"
@scroll="_scroll"
>
<vxe-table-column
v-if=
"hideCheckbox===undefined || hideCheckbox === false"
type=
"checkbox"
fixed=
"left"
width=
"50"
align=
"center"
/>
<vxe-table-column
v-if=
"isRadio === true"
type=
"radio"
title=
"单选"
fixed=
"left"
align=
"center"
width=
"50"
/>
<vxe-table-column
v-if=
"!isNoOrder"
type=
"seq"
fixed=
"left"
title=
"序号"
width=
"50"
align=
"center"
/>
<slot></slot>
<vxe-table-column
:width=
"$optColWidth(iconMsg)"
v-if=
"$optColWidth(iconMsg)>0?true:false"
title=
"操作"
align=
"center"
fixed=
"right"
>
<template
slot-scope=
"scope"
>
<VXEIconList
:msg=
"iconMsg"
@
on-result-change=
"_iconClick"
:rowData=
"scope.row"
:rowIndex=
"scope.rowIndex"
></VXEIconList>
</
template
>
</vxe-table-column>
<slot
name=
"col"
></slot>
<!--自定义插槽 pager 插槽-->
<
template
v-slot:pager
>
<vxe-pager
v-if=
"hidePage === undefined"
:current-page=
"getPage.current"
:page-size=
"getPage.size"
:total=
"getPage.total"
:pageSizes=
"pageSizeOpts"
:background=
"true"
@
page-change=
"_pageSizeChange"
>
<template
v-slot:left
>
<i
@
click=
"_refreshPage"
class=
"el-icon-refresh page-refresh"
></i>
</
template
>
</vxe-pager>
</template>
</vxe-grid>
<!--自定义表格列-->
<div
style=
"position: absolute;right:0;top:0;z-index:2000"
>
<slot
name=
"setting"
></slot>
</div>
</div>
</template>
<
script
>
/**
* VXE-TABLE 通用 (单选,多选,双击,自定义操作列,自定义表格列)
* 临时使用,后期删除
* 最新的table
*/
import
VXEIconList
from
'../base/VXEIconList'
export
default
{
name
:
'PTVXETable'
,
components
:
{
VXEIconList
},
props
:
{
tableHeight
:
null
,
getPage
:
null
,
hidePage
:
null
,
clickValue
:
null
,
selectData
:
null
,
hideCheckbox
:
null
,
isReport
:
null
,
// 判断是否是报告
isDataInput
:
null
,
// 判断数据录入
isTask
:
null
,
// 判断是否是检测管理
isHandle
:
null
,
// 样品
tableName
:
null
,
// 该值存在,则支持自定义表格
iconMsg
:
null
,
pageColumns
:
null
,
isEdit
:
null
,
// 是否可编辑
setOptimization
:
null
,
// 加载滚动配置项
setXOptimization
:
null
,
// 加载滚动配置项(横向)
isRadio
:
null
,
// 是否是单选
isGC
:
null
,
// 国抽(抽样单管理)
isGroup
:
null
,
// 科室为化验室单元格变红色
isNoOrder
:
null
,
// 如果是true的话,则不显示序号这一列
pageSize
:
null
,
rows
:
null
,
resizable
:
null
// 是否允许列拖动
},
data
()
{
return
{
formId
:
''
,
extendsData
:
{},
loading
:
false
,
pageParams
:
{
page
:
1
,
rows
:
this
.
rows
!==
undefined
?
this
.
rows
:
this
.
$defRow
},
rowData
:
{},
checkData
:
[],
// 用于多选的高亮显示数据
sampleHandleValue
:
''
,
// 一系列配置
pageSizeOpts
:
this
.
pageSize
!==
undefined
?
this
.
pageSize
:
[
50
,
100
,
500
,
1000
],
// 默认的配置
defOptimization
:
this
.
$setYOptimization
,
defXOptimization
:
this
.
$setXOptimization
,
selectConfig
:
{
checkField
:
'checked'
,
trigger
:
'row'
},
editConfig
:
{
trigger
:
'click'
,
mode
:
'cell'
,
showIcon
:
true
,
autoClear
:
false
,
showStatus
:
true
},
// 单选的配置项
radioConfig
:
{
trigger
:
'row'
},
tableColCount
:
0
,
// 执行的次数
scrollLeft
:
0
}
},
computed
:
{
// 表格需要重新计算高度
newTableHeight
:
function
()
{
const
newVal
=
this
.
tableHeight
if
(
typeof
newVal
===
'number'
&&
this
.
hidePage
===
undefined
)
{
// 是数值,并且有分页的时候
return
newVal
-
35
}
else
{
// 非数值,不变
return
newVal
}
}
},
watch
:
{
// 监听数据
'getPage.records'
:
function
(
newVal
,
oldVal
)
{
this
.
_loadData
(
newVal
)
}
},
methods
:
{
// 滚动条位置
_scroll
(
data
)
{
this
.
scrollLeft
=
data
.
scrollLeft
},
_loadData
(
data
)
{
// 阻断 vue 对大数组的双向绑定,大数据性能翻倍提升
if
(
this
.
$refs
.
xTable
)
{
this
.
$refs
.
xTable
.
loadData
(
data
)
}
},
// 更新滚动条状态
_updateScroll
()
{
// 纵向滚动条滚动到顶部,否则会出现固定列空白的情况
this
.
$refs
.
xTable
.
scrollTo
(
this
.
scrollLeft
?
this
.
scrollLeft
:
1
,
1
)
},
// 刷新column 和刷新数据
_refreshColumn
()
{
this
.
$refs
.
xTable
.
refreshColumn
()
this
.
$refs
.
xTable
.
syncData
()
// 滚动条错位、固定列不同步
this
.
$refs
.
xTable
.
refreshScroll
()
},
// 重置column(使用此方法,重新渲染表格列,将会降低性能)
_loadColumn
(
userColumns
)
{
this
.
$nextTick
(()
=>
{
const
xTable
=
this
.
$refs
.
xTable
// eslint-disable-next-line no-unused-vars
const
{
fullColumn
,
tableColumn
}
=
xTable
.
getTableColumn
()
// 1)取列的头和尾,用于最后进行拼接
const
fullColumnHeader
=
[]
// 头+操作
const
fullColumnOther
=
[]
// 除了头和尾的其他部分
for
(
let
i
=
0
;
i
<
fullColumn
.
length
;
i
++
)
{
if
(
fullColumn
[
i
].
property
===
undefined
)
{
// 前几列(checkbox,radio,序号,操作等)
fullColumnHeader
.
push
(
fullColumn
[
i
])
}
}
// 2)根据userColumns 更换列顺序
for
(
let
i
=
0
;
i
<
userColumns
.
length
;
i
++
)
{
const
itemObj
=
this
.
$searchObjByKey
(
userColumns
[
i
].
key
,
fullColumn
,
'property'
)
if
(
itemObj
)
{
fullColumnOther
.
push
(
itemObj
)
}
}
// 3)三个数组进行拼接
const
fullColumnTemp
=
[...
fullColumnHeader
,
...
fullColumnOther
]
// 4)重载表格列
xTable
.
loadColumn
(
fullColumnTemp
)
})
},
_clearSelection
()
{
this
.
$nextTick
(
function
()
{
this
.
$refs
.
xTable
.
clearCheckboxRow
()
})
this
.
checkData
=
[]
if
(
this
.
hideCheckbox
===
undefined
||
this
.
hideCheckbox
===
false
)
{
if
(
this
.
selectData
===
undefined
)
{
this
.
$emit
(
'on-result-change'
,
'selectIds'
,
[])
}
else
{
this
.
$emit
(
'on-result-change'
,
'selectData'
,
[])
}
}
},
_checkAll
()
{
setTimeout
(()
=>
{
// 控制checkbox状态(加0s的延时才好用)
this
.
$refs
.
xTable
.
setAllCheckboxRow
(
true
)
// 全选当前界面的数据
this
.
_selectRowChange
({
selection
:
this
.
getPage
.
records
})
},
0
)
},
_pageSizeChange
(
row
)
{
switch
(
row
.
type
)
{
case
'size'
:
this
.
pageParams
.
page
=
1
this
.
pageParams
.
rows
=
row
.
pageSize
this
.
_pageParamsChange
()
break
case
'current'
:
this
.
_pageChange
(
row
.
currentPage
)
break
}
},
// 底部刷新page
_refreshPage
()
{
this
.
_pageParamsChange
()
},
_pageChange
(
page
)
{
this
.
pageParams
.
page
=
page
this
.
_pageParamsChange
()
},
_pageParamsChange
()
{
this
.
$emit
(
'on-result-change'
,
'changeSize'
)
},
_searchParams
()
{
const
data
=
{}
const
serData
=
this
.
$serialize
(
this
.
formId
)
Object
.
assign
(
data
,
serData
,
this
.
extendsData
)
if
(
this
.
hidePage
===
undefined
)
{
return
this
.
$extend
(
data
,
this
.
pageParams
)
}
else
{
return
this
.
$extend
(
data
)
}
},
_page
(
formId
,
uri
,
extendsData
)
{
this
.
loading
=
true
if
(
this
.
tableName
&&
this
.
tableColCount
===
0
)
{
// tableName存在-----支持自定义表格,只执行一次
this
.
_settingCol
(
formId
,
uri
,
extendsData
)
this
.
tableColCount
=
this
.
tableColCount
+
1
// 递增1
}
else
{
this
.
_pageTemp
(
formId
,
uri
,
extendsData
)
}
},
// 根据tableName 获取 column
_getColByTableName
()
{
this
.
_settingCol
(
''
,
'/'
,
''
,
{
col
:
true
})
},
// param 为临时参数,不请求接口,但是需要返回column用
_settingCol
(
formId
,
uri
,
extendsData
,
param
)
{
if
(
uri
)
{
// 为了避免uri为undefined
this
.
$store
.
dispatch
(
'SysTableColumn/getByTableName'
,
this
.
tableName
)
.
then
(()
=>
{
// 查询用户下的表格数据
const
userTableCode
=
this
.
$store
.
state
.
SysTableColumn
.
model
let
userColumns
=
this
.
pageColumns
// 默认值
// 自定义列接口报错,不能影响其他的接口
if
(
userTableCode
!==
undefined
)
{
userColumns
=
this
.
$tableColumns
(
this
.
pageColumns
,
userTableCode
)
}
this
.
$emit
(
'on-result-change'
,
'table-col'
,
userColumns
)
// 重置表格列顺序
this
.
_loadColumn
(
userColumns
)
if
(
!
param
)
{
this
.
_pageTemp
(
formId
,
uri
,
extendsData
)
}
})
}
},
// 临时
_pageTemp
(
formId
,
uri
,
extendsData
)
{
this
.
formId
=
formId
if
(
extendsData
)
{
this
.
extendsData
=
extendsData
}
this
.
_requestPage
(
uri
,
this
.
_searchParams
())
},
// 重新请求page接口
_requestPage
(
uri
,
params
)
{
this
.
$store
.
dispatch
(
uri
,
params
).
then
(()
=>
{
this
.
loading
=
false
this
.
$emit
(
'on-result-change'
,
'page'
,
''
)
this
.
_refreshColumn
()
// 每次请求完清空上次的选择
this
.
_clearSelection
()
// 更新滚动条的状态
this
.
_updateScroll
()
})
},
// 多选
_selectAll
:
function
(
data
)
{
this
.
_selectRowChange
(
data
)
},
_selectRowChange
(
data
)
{
if
(
this
.
hideCheckbox
===
undefined
||
this
.
hideCheckbox
===
false
)
{
const
selData
=
data
.
selection
this
.
checkData
=
selData
// 默认返回的是id数组
if
(
this
.
selectData
===
undefined
)
{
const
idList
=
[]
for
(
let
i
=
0
;
i
<
selData
.
length
;
i
++
)
{
idList
.
push
(
selData
[
i
].
id
)
}
this
.
$emit
(
'on-result-change'
,
'selectIds'
,
idList
)
}
else
{
// 有selectData参数时执行
this
.
$emit
(
'on-result-change'
,
'selectData'
,
selData
)
}
}
},
// 整行变色
_tableRowClassName
({
row
,
rowIndex
})
{
if
(
this
.
checkData
.
length
!==
0
)
{
/* 选中的进行高亮显示 */
const
index
=
this
.
checkData
.
indexOf
(
row
)
if
(
index
!==
-
1
)
{
return
'high-light-row'
}
}
else
{
/* 没选中的根据页面逻辑变色 */
// eslint-disable-next-line no-lonely-if
if
(
this
.
isHandle
!==
undefined
&&
row
.
endDate
)
{
// 样品待处理界面
if
(
this
.
$warningValue
(
row
.
endDate
)
<=
0
)
{
return
'warning-row'
// 红色
}
else
if
(
this
.
$warningValue
(
row
.
endDate
)
>
0
&&
this
.
$warningValue
(
row
.
endDate
)
<=
this
.
sampleHandleValue
)
{
return
'warn-row'
// 橙色
}
}
}
},
// 单元格变色
_tableCellClassName
({
row
,
rowIndex
,
column
,
columnIndex
})
{
if
(
this
.
isReport
!==
undefined
)
{
// 报告管理
if
(
column
.
property
===
'sampleProgress'
&&
row
.
sampleProgress
&&
row
.
sampleProgress
.
indexOf
(
'退回'
)
!==
-
1
)
{
// 含有退回就变红
return
'cell-red'
}
if
(
column
.
property
===
'progress'
&&
row
.
progress
&&
row
.
progress
.
indexOf
(
'退回'
)
!==
-
1
)
{
// 含有退回就变红
return
'cell-red'
}
// 是否合格字体变色
if
(
column
.
property
===
'isEligible'
&&
row
.
isEligible
&&
row
.
isEligible
===
'合格'
)
{
return
'cell-blue-color'
}
else
if
(
column
.
property
===
'isEligible'
&&
row
.
isEligible
&&
row
.
isEligible
===
'不合格'
)
{
return
'cell-red-color'
}
}
else
if
(
this
.
isDataInput
!==
undefined
)
{
if
(
column
.
property
===
'name'
&&
row
.
progress
&&
row
.
progress
.
display
.
indexOf
(
'退回'
)
!==
-
1
)
{
// 含有退回就变红
return
'cell-red'
}
}
else
if
(
this
.
isTask
!==
undefined
)
{
if
(
column
.
property
===
'serviceType'
&&
row
.
serviceType
&&
row
.
serviceType
.
indexOf
(
'加急'
)
!==
-
1
)
{
return
'cell-red'
}
}
else
if
(
this
.
isGC
!==
undefined
)
{
// 国抽的抽样单管理
if
(
column
.
property
===
'samplingNum'
&&
row
.
unsuccessfulCount
&&
row
.
unsuccessfulCount
>
0
)
{
// 国抽对接未成功项目数量(抽样单编号变红)
return
'cell-red'
}
}
else
if
(
this
.
isGroup
!==
undefined
)
{
if
(
column
.
property
===
'groupName'
&&
row
.
groupName
===
'化验室'
)
{
// 国抽的检测项目列表,科室为化验室(变红)
return
'cell-red'
}
}
else
{
// 其他列表状态
// eslint-disable-next-line no-lonely-if
if
(
column
.
property
===
'progress'
)
{
if
(
undefined
===
row
.
progress
)
{
return
'cell-blue-color'
}
else
if
(
undefined
!==
row
.
progress
&&
undefined
!==
row
.
progress
.
display
)
{
if
(
row
.
progress
.
display
.
indexOf
(
'退回'
)
!==
-
1
)
{
return
'cell-red-color'
}
else
{
return
'cell-blue-color'
}
}
else
if
(
undefined
!==
row
.
progress
)
{
if
(
row
.
progress
.
indexOf
(
'退回'
)
!==
-
1
)
{
return
'cell-red-color'
}
else
{
return
'cell-blue-color'
}
}
else
{
return
'cell-blue-color'
}
}
else
if
(
column
.
property
===
'status'
)
{
if
(
row
.
status
&&
row
.
status
.
display
!==
undefined
&&
row
.
status
.
display
.
indexOf
(
'退回'
)
!==
-
1
)
{
return
'cell-red-color'
}
else
{
return
'cell-blue-color'
}
}
}
},
// 操作列回调
_iconClick
(
name
,
rowData
,
componentName
,
rowIndex
,
obj
)
{
this
.
$emit
(
'on-result-change'
,
'iconClick'
,
{
name
:
name
,
rowData
:
rowData
,
componentName
:
componentName
,
rowIndex
:
rowIndex
,
obj
:
obj
})
},
// 双击行操作
_dbChange
(
data
,
event
)
{
this
.
$emit
(
'on-result-change'
,
'dbSelect'
,
data
.
row
)
},
// 点击单元格触发
_cellChange
(
data
,
event
)
{
if
(
this
.
clickValue
!==
undefined
)
{
// 有clickValue参数时执行
this
.
$emit
(
'on-result-change'
,
'singleSelect'
,
data
.
row
)
}
},
// 单选操作
_radioChange
({
row
})
{
this
.
checkData
=
[
row
]
this
.
$emit
(
'on-result-change'
,
'singleSelect'
,
row
)
},
// 关闭loading
_hideLoading
()
{
this
.
loading
=
false
},
// 打开loading
_showLoading
()
{
this
.
loading
=
true
},
// 只刷新选中行的数据
_refreshRows
(
rowList
,
scroll
)
{
const
records
=
this
.
getPage
.
records
for
(
let
i
=
0
;
i
<
rowList
.
length
;
i
++
)
{
const
index
=
records
.
findIndex
(
item
=>
item
.
id
===
rowList
[
i
].
id
)
if
(
index
!==
-
1
)
{
this
.
$set
(
this
.
getPage
.
records
,
index
,
rowList
[
i
])
}
}
this
.
_clearSelection
()
if
(
!
scroll
)
{
// 滚动到指定行
this
.
$refs
.
xTable
.
scrollToRow
(
rowList
[
0
])
}
},
// 公共方法:更新选中的数据 url:请求地址, params:参数
// noScroll:true ,没有操作列的不需要更新table的滚动条,或者说没有横向滚动条
_updateRows
(
obj
)
{
this
.
_showLoading
()
const
params
=
{
page
:
1
,
rows
:
this
.
$updateRows
}
// 暂定
Object
.
assign
(
params
,
obj
.
params
)
const
store
=
obj
.
url
.
split
(
'/'
)[
0
]
// 注意接口中不要有/的情况
this
.
$store
.
dispatch
(
obj
.
url
,
params
).
then
(()
=>
{
const
result
=
this
.
$store
.
state
[
store
].
page
.
records
if
(
result
&&
result
.
length
)
{
this
.
_refreshRows
(
result
,
obj
.
noScroll
)
this
.
_hideLoading
()
}
else
{
delete
params
.
ids
// 重新请求的时候删除ids
// 根据查询条件没有搜索到值,则重新根据查询条件请求page接口
this
.
_requestPage
(
obj
.
url
,
params
)
}
})
},
// 设置单选选中行数据
_setRadioRow
(
data
)
{
this
.
$refs
.
xTable
.
setRadioRow
(
data
)
this
.
checkData
=
[
data
]
}
}
}
</
script
>
pages/soil-sample-manage/SoilSampleManage.vue
View file @
0f83ee75
...
...
@@ -268,7 +268,7 @@ export default {
},
_samplePre
()
{
if
(
this
.
selectIds
.
length
===
0
)
{
this
.
$
m
essage
.
warning
(
'至少选择一条数据'
)
this
.
$
M
essage
.
warning
(
'至少选择一条数据'
)
}
else
{
this
.
$refs
.
preModal
.
_open
(
this
.
selectIds
.
join
(
','
))
}
...
...
@@ -334,9 +334,9 @@ export default {
}
},
_tableResultChange
(
msg
,
data
)
{
const
selectIds
=
[]
switch
(
msg
)
{
case
'selectData'
:
const
selectIds
=
[]
for
(
let
i
=
0
;
i
<
data
.
length
;
i
++
)
{
selectIds
.
push
(
data
[
i
].
id
)
}
...
...
pages/soil-sample-manage/backups-manage/SampleParpareApply.vue
View file @
0f83ee75
<
template
>
<div>
<Modal
v-model=
"showModalHandleApply"
:mask-closable=
"false"
width=
"
7
00"
>
<Modal
v-model=
"showModalHandleApply"
:mask-closable=
"false"
width=
"
5
00"
>
<p
slot=
"header"
>
处理申请
</p>
<div>
<Form
ref=
"formObj"
:id=
"formId"
:model=
"formObj"
:rules=
"ruleValidate"
:label-width=
"
123
"
inline
>
<Form-item
label=
"申请日期:"
prop=
"apply
Date"
class=
"width-48
"
>
<Date-picker
v-model=
"formObj.apply
Date"
:editable=
"false"
name=
"applyDat
e"
<Form
ref=
"formObj"
:id=
"formId"
:model=
"formObj"
:rules=
"ruleValidate"
:label-width=
"
90
"
inline
>
<Form-item
label=
"申请日期:"
prop=
"apply
HandleTime"
style=
"width:100%
"
>
<Date-picker
v-model=
"formObj.apply
HandleTime"
:editable=
"false"
name=
"applyHandleTim
e"
type=
"date"
placeholder=
"请选择申请日期"
style=
"width: 100%;"
></Date-picker>
</Form-item>
<Form-item
label=
"申请人:"
prop=
"apply
er"
class=
"width-48
"
>
<Input
v-model=
"formObj.apply
er"
name=
"apply
er"
readonly
></Input>
<Form-item
label=
"申请人:"
prop=
"apply
Handler"
style=
"width:100%
"
>
<Input
v-model=
"formObj.apply
Handler"
@
click
.
native=
"_selectPerson()"
name=
"applyHandl
er"
readonly
></Input>
</Form-item>
<Form-item
label=
"处理样品批次/数量:"
prop=
"handleBatch"
class=
"width-48"
>
<Input
v-model=
"formObj.handleBatch"
name=
"handleBatch"
readonly
></Input>
</Form-item>
<Form-item
label=
"存储期限:"
class=
"width-48"
>
<div>
{{
formObj
.
retentionTime
}}
</div>
</Form-item>
<Form-item
label=
"样品处理数量:"
class=
"width-48"
>
<Row>
<Col
span=
"18"
>
<Input
v-model=
"formObj.handleQuantity"
:maxlength=
"$fieldMaxLength"
></Input>
</Col>
<Col
span=
"6"
>
<div
style=
"padding-left: 10px"
>
{{
formObj
.
sampleUnit
}}
</div>
</Col>
</Row>
</Form-item>
<Form-item
label=
"处理方式:"
class=
"width-48"
>
<el-select
v-model=
"formObj.handleWay"
placeholder=
"请选择"
<Form-item
label=
"处理方式:"
style=
"width:100%"
>
<el-select
v-model=
"formObj.handleWay"
name=
"handleWay"
placeholder=
"请选择"
size=
"small"
style=
"width:100%"
clearable
>
...
...
@@ -41,34 +25,8 @@
</el-option>
</el-select>
</Form-item>
<Form-item
label=
"处理原因"
prop=
"handleReason"
style=
"width:100%"
>
<Input
:rows=
"3"
v-model=
"formObj.handleReason"
placeholder=
"请输入处理原因"
type=
"textarea"
name=
"handleReason"
/>
</Form-item>
<Form-item
label=
"附件上传"
style=
"width: 90%;"
>
<div
v-for=
"item in formObj.lmsEquipFiles"
class=
"file-upload-list"
>
<div>
<!--
<img
:src=
"item.url"
>
-->
<div
class=
"file-upload-list-cover"
>
<Icon
@
click
.
native=
"_handleView(item)"
type=
"ios-eye-outline"
></Icon>
<Icon
@
click
.
native=
"_downloadFile(item)"
type=
"ios-cloud-download-outline"
></Icon>
<Icon
@
click
.
native=
"_handleRemove(item)"
type=
"ios-trash-outline"
></Icon>
</div>
</div>
{{
item
.
orginName
}}
</div>
<Upload
:show-upload-list=
"false"
:with-credentials=
"true"
:on-success=
"_handleSuccess"
:before-upload=
"_handleBeforeUpload"
:action=
"fileAction"
:data=
"fileData"
type=
"drag"
style=
"display: inline-block;width:100px;"
>
<div
style=
"width: 100px;height:100px;line-height: 100px;"
>
<Icon
type=
"ios-cloud-upload"
size=
"20"
></Icon>
</div>
</Upload>
<Form-item
label=
"处理原因"
prop=
"applyRemark"
style=
"width:100%"
>
<Input
:rows=
"3"
v-model=
"formObj.applyRemark"
placeholder=
"请输入处理原因"
type=
"textarea"
name=
"applyRemark"
/>
</Form-item>
</Form>
</div>
...
...
@@ -76,16 +34,15 @@
<modal-footer
ref=
"footerModal"
@
on-result-change=
"_footerResult"
:footer=
"footerList"
></modal-footer>
</div>
</Modal>
<Modal
v-model=
"visible"
title=
"查看图片"
>
<img
:src=
"imgSrc"
style=
"width: 100%"
>
</Modal>
<AssignPerson
ref=
"personModal"
@
on-result-change=
"_assignBackData"
></AssignPerson>
</div>
</
template
>
<
script
>
import
Global
from
'../../../api/config'
import
AssignPerson
from
'../../../components/user-info-single/AssignPerson'
import
{
soilSample
}
from
'../../../api'
export
default
{
components
:
{},
components
:
{
AssignPerson
},
data
()
{
return
{
lengthLimitList
:
[{
key
:
'handleQuantity'
,
title
:
'样品处理数量'
}],
...
...
@@ -93,22 +50,19 @@ export default {
showModalHandleApply
:
false
,
formObj
:
{
id
:
''
,
applyDate
:
new
Date
(),
applyer
:
''
,
applyHandleTime
:
new
Date
(),
applyHandler
:
''
,
applyHandlerId
:
''
,
handleBatch
:
''
,
retentionTime
:
''
,
handleReason
:
''
,
applyRemark
:
''
,
lmsEquipFiles
:
[],
handleWay
:
''
,
handleQuantity
:
''
,
sampleUnit
:
''
},
applyId
:
0
,
ruleValidate
:
{
applyer
:
[
{
required
:
true
,
message
:
'申请人不能为空'
,
trigger
:
'blur'
}
]
},
ruleValidate
:
{},
footerList
:
[
{
id
:
''
,
name
:
'取消'
,
type
:
''
},
{
id
:
''
,
name
:
'提交'
,
type
:
'primary'
}
...
...
@@ -120,7 +74,14 @@ export default {
name
:
''
},
formId
:
''
,
handleWayList
:
[],
handleWayList
:
[
{
name
:
'到期处置'
},
{
name
:
'立即处置'
}
],
imgSrc
:
''
}
},
...
...
@@ -128,6 +89,13 @@ export default {
// this._dicSearch()
},
methods
:
{
_selectPerson
()
{
this
.
$refs
.
personModal
.
_openGoup
(
'申请人'
,
'itemTree'
)
},
_assignBackData
(
data
)
{
this
.
formObj
.
applyHandler
=
data
.
realname
this
.
formObj
.
applyHandlerId
=
data
.
id
},
// 从字典中查询类别
_dicSearch
()
{
this
.
$store
.
dispatch
(
'LmsBaseDict/getItem'
,
'样品处理方式'
).
then
(()
=>
{
...
...
@@ -153,10 +121,13 @@ export default {
// this._getRetention(data)
// this._getSampleBatch(data)
this
.
$refs
.
footerModal
.
_hideLoading
()
this
.
ids
=
data
this
.
formObj
.
lmsEquipFiles
=
[]
this
.
showModalHandleApply
=
true
this
.
formObj
.
applyer
=
Global
.
getUserInfo
().
realname
this
.
formObj
.
applyHandler
=
Global
.
getUserInfo
().
realname
this
.
formObj
.
applyHandlerId
=
Global
.
getUserInfo
().
id
this
.
formId
=
'handleApplyEditForm'
+
this
.
$randomCode
()
this
.
formObj
.
applyHandleTime
=
new
Date
()
},
_getSampleBatch
(
data
)
{
this
.
formObj
.
handleBatch
=
data
.
length
...
...
@@ -268,34 +239,49 @@ export default {
this
.
$refs
.
formObj
.
validate
(
valid
=>
{
if
(
valid
)
{
const
data
=
this
.
$serialize
(
this
.
formId
)
data
.
handleBatch
=
this
.
formObj
.
handleBatch
data
.
id
=
this
.
applyId
data
.
handleWay
=
this
.
formObj
.
handleWay
data
.
applyer
=
this
.
formObj
.
applyer
data
.
handleQuantity
=
this
.
formObj
.
handleQuantity
// let returnData = {ids: this.ids, obj: data};
this
.
$extend
(
data
,
{
backupIds
:
this
.
ids
.
join
(
','
)
})
if
(
this
.
$lengthLimitVal
(
this
.
lengthLimitList
,
data
)
===
false
)
{
this
.
_hideLoading
()
return
}
this
.
$store
.
dispatch
(
'FoodSampleHandleApply/handleApplySubmit'
,
data
)
.
then
(()
=>
{
if
(
this
.
$store
.
state
.
FoodSampleHandleApply
.
success
)
{
this
.
_cancel
()
this
.
$Message
.
success
(
'提交成功'
)
this
.
$emit
(
'on-result-change'
)
}
else
{
this
.
$refs
.
footerModal
.
_hideLoading
()
}
})
data
.
applyHandlerId
=
this
.
formObj
.
applyHandlerId
data
.
ids
=
this
.
ids
.
join
(
','
)
console
.
log
(
data
)
this
.
_submitDispose
(
data
)
// data.handleBatch = this.formObj.handleBatch
// data.id = this.applyId
// data.handleWay = this.formObj.handleWay
// data.applyHandler = this.formObj.applyHandler
// data.handleQuantity = this.formObj.handleQuantity
// // let returnData = {ids: this.ids, obj: data};
// this.$extend(data, { backupIds: this.ids.join(',') })
// if (this.$lengthLimitVal(this.lengthLimitList, data) === false) {
// this._hideLoading()
// return
// }
// this.$store
// .dispatch('FoodSampleHandleApply/handleApplySubmit', data)
// .then(() => {
// if (this.$store.state.FoodSampleHandleApply.success) {
// this._cancel()
// this.$Message.success('提交成功')
// this.$emit('on-result-change')
// } else {
// this.$refs.footerModal._hideLoading()
// }
// })
}
else
{
this
.
$Message
.
error
(
'表单验证失败!'
)
this
.
$refs
.
footerModal
.
_hideLoading
()
}
})
},
_submitDispose
:
async
function
(
data
)
{
const
result
=
await
soilSample
.
appleHandle
(
data
)
if
(
result
)
{
this
.
_resultChange
(
'提交成功'
)
}
},
_resultChange
(
msg
)
{
this
.
$Message
.
success
(
msg
)
this
.
showModalHandleApply
=
false
this
.
$emit
(
'on-result-change'
)
},
_cancel
()
{
this
.
showModalHandleApply
=
false
this
.
$refs
.
footerModal
.
_hideLoading
()
...
...
pages/soil-sample-manage/backups-manage/tab/SampleBackupsManage.vue
View file @
0f83ee75
...
...
@@ -27,7 +27,7 @@
<!--样品数量-->
<!-- 表格 -->
<Col
span=
"24"
>
<PTVXETable
Height
<PTVXETable
Temp
id=
"samplePreManage"
ref=
"pageTable"
:tableHeight=
"tableHeight"
...
...
@@ -59,10 +59,10 @@
show-key=
"backupPlace"
></AutoCompletes>
</div>
</div>
<div
v-else-if=
"item.key==='
storageCondition
'"
@
click
.
stop=
"_handleIndex(scope)"
>
<div
v-else-if=
"item.key==='
conditions
'"
@
click
.
stop=
"_handleIndex(scope)"
>
<div
v-if=
"editIndex!==scope.rowIndex"
>
{{
scope
.
row
[
item
.
key
]
}}
</div>
<div
v-else
>
<el-select
v-model=
"scope.row.
storageCondition
"
clearable
style=
"width:100%"
size=
"small"
>
<el-select
v-model=
"scope.row.
conditionList
"
clearable
style=
"width:100%"
size=
"small"
>
<el-option
v-for=
"item in conditionList"
:value=
"item.name"
:key=
"item.name"
>
{{
item
.
name
}}
</el-option>
</el-select>
...
...
@@ -70,9 +70,9 @@
</div>
<div
v-else-if=
"item.key==='handleQuantity'"
@
click
.
stop=
"_handleIndex(scope)"
>
<div
v-if=
"editIndex!==scope.rowIndex"
>
{{
scope
.
row
[
item
.
key
]
}}{{
scope
.
row
[
'sampleUnit'
]
&&
scope
.
row
[
'handleQuantity'
]?
scope
.
row
[
'sampleUnit'
]:
''
}}
</div>
{{
scope
.
row
[
item
.
key
]
}}{{
scope
.
row
[
'sampleUnit'
]
&&
scope
.
row
[
'handleQuantity'
]?
scope
.
row
[
'sampleUnit'
]:
''
}}
</div>
<div
v-else
>
<Row>
<Col
span=
"18"
>
...
...
@@ -84,13 +84,29 @@
</Row>
</div>
</div>
<div
v-else-if=
"item.key==='quantity'"
@
click
.
stop=
"_handleIndex(scope)"
>
<div
v-if=
"editIndex!==scope.rowIndex"
>
{{
scope
.
row
[
item
.
key
]
}}
</div>
<div
v-else
>
<el-input
v-model=
"scope.row.quantity"
clearable
></el-input>
</div>
</div>
<div
v-else-if=
"item.key==='backupLocation'"
@
click
.
stop=
"_handleIndex(scope)"
>
<div
v-if=
"editIndex!==scope.rowIndex"
>
{{
scope
.
row
[
item
.
key
]
}}
</div>
<div
v-else
>
<el-input
v-model=
"scope.row.backupLocation"
clearable
></el-input>
</div>
</div>
<div
v-else-if=
"item.date"
>
{{
scope
.
row
[
item
.
key
]?
$dateformat
(
scope
.
row
[
item
.
key
],
'yyyy-mm-dd'
):
''
}}
</div>
<div
v-else
>
{{
scope
.
row
[
item
.
key
]
}}
</div>
</
template
>
</vxe-table-column>
<
template
slot=
"col"
>
<vxe-table-column
slot=
"col"
:width=
"80"
title=
"操作"
align=
"center"
...
...
@@ -100,13 +116,12 @@
:rowData=
"scope.row"
:rowIndex=
"scope.rowIndex"
></VXEIconList>
</
template
>
</vxe-table-column>
</template>
</PTVXETableHeight>
</PTVXETableTemp>
</Col>
</Row>
</div>
</div>
<SampleParpareApply
ref=
"applyModal"
></SampleParpareApply>
<SampleParpareApply
ref=
"applyModal"
@
on-result-change=
"_page"
></SampleParpareApply>
</div>
</template>
<
script
>
...
...
@@ -133,7 +148,7 @@ export default {
{
type
:
'primary'
,
id
:
''
,
name
:
'
处理申请
'
name
:
'
申请处理
'
},
{
type
:
'primary'
,
...
...
@@ -360,7 +375,7 @@ export default {
},
_btnClick
(
msg
)
{
switch
(
msg
)
{
case
'
处理申请
'
:
case
'
申请处理
'
:
this
.
_applyDispose
()
break
case
'制备'
:
...
...
@@ -375,9 +390,6 @@ export default {
case
'填写存放信息'
:
this
.
_batchEdit
()
break
case
'申请处理'
:
this
.
_handle
()
break
case
'导出'
:
if
(
this
.
getPage
.
records
.
length
===
0
)
{
this
.
$Message
.
warning
(
'暂无数据,不可导出'
)
...
...
@@ -397,7 +409,7 @@ export default {
if
(
this
.
selectIds
.
length
===
0
)
{
this
.
$Message
.
warning
(
'请选择一条或多条数据!'
)
}
else
{
this
.
$refs
.
applyModal
.
_open
(
this
.
select
Data
)
this
.
$refs
.
applyModal
.
_open
(
this
.
select
Ids
)
}
},
// 制备
...
...
@@ -422,104 +434,105 @@ export default {
_tableResultChange
(
msg
,
data
)
{
switch
(
msg
)
{
case
'page'
:
this
.
getPage
.
records
=
[]
this
.
getPage
=
{
total
:
this
.
$store
.
state
.
LmsFoodSamplePrepare
.
page
.
total
,
pages
:
this
.
$store
.
state
.
LmsFoodSamplePrepare
.
page
.
pages
,
current
:
this
.
$store
.
state
.
LmsFoodSamplePrepare
.
page
.
current
,
size
:
this
.
$store
.
state
.
LmsFoodSamplePrepare
.
page
.
size
,
records
:
[]
}
const
tableList
=
this
.
$store
.
state
.
LmsFoodSamplePrepare
.
page
.
records
for
(
let
i
=
0
;
i
<
tableList
.
length
;
i
++
)
{
this
.
getPage
.
records
.
push
({
sampleId
:
tableList
[
i
].
sampleId
!==
undefined
?
tableList
[
i
].
sampleId
:
''
,
sampleSn
:
tableList
[
i
].
sampleSn
!==
undefined
?
tableList
[
i
].
sampleSn
:
''
,
sampleName
:
tableList
[
i
].
sampleName
!==
undefined
?
tableList
[
i
].
sampleName
:
''
,
backupPlace
:
tableList
[
i
].
backupPlace
!==
undefined
?
tableList
[
i
].
backupPlace
:
''
,
cname
:
tableList
[
i
].
cname
!==
undefined
?
tableList
[
i
].
cname
:
''
,
storageCondition
:
tableList
[
i
].
storageCondition
!==
undefined
?
tableList
[
i
].
storageCondition
:
''
,
quantity
:
tableList
[
i
].
quantity
!==
undefined
?
tableList
[
i
].
quantity
:
''
,
sampleQuantity
:
tableList
[
i
].
sampleQuantity
!==
undefined
?
tableList
[
i
].
sampleQuantity
:
''
,
handleQuantity
:
tableList
[
i
].
handleQuantity
!==
undefined
?
tableList
[
i
].
handleQuantity
:
''
,
sampleUnit
:
tableList
[
i
].
sampleUnit
!==
undefined
?
tableList
[
i
].
sampleUnit
:
''
,
endDate
:
tableList
[
i
].
endDate
!==
undefined
?
new
Date
(
tableList
[
i
].
endDate
)
:
''
,
handleMethod
:
tableList
[
i
].
handleMethod
!==
undefined
?
tableList
[
i
].
handleMethod
:
''
,
id
:
tableList
[
i
].
id
!==
undefined
?
tableList
[
i
].
id
:
''
,
contractName
:
tableList
[
i
].
contractName
!==
undefined
?
tableList
[
i
].
contractName
:
''
,
code
:
tableList
[
i
].
code
!==
undefined
?
tableList
[
i
].
code
:
''
,
contractSn
:
tableList
[
i
].
contractSn
!==
undefined
?
tableList
[
i
].
contractSn
:
''
,
progress
:
tableList
[
i
].
progress
!==
undefined
?
tableList
[
i
].
progress
:
''
,
type
:
tableList
[
i
].
type
!==
undefined
?
tableList
[
i
].
type
:
''
,
issueDate
:
tableList
[
i
].
issueDate
!==
undefined
?
tableList
[
i
].
issueDate
:
''
,
sampleRemark
:
tableList
[
i
].
sampleRemark
!==
undefined
?
tableList
[
i
].
sampleRemark
:
''
,
contractRemark
:
tableList
[
i
].
contractRemark
!==
undefined
?
tableList
[
i
].
contractRemark
:
''
,
isEligible
:
tableList
[
i
].
isEligible
!==
undefined
?
tableList
[
i
].
isEligible
:
''
,
remark
:
tableList
[
i
].
remark
!==
undefined
?
tableList
[
i
].
remark
:
''
,
contractId
:
tableList
[
i
].
contractId
!==
undefined
?
tableList
[
i
].
contractId
:
''
})
}
this
.
selectIds
=
[]
this
.
selectData
=
[]
this
.
selectSampleIds
=
[]
this
.
_page
()
// this.getPage.records = []
// this.getPage = {
// total: this.$store.state.LmsFoodSamplePrepare.page.total,
// pages: this.$store.state.LmsFoodSamplePrepare.page.pages,
// current: this.$store.state.LmsFoodSamplePrepare.page.current,
// size: this.$store.state.LmsFoodSamplePrepare.page.size,
// records: []
// }
// const tableList = this.$store.state.LmsFoodSamplePrepare.page.records
// for (let i = 0; i
<
tableList
.
length
;
i
++
)
{
// this.getPage.records.push({
// sampleId:
// tableList[i].sampleId !== undefined
// ? tableList[i].sampleId
// : '',
// sampleSn:
// tableList[i].sampleSn !== undefined
// ? tableList[i].sampleSn
// : '',
// sampleName:
// tableList[i].sampleName !== undefined
// ? tableList[i].sampleName
// : '',
// backupPlace:
// tableList[i].backupPlace !== undefined
// ? tableList[i].backupPlace
// : '',
// cname: tableList[i].cname !== undefined ? tableList[i].cname : '',
// storageCondition:
// tableList[i].storageCondition !== undefined
// ? tableList[i].storageCondition
// : '',
// quantity:
// tableList[i].quantity !== undefined
// ? tableList[i].quantity
// : '',
// sampleQuantity:
// tableList[i].sampleQuantity !== undefined
// ? tableList[i].sampleQuantity
// : '',
// handleQuantity:
// tableList[i].handleQuantity !== undefined
// ? tableList[i].handleQuantity
// : '',
// sampleUnit:
// tableList[i].sampleUnit !== undefined
// ? tableList[i].sampleUnit
// : '',
// endDate:
// tableList[i].endDate !== undefined
// ? new Date(tableList[i].endDate)
// : '',
// handleMethod:
// tableList[i].handleMethod !== undefined
// ? tableList[i].handleMethod
// : '',
// id: tableList[i].id !== undefined ? tableList[i].id : '',
// contractName:
// tableList[i].contractName !== undefined
// ? tableList[i].contractName
// : '',
// code: tableList[i].code !== undefined ? tableList[i].code : '',
// contractSn:
// tableList[i].contractSn !== undefined
// ? tableList[i].contractSn
// : '',
// progress:
// tableList[i].progress !== undefined
// ? tableList[i].progress
// : '',
// type: tableList[i].type !== undefined ? tableList[i].type : '',
// issueDate:
// tableList[i].issueDate !== undefined
// ? tableList[i].issueDate
// : '',
// sampleRemark:
// tableList[i].sampleRemark !== undefined
// ? tableList[i].sampleRemark
// : '',
// contractRemark:
// tableList[i].contractRemark !== undefined
// ? tableList[i].contractRemark
// : '',
// isEligible:
// tableList[i].isEligible !== undefined
// ? tableList[i].isEligible
// : '',
// remark:
// tableList[i].remark !== undefined ? tableList[i].remark : '',
// contractId:
// tableList[i].contractId !== undefined
// ? tableList[i].contractId
// : ''
// })
// }
// this.selectIds = []
// this.selectData = []
// this.selectSampleIds = []
break
case
'selectData'
:
this
.
selectData
=
data
...
...
pages/soil-sample-manage/sample-dispose/tab/SampleDisposeManage.vue
View file @
0f83ee75
...
...
@@ -25,14 +25,6 @@
</btn-list>
</Col>
<!--样品数量-->
<Col
span=
"24"
>
<div
style=
"display: flex;padding-bottom: 10px;"
>
<div
v-for=
"(item,index) in contList"
:key=
"index"
class=
"reimbursement-item"
>
<p
:class=
"item.color?item.color:''"
>
{{
item
.
value
}}
</p>
<p>
{{
item
.
name
}}
</p>
</div>
</div>
</Col>
<!-- 表格 -->
<Col
span=
"24"
>
<PTVXETable
...
...
@@ -120,7 +112,7 @@
import
AutoCompletes
from
'../../../../components/base/AutoCompletes'
// eslint-disable-next-line no-unused-vars
import
http
from
'../../../../api/http'
import
{
soil
Entrust
}
from
'../../../../api'
import
{
soil
Sample
}
from
'../../../../api'
export
default
{
components
:
{
AutoCompletes
...
...
@@ -530,8 +522,7 @@ export default {
_page
:
async
function
()
{
this
.
editIndex
=
-
1
Object
.
assign
(
this
.
formObj
,
this
.
$refs
.
pageTable
.
_searchParams
())
console
.
log
(
'this.formObj'
,
this
.
formObj
)
const
result
=
await
soilEntrust
.
pageBackup
(
const
result
=
await
soilSample
.
pageBackupHandleCheck
(
this
.
$serializeForm
(
this
.
formObj
)
)
if
(
result
)
{
...
...
pages/soil-sample-manage/surplus-manage/tab/SampleSurplusManage.vue
View file @
0f83ee75
...
...
@@ -25,14 +25,6 @@
</btn-list>
</Col>
<!--样品数量-->
<Col
span=
"24"
>
<div
style=
"display: flex;padding-bottom: 10px;"
>
<div
v-for=
"(item,index) in contList"
:key=
"index"
class=
"reimbursement-item"
>
<p
:class=
"item.color?item.color:''"
>
{{
item
.
value
}}
</p>
<p>
{{
item
.
name
}}
</p>
</div>
</div>
</Col>
<!-- 表格 -->
<Col
span=
"24"
>
<PTVXETable
...
...
plugins/global.js
View file @
0f83ee75
...
...
@@ -10,6 +10,7 @@ import elementTable from '../components/table/elementTable'
import
modalFooter
from
'../components/base/modalFooter'
import
PTVXETable
from
'../components/table/PTVXETable'
import
PTVXETableHeight
from
'../components/table/PTVXETableHeight'
import
PTVXETableTemp
from
'../components/table/PTVXETableTemp'
import
PTVXETableData
from
'../components/base/PTVXETableData'
import
VXEIconList
from
'../components/base/VXEIconList'
import
FileManage
from
'../components/file/file-manage/FileManage'
...
...
@@ -26,6 +27,7 @@ Vue.component('element-table-height', elementTableHeight)
Vue
.
component
(
'modal-footer'
,
modalFooter
)
Vue
.
component
(
'PTVXETable'
,
PTVXETable
)
Vue
.
component
(
'PTVXETableHeight'
,
PTVXETableHeight
)
Vue
.
component
(
'PTVXETableTemp'
,
PTVXETableTemp
)
Vue
.
component
(
'PTVXETableData'
,
PTVXETableData
)
Vue
.
component
(
'VXEIconList'
,
VXEIconList
)
Vue
.
component
(
'VXESettingCol'
,
VXESettingCol
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment