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
b9d34c28
Commit
b9d34c28
authored
Jun 16, 2020
by
wangweidong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
送样流程
parent
639a8d4c
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
1097 additions
and
2 deletions
+1097
-2
meter-sample.js
api/meter/meter-sample.js
+4
-0
CityNameCascader.vue
components/base/CityNameCascader.vue
+1
-1
EditModal.vue
pages/meter-business/quote-register/EditModal.vue
+178
-0
MeterQuoteRegister.vue
pages/meter-business/quote-register/MeterQuoteRegister.vue
+276
-0
MeterQuoteRegisterEdit.vue
.../meter-business/quote-register/MeterQuoteRegisterEdit.vue
+0
-0
MeterQuoteRegisterFinish.vue
...eter-business/quote-register/MeterQuoteRegisterFinish.vue
+235
-0
MeterQuoteRegisterHis.vue
...s/meter-business/quote-register/MeterQuoteRegisterHis.vue
+235
-0
MeterQuoteRegisterIndex.vue
...meter-business/quote-register/MeterQuoteRegisterIndex.vue
+41
-0
MeterQuoteRegisterOperation.vue
...r-business/quote-register/MeterQuoteRegisterOperation.vue
+114
-0
MeterSampleInput.vue
pages/meter-send/sample-input/MeterSampleInput.vue
+1
-1
meter-routes.js
router/meter-routes.js
+12
-0
No files found.
api/meter/meter-sample.js
View file @
b9d34c28
...
@@ -42,6 +42,10 @@ export default {
...
@@ -42,6 +42,10 @@ export default {
http
.
post
(
'meter/v1/sample/page_distribute'
,
data
).
then
(
res
=>
res
),
http
.
post
(
'meter/v1/sample/page_distribute'
,
data
).
then
(
res
=>
res
),
pageOutPersonalTask
:
data
=>
pageOutPersonalTask
:
data
=>
http
.
post
(
'meter/v1/sample/page_out_personal_task'
,
data
).
then
(
res
=>
res
),
http
.
post
(
'meter/v1/sample/page_out_personal_task'
,
data
).
then
(
res
=>
res
),
pageSampleInput
:
data
=>
http
.
post
(
'meter/v1/sample/page_sample_input'
,
data
).
then
(
res
=>
res
),
pageCertificateMake
:
data
=>
pageCertificateMake
:
data
=>
http
.
post
(
'meter/v1/sample/page_certificate_make'
,
data
).
then
(
res
=>
res
),
http
.
post
(
'meter/v1/sample/page_certificate_make'
,
data
).
then
(
res
=>
res
),
pageCertificateCheck
:
data
=>
pageCertificateCheck
:
data
=>
...
...
components/base/CityNameCascader.vue
View file @
b9d34c28
...
@@ -16,7 +16,7 @@
...
@@ -16,7 +16,7 @@
transfer
transfer
change-on-select
>
change-on-select
>
<Input
<Input
v-model=
"value
.join(' ')
"
v-model=
"value"
@
on-change=
"_clear"
@
on-change=
"_clear"
placeholder=
"请选择省、市、区"
placeholder=
"请选择省、市、区"
readonly
readonly
...
...
pages/meter-business/quote-register/EditModal.vue
0 → 100644
View file @
b9d34c28
<
template
>
<div>
<Modal
v-model=
"showUserGroupModal"
>
<p
slot=
"header"
>
{{
modalTitle
}}
</p>
<Row>
<!--查询条件-->
<Col
span=
"24"
>
<Form
id=
"test-item-form"
:label-width=
"90"
inline
onsubmit=
"return false"
>
<label
class=
"label-sign"
/>
<Form-item
:label-width=
"70"
label=
"授权资质仪器名称"
>
<Input
v-model=
"code"
placeholder=
"授权资质仪器名称"
style=
"width: 100%"
@
on-enter=
"_pageChange(1)"
/>
</Form-item>
<Form-item
label=
"检测依据名称"
>
<Input
v-model=
"name"
placeholder=
"请输入检测依据名称"
style=
"width: 100%"
@
on-enter=
"_pageChange(1)"
/>
</Form-item>
</Form>
</Col>
<Col
span=
"24"
style=
"margin-bottom: 10px"
>
<el-table
:height=
"300"
:data=
"getPage"
border
size=
"small"
highlight-current-row
style=
"width: 100%"
@
row-click=
"_rowChange"
@
row-dblclick=
"_dbClick"
>
<el-table-column
v-for=
"item in pageColumns"
:key=
"item.key"
:prop=
"item.key"
:label=
"item.title"
:min-width=
"item.width"
show-overflow-tooltip
>
<template
slot-scope=
"scope"
>
<span
v-if=
"item.key==='status'"
>
{{
scope
.
row
[
item
.
key
]?
scope
.
row
[
item
.
key
].
display
:
''
}}
</span>
<span
v-else
>
{{
scope
.
row
[
item
.
key
]
}}
</span>
</
template
>
</el-table-column>
</el-table>
</Col>
<Col
span=
"24"
>
<Page
:total=
"getPage.total"
:page-size=
"getPage.size"
placement=
"top"
show-total
show-elevator
show-sizer
@
on-change=
"_pageChange"
@
on-page-size-change=
"_pageRows"
/>
<div
style=
"clear: both"
/>
</Col>
</Row>
<div
slot=
"footer"
class=
"btn-width"
>
<Button
style=
"margin-left: 8px"
@
click=
"_cancel"
>
取消
</Button>
<Button
type=
"primary"
@
click=
"_ok"
>
确定
</Button>
</div>
</Modal>
</div>
</template>
<
script
>
// import { meterAptitude } from '../../../api'
import
{
meterManage
}
from
'../../../api'
export
default
{
name
:
'EditModal'
,
data
()
{
return
{
loading
:
true
,
pageParams
:
{
rows
:
20
},
pageColumns
:
[
{
title
:
'样品名称'
,
key
:
'name'
},
{
title
:
'检定依据'
,
key
:
'code'
},
{
title
:
'检定依据名称'
,
key
:
'basis'
}
],
getPage
:
[],
showUserGroupModal
:
false
,
modalTitle
:
''
,
currentRowData
:
{},
name
:
''
,
code
:
''
}
},
methods
:
{
_open
()
{
this
.
modalTitle
=
'选择检测依据'
this
.
name
=
''
this
.
code
=
''
this
.
_judge
()
},
_judge
()
{
this
.
showUserGroupModal
=
true
this
.
currentRowData
=
{}
this
.
_page
()
},
_page
:
async
function
()
{
const
result
=
await
meterManage
.
page
(
this
.
_searchParams
())
if
(
result
)
{
console
.
log
(
'查询结果'
)
console
.
log
(
result
)
this
.
getPage
=
result
.
records
this
.
loading
=
false
console
.
log
(
this
.
getPage
)
}
},
_pageChange
(
page
)
{
this
.
pageParams
.
page
=
page
this
.
_page
()
},
_pageRows
(
rows
)
{
this
.
pageParams
.
rows
=
rows
this
.
_page
()
},
_searchParams
()
{
const
data
=
this
.
$serialize
(
'test-item-form'
)
if
(
this
.
name
)
{
data
.
name
=
this
.
name
}
if
(
this
.
code
)
{
data
.
code
=
this
.
code
}
return
this
.
$extend
(
data
,
this
.
pageParams
)
},
_search
()
{
this
.
_page
()
},
_rowChange
(
data
)
{
this
.
currentRowData
=
data
// 选中的行数据;
},
_cancel
()
{
this
.
showUserGroupModal
=
false
},
_ok
()
{
if
(
JSON
.
stringify
(
this
.
currentRowData
)
===
'{}'
)
{
switch
(
this
.
modalTitle
)
{
case
'选择检测依据'
:
this
.
$Message
.
warning
(
'请选择一条检测依据!'
)
break
}
}
else
{
this
.
$emit
(
'on-result-change'
,
this
.
currentRowData
)
this
.
showUserGroupModal
=
false
}
},
// 双击
_dbClick
(
data
,
event
)
{
this
.
currentRowData
=
data
// 选中的行数据;
this
.
_ok
()
}
}
}
</
script
>
<
style
scoped
>
</
style
>
pages/meter-business/quote-register/MeterQuoteRegister.vue
0 → 100644
View file @
b9d34c28
<
template
>
<div>
<!--内容-->
<div
class=
"layout-content-padding"
>
<div
class=
"layout-content-main"
>
<Row>
<!--查询-->
<Col
span=
"24"
style=
"margin-top: 10px"
>
<Form
id=
"formId"
v-show=
"searchOpen"
:label-width=
"90"
inline
onsubmit=
"return false"
>
<label
class=
"label-sign"
></label>
<Form-item
class=
"search-item"
label=
"实验室名称:"
>
<Input
v-model=
"formObj.name"
@
on-enter=
"_formSearch"
name=
"name"
placeholder=
"请输入实验室名称"
clearable
/>
</Form-item>
<Form-item
class=
"search-item"
label=
"资质:"
>
<Input
v-model=
"formObj.aptitude"
@
on-enter=
"_formSearch"
name=
"aptitude"
placeholder=
"请输入资质"
clearable
/>
</Form-item>
<Form-item
class=
"search-btn"
>
<Button
@
click=
"_formSearch"
type=
"primary"
>
搜索
</Button>
</Form-item>
</Form>
</Col>
<!--操作-->
<Col
span=
"24"
>
<btn-list
:msg=
"btn"
:open=
"searchOpen"
:show-search-btn=
"true"
@
on-result-change=
"_btnClick"
class=
"contHide"
></btn-list>
</Col>
<!--表格-->
<Col
span=
"24"
>
<PTVXETable
ref=
"pageTable"
:table-height=
"tableHeight"
:form-id=
"formId"
:loading=
"true"
:get-page=
"getPage"
:icon-msg=
"iconMsg"
@
on-result-change=
"_tableResultChange"
>
<vxe-table-column
v-for=
"item in pageColumns"
:key=
"item.key"
:field=
"item.key"
:title=
"item.title"
:min-width=
"item.width?item.width:200"
:fixed=
"item.fixed?item.fixed:undefined"
sortable
>
<template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
[
item
.
key
]
}}
</span>
</
template
>
</vxe-table-column>
</PTVXETable>
</Col>
</Row>
</div>
</div>
<MeterSendOperation
ref=
"operationModal"
></MeterSendOperation>
<MeterSubcontractorEdit
ref=
"editSubcontractorModal"
@
on-result-change=
"_formSearch"
></MeterSubcontractorEdit>
</div>
</template>
<
script
>
import
{
meterEntrust
,
meterSubcontractor
}
from
'../../../api'
import
MeterSubcontractorEdit
from
'./MeterQuoteRegisterEdit'
import
MeterSendOperation
from
'./MeterQuoteRegisterOperation'
export
default
{
components
:
{
MeterSubcontractorEdit
,
MeterSendOperation
},
data
()
{
return
{
currentComponent
:
''
,
formId
:
'meterSubcontractorFormId'
,
searchOpen
:
false
,
btn
:
[
{
type
:
'success'
,
id
:
'meter-subcontractor-add-btn'
,
name
:
'添加'
},
// meter-subcontractor-submit-btn
{
type
:
'success'
,
id
:
''
,
name
:
'提交'
}
],
iconMsg
:
[
{
type
:
'md-create'
,
id
:
''
,
name
:
'编辑'
},
{
type
:
'ios-beaker'
,
id
:
''
,
name
:
'资质项目'
},
{
type
:
'md-cloud'
,
id
:
''
,
name
:
'附件'
},
{
type
:
'md-remove-circle'
,
id
:
''
,
name
:
'删除'
},
{
type
:
'ios-clock'
,
id
:
''
,
name
:
'操作日志'
}
],
formObj
:
{
name
:
undefined
,
aptitude
:
undefined
},
selectIds
:
[],
getPage
:
{},
pageColumns
:
[
{
title
:
'委托单位'
,
key
:
'client'
,
width
:
200
},
{
title
:
'联系人'
,
key
:
'person'
,
width
:
120
},
{
title
:
'联系电话'
,
key
:
'tel'
,
width
:
120
},
{
title
:
'传真'
,
key
:
'fax'
,
width
:
120
},
{
title
:
'详细地址'
,
key
:
'address'
,
width
:
250
},
{
title
:
'邮编'
,
key
:
'postcode'
},
{
title
:
'E-mail'
,
key
:
'email'
,
width
:
120
},
{
title
:
'委托日期'
,
key
:
'edate'
,
width
:
120
},
{
title
:
'费用合计'
,
key
:
'fee'
,
width
:
120
},
{
title
:
'合同号'
,
key
:
'contractCode'
,
width
:
120
},
{
title
:
'备注'
,
key
:
'remark'
}
]
}
},
computed
:
{
tableHeight
:
function
()
{
if
(
this
.
searchOpen
)
{
return
this
.
$tableHeight
(
'search'
)
}
else
{
return
this
.
$tableHeight
(
'noSearch'
)
}
}
},
mounted
()
{
this
.
_page
()
},
methods
:
{
_modalResult
()
{
if
(
this
.
currentComponent
===
'FoodSubcontracterEdit'
)
{
this
.
_page
()
}
},
_btnClick
(
msg
,
componentName
)
{
this
.
currentComponent
=
componentName
this
.
$nextTick
(
function
()
{
switch
(
msg
)
{
case
'添加'
:
this
.
_editModal
(
false
)
break
case
'提交'
:
this
.
_submitToReview
()
break
case
'search'
:
this
.
searchOpen
=
!
this
.
searchOpen
break
}
})
},
_iconClick
(
res
,
data
,
componentName
)
{
this
.
currentComponent
=
componentName
this
.
$nextTick
(
function
()
{
switch
(
res
)
{
case
'编辑'
:
this
.
_editModal
(
true
,
data
.
id
)
break
case
'资质项目'
:
this
.
_itemModal
(
data
.
id
)
break
case
'附件'
:
this
.
_upload
(
data
.
id
)
break
case
'删除'
:
this
.
_deleteByIds
([
data
.
id
])
break
case
'操作日志'
:
this
.
_record
(
data
.
id
)
break
}
})
},
_submitToReview
()
{
this
.
_submitByContractIds
(
'委托评审'
)
},
_submitByContractIds
(
cont
)
{
const
ids
=
this
.
selectIds
if
(
ids
.
length
===
0
)
{
this
.
$Message
.
warning
(
'请至少选择一条数据!'
)
}
else
{
this
.
$Modal
.
confirm
({
title
:
'提示'
,
content
:
'确定要把这 '
+
ids
.
length
+
' 条记录提交到'
+
cont
+
'?'
,
onOk
:
()
=>
{
// this.$store.dispatch(url, { ids: ids.join(',') }).then(() => {
// this._resultChange('提交成功')
const
result
=
meterEntrust
.
submit
(
ids
)
if
(
result
)
{
this
.
_resultChange
(
'提交成功'
)
console
.
log
(
result
)
}
// })
}
})
}
},
_resultChange
(
msg
)
{
this
.
$Message
.
success
(
msg
)
this
.
_page
()
},
_record
(
id
)
{
this
.
$refs
.
operationModal
.
_open
(
id
)
},
_tableResultChange
(
msg
,
data
)
{
switch
(
msg
)
{
case
'page'
:
this
.
getPage
=
this
.
$store
.
state
.
FoodSubcontracter
.
page
break
case
'selectIds'
:
this
.
selectIds
=
data
break
case
'iconClick'
:
this
.
_iconClick
(
data
.
name
,
data
.
rowData
,
data
.
componentName
)
break
case
'changeSize'
:
this
.
_page
()
break
}
},
_page
:
async
function
()
{
Object
.
assign
(
this
.
formObj
,
this
.
$refs
.
pageTable
.
_searchParams
())
console
.
log
(
'this.formObj'
,
this
.
formObj
)
const
result
=
await
meterEntrust
.
pageSendEntrust
(
this
.
formObj
)
if
(
result
)
{
this
.
$refs
.
pageTable
.
_hideLoading
()
this
.
getPage
=
result
}
},
_formSearch
()
{
this
.
$refs
.
pageTable
.
_pageChange
(
1
)
},
// 删除
_deleteByIds
(
ids
,
content
)
{
this
.
$Modal
.
confirm
({
title
:
'提示'
,
content
:
content
||
'确定删除该记录?'
,
onOk
:
()
=>
{
this
.
_delete
(
ids
)
}
})
},
// 编辑&添加
_editModal
(
edit
,
id
)
{
if
(
edit
)
{
// 编辑
// this.$refs.editSubcontractorModal._open(id)
this
.
_getById
(
id
)
}
else
{
// 添加
this
.
$refs
.
editSubcontractorModal
.
_open
()
}
},
// 追加项目
_itemModal
(
data
)
{
this
.
$refs
.
refModal
.
_open
(
data
)
},
_upload
(
id
)
{
// 上传文件
this
.
$refs
.
refModal
.
_open
(
id
,
'subcontractorId'
)
},
_getById
:
async
function
(
id
)
{
const
result
=
await
meterEntrust
.
getVOById
(
id
)
if
(
result
)
{
this
.
$refs
.
editSubcontractorModal
.
_openEdit
(
result
)
}
},
_delete
:
async
function
(
ids
)
{
const
result
=
await
meterSubcontractor
.
deleteById
(
ids
)
if
(
result
)
{
this
.
_formSearch
()
this
.
$Message
.
success
(
'删除成功!'
)
}
}
}
}
</
script
>
pages/meter-business/quote-register/MeterQuoteRegisterEdit.vue
0 → 100644
View file @
b9d34c28
This diff is collapsed.
Click to expand it.
pages/meter-business/quote-register/MeterQuoteRegisterFinish.vue
0 → 100644
View file @
b9d34c28
<
template
>
<div>
<!--内容-->
<div
class=
"layout-content-padding"
>
<div
class=
"layout-content-main"
>
<Row>
<!--查询-->
<Col
span=
"24"
style=
"margin-top: 10px"
>
<Form
id=
"formId"
v-show=
"searchOpen"
:label-width=
"90"
inline
onsubmit=
"return false"
>
<label
class=
"label-sign"
></label>
<Form-item
class=
"search-item"
label=
"实验室名称:"
>
<Input
v-model=
"formObj.name"
@
on-enter=
"_formSearch"
name=
"name"
placeholder=
"请输入实验室名称"
clearable
/>
</Form-item>
<Form-item
class=
"search-item"
label=
"资质:"
>
<Input
v-model=
"formObj.aptitude"
@
on-enter=
"_formSearch"
name=
"aptitude"
placeholder=
"请输入资质"
clearable
/>
</Form-item>
<Form-item
class=
"search-btn"
>
<Button
@
click=
"_formSearch"
type=
"primary"
>
搜索
</Button>
</Form-item>
</Form>
</Col>
<!--操作-->
<Col
span=
"24"
>
<btn-list
:msg=
"btn"
:open=
"searchOpen"
:show-search-btn=
"true"
@
on-result-change=
"_btnClick"
class=
"contHide"
></btn-list>
</Col>
<!--表格-->
<Col
span=
"24"
>
<PTVXETable
ref=
"pageTable"
:table-height=
"tableHeight"
:form-id=
"formId"
:loading=
"true"
:get-page=
"getPage"
:icon-msg=
"iconMsg"
@
on-result-change=
"_tableResultChange"
hide-checkbox
>
<vxe-table-column
v-for=
"item in pageColumns"
:key=
"item.key"
:field=
"item.key"
:title=
"item.title"
:min-width=
"item.width?item.width:200"
:fixed=
"item.fixed?item.fixed:undefined"
sortable
>
<template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
[
item
.
key
]
}}
</span>
</
template
>
</vxe-table-column>
</PTVXETable>
</Col>
</Row>
</div>
</div>
<MeterSubcontractorEdit
ref=
"editSubcontractorModal"
@
on-result-change=
"_formSearch"
></MeterSubcontractorEdit>
</div>
</template>
<
script
>
import
{
meterEntrust
,
meterSubcontractor
}
from
'../../../api'
import
MeterSubcontractorEdit
from
'./MeterQuoteRegisterEdit'
export
default
{
components
:
{
MeterSubcontractorEdit
},
data
()
{
return
{
currentComponent
:
''
,
formId
:
'meterSubcontractorFormId'
,
searchOpen
:
false
,
btn
:
[
{
type
:
'success'
,
id
:
'meter-subcontractor-add-btn'
,
name
:
'添加'
}
],
iconMsg
:
[
{
type
:
'ios-clock'
,
id
:
''
,
name
:
'编辑'
},
{
type
:
'ios-clock'
,
id
:
''
,
name
:
'资质项目'
},
{
type
:
'ios-clock'
,
id
:
''
,
name
:
'附件'
},
{
type
:
'ios-clock'
,
id
:
''
,
name
:
'删除'
},
{
type
:
'ios-clock'
,
id
:
''
,
name
:
'操作日志'
}
],
formObj
:
{
name
:
undefined
,
aptitude
:
undefined
},
selectIds
:
[],
getPage
:
{},
pageColumns
:
[
{
title
:
'委托单位'
,
key
:
'client'
,
width
:
200
},
{
title
:
'联系人'
,
key
:
'person'
,
width
:
120
},
{
title
:
'联系电话'
,
key
:
'tel'
,
width
:
120
},
{
title
:
'传真'
,
key
:
'fax'
,
width
:
120
},
{
title
:
'详细地址'
,
key
:
'address'
,
width
:
250
},
{
title
:
'邮编'
,
key
:
'postcode'
},
{
title
:
'E-mail'
,
key
:
'email'
,
width
:
120
},
{
title
:
'委托日期'
,
key
:
'edate'
,
width
:
120
},
{
title
:
'费用合计'
,
key
:
'fee'
,
width
:
120
},
{
title
:
'合同号'
,
key
:
'contractCode'
,
width
:
120
},
{
title
:
'备注'
,
key
:
'remark'
}
]
}
},
computed
:
{
tableHeight
:
function
()
{
if
(
this
.
searchOpen
)
{
return
this
.
$tableHeight
(
'search'
)
}
else
{
return
this
.
$tableHeight
(
'noSearch'
)
}
}
},
mounted
()
{
this
.
_page
()
},
methods
:
{
_modalResult
()
{
if
(
this
.
currentComponent
===
'FoodSubcontracterEdit'
)
{
this
.
_page
()
}
},
_btnClick
(
msg
,
componentName
)
{
this
.
currentComponent
=
componentName
this
.
$nextTick
(
function
()
{
switch
(
msg
)
{
case
'添加'
:
this
.
_editModal
(
false
)
break
case
'search'
:
this
.
searchOpen
=
!
this
.
searchOpen
break
}
})
},
_iconClick
(
res
,
data
,
componentName
)
{
this
.
currentComponent
=
componentName
this
.
$nextTick
(
function
()
{
switch
(
res
)
{
case
'编辑'
:
this
.
_editModal
(
true
,
data
.
id
)
break
case
'资质项目'
:
this
.
_itemModal
(
data
.
id
)
break
case
'附件'
:
this
.
_upload
(
data
.
id
)
break
case
'删除'
:
this
.
_deleteByIds
([
data
.
id
])
break
case
'操作日志'
:
this
.
_record
(
data
.
id
)
break
}
})
},
_record
(
id
)
{
this
.
$refs
.
refModal
.
_open
(
id
)
},
_tableResultChange
(
msg
,
data
)
{
switch
(
msg
)
{
case
'page'
:
this
.
getPage
=
this
.
$store
.
state
.
FoodSubcontracter
.
page
break
case
'iconClick'
:
this
.
_iconClick
(
data
.
name
,
data
.
rowData
,
data
.
componentName
)
break
case
'changeSize'
:
this
.
_page
()
break
}
},
_page
:
async
function
()
{
Object
.
assign
(
this
.
formObj
,
this
.
$refs
.
pageTable
.
_searchParams
())
console
.
log
(
'this.formObj'
,
this
.
formObj
)
const
result
=
await
meterEntrust
.
pageSendEntrust
(
this
.
formObj
)
if
(
result
)
{
this
.
$refs
.
pageTable
.
_hideLoading
()
this
.
getPage
=
result
}
},
_formSearch
()
{
this
.
$refs
.
pageTable
.
_pageChange
(
1
)
},
// 删除
_deleteByIds
(
ids
,
content
)
{
this
.
$Modal
.
confirm
({
title
:
'提示'
,
content
:
content
||
'确定删除该记录?'
,
onOk
:
()
=>
{
this
.
_delete
(
ids
)
}
})
},
// 编辑&添加
_editModal
(
edit
,
id
)
{
if
(
edit
)
{
// 编辑
// this.$refs.editSubcontractorModal._open(id)
this
.
_getById
(
id
)
}
else
{
// 添加
this
.
$refs
.
editSubcontractorModal
.
_open
()
}
},
// 追加项目
_itemModal
(
data
)
{
this
.
$refs
.
refModal
.
_open
(
data
)
},
_upload
(
id
)
{
// 上传文件
this
.
$refs
.
refModal
.
_open
(
id
,
'subcontractorId'
)
},
_getById
:
async
function
(
id
)
{
const
result
=
await
meterSubcontractor
.
getById
(
id
)
if
(
result
)
{
this
.
$refs
.
editSubcontractorModal
.
_open
(
result
)
}
},
_delete
:
async
function
(
ids
)
{
const
result
=
await
meterSubcontractor
.
deleteById
(
ids
)
if
(
result
)
{
this
.
_formSearch
()
this
.
$Message
.
success
(
'删除成功!'
)
}
}
}
}
</
script
>
pages/meter-business/quote-register/MeterQuoteRegisterHis.vue
0 → 100644
View file @
b9d34c28
<
template
>
<div>
<!--内容-->
<div
class=
"layout-content-padding"
>
<div
class=
"layout-content-main"
>
<Row>
<!--查询-->
<Col
span=
"24"
style=
"margin-top: 10px"
>
<Form
id=
"formId"
v-show=
"searchOpen"
:label-width=
"90"
inline
onsubmit=
"return false"
>
<label
class=
"label-sign"
></label>
<Form-item
class=
"search-item"
label=
"实验室名称:"
>
<Input
v-model=
"formObj.name"
@
on-enter=
"_formSearch"
name=
"name"
placeholder=
"请输入实验室名称"
clearable
/>
</Form-item>
<Form-item
class=
"search-item"
label=
"资质:"
>
<Input
v-model=
"formObj.aptitude"
@
on-enter=
"_formSearch"
name=
"aptitude"
placeholder=
"请输入资质"
clearable
/>
</Form-item>
<Form-item
class=
"search-btn"
>
<Button
@
click=
"_formSearch"
type=
"primary"
>
搜索
</Button>
</Form-item>
</Form>
</Col>
<!--操作-->
<Col
span=
"24"
>
<btn-list
:msg=
"btn"
:open=
"searchOpen"
:show-search-btn=
"true"
@
on-result-change=
"_btnClick"
class=
"contHide"
></btn-list>
</Col>
<!--表格-->
<Col
span=
"24"
>
<PTVXETable
ref=
"pageTable"
:table-height=
"tableHeight"
:form-id=
"formId"
:loading=
"true"
:get-page=
"getPage"
:icon-msg=
"iconMsg"
@
on-result-change=
"_tableResultChange"
hide-checkbox
>
<vxe-table-column
v-for=
"item in pageColumns"
:key=
"item.key"
:field=
"item.key"
:title=
"item.title"
:min-width=
"item.width?item.width:200"
:fixed=
"item.fixed?item.fixed:undefined"
sortable
>
<template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
[
item
.
key
]
}}
</span>
</
template
>
</vxe-table-column>
</PTVXETable>
</Col>
</Row>
</div>
</div>
<MeterSubcontractorEdit
ref=
"editSubcontractorModal"
@
on-result-change=
"_formSearch"
></MeterSubcontractorEdit>
</div>
</template>
<
script
>
import
{
meterEntrust
,
meterSubcontractor
}
from
'../../../api'
import
MeterSubcontractorEdit
from
'./MeterQuoteRegisterEdit'
export
default
{
components
:
{
MeterSubcontractorEdit
},
data
()
{
return
{
currentComponent
:
''
,
formId
:
'meterSubcontractorFormId'
,
searchOpen
:
false
,
btn
:
[
{
type
:
'success'
,
id
:
'meter-subcontractor-add-btn'
,
name
:
'添加'
}
],
iconMsg
:
[
{
type
:
'ios-clock'
,
id
:
''
,
name
:
'编辑'
},
{
type
:
'ios-clock'
,
id
:
''
,
name
:
'资质项目'
},
{
type
:
'ios-clock'
,
id
:
''
,
name
:
'附件'
},
{
type
:
'ios-clock'
,
id
:
''
,
name
:
'删除'
},
{
type
:
'ios-clock'
,
id
:
''
,
name
:
'操作日志'
}
],
formObj
:
{
name
:
undefined
,
aptitude
:
undefined
},
selectIds
:
[],
getPage
:
{},
pageColumns
:
[
{
title
:
'委托单位'
,
key
:
'client'
,
width
:
200
},
{
title
:
'联系人'
,
key
:
'person'
,
width
:
120
},
{
title
:
'联系电话'
,
key
:
'tel'
,
width
:
120
},
{
title
:
'传真'
,
key
:
'fax'
,
width
:
120
},
{
title
:
'详细地址'
,
key
:
'address'
,
width
:
250
},
{
title
:
'邮编'
,
key
:
'postcode'
},
{
title
:
'E-mail'
,
key
:
'email'
,
width
:
120
},
{
title
:
'委托日期'
,
key
:
'edate'
,
width
:
120
},
{
title
:
'费用合计'
,
key
:
'fee'
,
width
:
120
},
{
title
:
'合同号'
,
key
:
'contractCode'
,
width
:
120
},
{
title
:
'备注'
,
key
:
'remark'
}
]
}
},
computed
:
{
tableHeight
:
function
()
{
if
(
this
.
searchOpen
)
{
return
this
.
$tableHeight
(
'search'
)
}
else
{
return
this
.
$tableHeight
(
'noSearch'
)
}
}
},
mounted
()
{
this
.
_page
()
},
methods
:
{
_modalResult
()
{
if
(
this
.
currentComponent
===
'FoodSubcontracterEdit'
)
{
this
.
_page
()
}
},
_btnClick
(
msg
,
componentName
)
{
this
.
currentComponent
=
componentName
this
.
$nextTick
(
function
()
{
switch
(
msg
)
{
case
'添加'
:
this
.
_editModal
(
false
)
break
case
'search'
:
this
.
searchOpen
=
!
this
.
searchOpen
break
}
})
},
_iconClick
(
res
,
data
,
componentName
)
{
this
.
currentComponent
=
componentName
this
.
$nextTick
(
function
()
{
switch
(
res
)
{
case
'编辑'
:
this
.
_editModal
(
true
,
data
.
id
)
break
case
'资质项目'
:
this
.
_itemModal
(
data
.
id
)
break
case
'附件'
:
this
.
_upload
(
data
.
id
)
break
case
'删除'
:
this
.
_deleteByIds
([
data
.
id
])
break
case
'操作日志'
:
this
.
_record
(
data
.
id
)
break
}
})
},
_record
(
id
)
{
this
.
$refs
.
refModal
.
_open
(
id
)
},
_tableResultChange
(
msg
,
data
)
{
switch
(
msg
)
{
case
'page'
:
this
.
getPage
=
this
.
$store
.
state
.
FoodSubcontracter
.
page
break
case
'iconClick'
:
this
.
_iconClick
(
data
.
name
,
data
.
rowData
,
data
.
componentName
)
break
case
'changeSize'
:
this
.
_page
()
break
}
},
_page
:
async
function
()
{
Object
.
assign
(
this
.
formObj
,
this
.
$refs
.
pageTable
.
_searchParams
())
console
.
log
(
'this.formObj'
,
this
.
formObj
)
const
result
=
await
meterEntrust
.
pageSendEntrust
(
this
.
formObj
)
if
(
result
)
{
this
.
$refs
.
pageTable
.
_hideLoading
()
this
.
getPage
=
result
}
},
_formSearch
()
{
this
.
$refs
.
pageTable
.
_pageChange
(
1
)
},
// 删除
_deleteByIds
(
ids
,
content
)
{
this
.
$Modal
.
confirm
({
title
:
'提示'
,
content
:
content
||
'确定删除该记录?'
,
onOk
:
()
=>
{
this
.
_delete
(
ids
)
}
})
},
// 编辑&添加
_editModal
(
edit
,
id
)
{
if
(
edit
)
{
// 编辑
// this.$refs.editSubcontractorModal._open(id)
this
.
_getById
(
id
)
}
else
{
// 添加
this
.
$refs
.
editSubcontractorModal
.
_open
()
}
},
// 追加项目
_itemModal
(
data
)
{
this
.
$refs
.
refModal
.
_open
(
data
)
},
_upload
(
id
)
{
// 上传文件
this
.
$refs
.
refModal
.
_open
(
id
,
'subcontractorId'
)
},
_getById
:
async
function
(
id
)
{
const
result
=
await
meterSubcontractor
.
getById
(
id
)
if
(
result
)
{
this
.
$refs
.
editSubcontractorModal
.
_open
(
result
)
}
},
_delete
:
async
function
(
ids
)
{
const
result
=
await
meterSubcontractor
.
deleteById
(
ids
)
if
(
result
)
{
this
.
_formSearch
()
this
.
$Message
.
success
(
'删除成功!'
)
}
}
}
}
</
script
>
pages/meter-business/quote-register/MeterQuoteRegisterIndex.vue
0 → 100644
View file @
b9d34c28
<
template
>
<div>
<div
class=
"layout-content-padding"
>
<div
class=
"layout-content-main"
>
<el-tabs
v-model=
"activeName"
>
<el-tab-pane
label=
"待完成"
name=
"wait"
>
<MeterSendEntrust
ref=
"waitTabs"
></MeterSendEntrust>
</el-tab-pane>
<el-tab-pane
label=
"已完成"
name=
"finish"
>
<MeterSendEntrustFinish
ref=
"finishTabs"
></MeterSendEntrustFinish>
</el-tab-pane>
<el-tab-pane
label=
"历史记录"
name=
"his"
>
<MeterSendEntrustHis
ref=
"hisTabs"
></MeterSendEntrustHis>
</el-tab-pane>
</el-tabs>
</div>
</div>
</div>
</
template
>
<
script
>
import
MeterSendEntrust
from
'./MeterQuoteRegister'
import
MeterSendEntrustFinish
from
'./MeterQuoteRegisterFinish'
import
MeterSendEntrustHis
from
'./MeterQuoteRegisterHis'
export
default
{
name
:
'MeterSendEntrustIndex'
,
components
:
{
MeterSendEntrust
,
MeterSendEntrustFinish
,
MeterSendEntrustHis
},
data
()
{
return
{
activeName
:
'wait'
}
}
}
</
script
>
<
style
scoped
>
</
style
>
pages/meter-business/quote-register/MeterQuoteRegisterOperation.vue
0 → 100644
View file @
b9d34c28
<
template
>
<div>
<Modal
v-model=
"showModal"
width=
"900"
class=
"modal-footer-none zIndex-1100"
>
<p
slot=
"header"
>
操作日志
</p>
<div>
<Row>
<!--查询-->
<Col
span=
"24"
>
<Form
id=
"search-contract-record"
:label-width=
"70"
inline
onsubmit=
"return false"
>
<label
class=
"label-sign"
></label>
<Form-item
label=
"操作阶段:"
>
<Input
v-model=
"formObj.origin"
@
on-enter=
"_search"
placeholder=
"请输入操作阶段"
style=
"width: 200px"
clearable
/>
</Form-item>
<Form-item
class=
"search-btn"
>
<Button
@
click=
"_search"
type=
"primary"
>
搜索
</Button>
</Form-item>
</Form>
</Col>
<!-- 表格 -->
<Col
span=
"24"
>
<PTVXETable
ref=
"pageTable"
:tableHeight=
"tableHeight"
@
on-result-change=
"_tableResultChange"
:getPage=
"getPage"
hide-checkbox
>
<vxe-table-column
:field=
"item.key"
:title=
"item.title"
:min-width=
"item.width?item.width:200"
:fixed=
"item.fixed?item.fixed:undefined"
v-for=
"item in pageColumns"
:key=
"item.key"
>
<template
slot-scope=
"scope"
>
<span
v-if=
"item.key==='type'"
>
{{
scope
.
row
[
item
.
key
]
===
0
?
'流转'
:
scope
.
row
[
item
.
key
]
===
1
?
'退回'
:
scope
.
row
[
item
.
key
]
===
2
?
'更新'
:
scope
.
row
[
item
.
key
]
===
3
?
'转发'
:
'文件'
}}
</span>
<span
v-else-if=
"item.key==='ctime'"
>
{{
scope
.
row
[
item
.
key
]?
$dateformat
(
scope
.
row
[
item
.
key
],
'yyyy-mm-dd HH:MM:ss'
):
''
}}
</span>
<span
v-else
>
{{
scope
.
row
[
item
.
key
]
}}
</span>
</
template
>
</vxe-table-column>
</PTVXETable>
</Col>
</Row>
</div>
</Modal>
</div>
</template>
<
script
>
/**
* 操作日志-委托
*/
import
{
meterEntrust
}
from
'../../../api'
export
default
{
data
()
{
return
{
showModal
:
false
,
getPage
:
{},
pageColumns
:
[
{
title
:
'操作类型'
,
key
:
'type'
,
width
:
80
},
{
title
:
'操作阶段'
,
key
:
'origin'
,
width
:
120
},
{
title
:
'目标阶段'
,
key
:
'target'
,
width
:
120
},
{
title
:
'操作人'
,
key
:
'operator'
,
width
:
80
},
{
title
:
'操作时间'
,
key
:
'ctime'
,
width
:
150
},
{
title
:
'操作原因'
,
key
:
'remark'
},
{
title
:
'责任人'
,
key
:
'liable'
,
width
:
80
}
],
formObj
:
{
origin
:
''
,
contractId
:
''
}
}
},
computed
:
{
tableHeight
:
function
()
{
return
this
.
$tableHeight
(
'tableModal'
)
}
},
methods
:
{
_open
(
contractId
)
{
this
.
showModal
=
true
this
.
formObj
.
contractId
=
contractId
this
.
formObj
.
origin
=
''
this
.
_page
()
},
_page
:
async
function
()
{
console
.
log
(
'要传的参数'
)
console
.
log
(
this
.
formObj
)
const
result
=
await
meterEntrust
.
pageOutTaskOperation
(
this
.
formObj
)
console
.
log
(
result
)
if
(
result
)
{
this
.
getPage
=
result
}
// this.$refs.pageTable._page(
// 'search-contract-record',
// 'FoodContractRecord/page',
// this.$serializeFormSearch(this.formObj)
// )
},
_tableResultChange
(
msg
,
data
)
{
switch
(
msg
)
{
case
'page'
:
this
.
getPage
=
this
.
$store
.
state
.
FoodContractRecord
.
page
break
case
'changeSize'
:
this
.
_page
()
break
}
},
_search
()
{
this
.
$refs
.
pageTable
.
_pageChange
(
1
)
}
}
}
</
script
>
pages/meter-send/sample-input/MeterSampleInput.vue
View file @
b9d34c28
...
@@ -279,7 +279,7 @@ export default {
...
@@ -279,7 +279,7 @@ export default {
_page
:
async
function
()
{
_page
:
async
function
()
{
Object
.
assign
(
this
.
formObj
,
this
.
$refs
.
pageTable
.
_searchParams
())
Object
.
assign
(
this
.
formObj
,
this
.
$refs
.
pageTable
.
_searchParams
())
console
.
log
(
'this.formObj'
,
this
.
formObj
)
console
.
log
(
'this.formObj'
,
this
.
formObj
)
const
result
=
await
meterSample
.
page
OutPersonalTask
(
this
.
formObj
)
const
result
=
await
meterSample
.
page
SampleInput
(
this
.
formObj
)
if
(
result
)
{
if
(
result
)
{
this
.
$refs
.
pageTable
.
_hideLoading
()
this
.
$refs
.
pageTable
.
_hideLoading
()
this
.
getPage
=
result
this
.
getPage
=
result
...
...
router/meter-routes.js
View file @
b9d34c28
...
@@ -24,6 +24,7 @@ import MeterEntrustReceiveIndex from '../pages/meter-send/receive-sample/MeterEn
...
@@ -24,6 +24,7 @@ import MeterEntrustReceiveIndex from '../pages/meter-send/receive-sample/MeterEn
import
MeterTaskDistributeIndex
from
'../pages/meter-send/task-distribute/MeterTaskDistributeIndex'
import
MeterTaskDistributeIndex
from
'../pages/meter-send/task-distribute/MeterTaskDistributeIndex'
import
MeterSampleFlowIndex
from
'../pages/meter-send/sample-flow/MeterSampleFlowIndex'
import
MeterSampleFlowIndex
from
'../pages/meter-send/sample-flow/MeterSampleFlowIndex'
import
MeterSampleInputIndex
from
'../pages/meter-send/sample-input/MeterSampleInputIndex'
import
MeterSampleInputIndex
from
'../pages/meter-send/sample-input/MeterSampleInputIndex'
import
MeterQuoteRegisterIndex
from
'../pages/meter-business/quote-register/MeterQuoteRegisterIndex'
import
Blank
from
'~/pages/blank'
import
Blank
from
'~/pages/blank'
export
default
[
export
default
[
{
{
...
@@ -145,5 +146,16 @@ export default [
...
@@ -145,5 +146,16 @@ export default [
meta
:
{
title
:
'证书签发'
}
meta
:
{
title
:
'证书签发'
}
}
}
]
]
},
{
path
:
'business'
,
component
:
Blank
,
children
:
[
{
path
:
'quote_register'
,
component
:
MeterQuoteRegisterIndex
,
meta
:
{
title
:
'报价登记'
}
}
]
}
}
]
]
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