Commit 4bde23b7 by zhangmengqi

Merge branch 'dev'

parents cabc189b f19c568f
...@@ -162,5 +162,21 @@ export default { ...@@ -162,5 +162,21 @@ export default {
backupRecordPage: data => backupRecordPage: data =>
http.post('soil/v1/sample_backup_record/page', data).then(res => res), http.post('soil/v1/sample_backup_record/page', data).then(res => res),
experimentRecordPage: data => experimentRecordPage: data =>
http.post('soil/v1/experiment_record/page', data).then(res => res) http.post('soil/v1/experiment_record/page', data).then(res => res),
pageGroupExpReportMake: data =>
http
.post('soil/v1/exp_report/page_group_exp_report_make', data)
.then(res => res),
pageGroupExpReportCheck: data =>
http
.post('soil/v1/exp_report/page_group_exp_report_check', data)
.then(res => res),
pageGroupExpReportIssue: data =>
http
.post('soil/v1/exp_report/page_group_exp_report_issue', data)
.then(res => res),
pageGroupExpReportEnd: data =>
http
.post('soil/v1/exp_report/page_group_exp_report_end', data)
.then(res => res)
} }
...@@ -53,5 +53,31 @@ export default { ...@@ -53,5 +53,31 @@ export default {
.post('soil/v1/experiment/list_experiment_progress', data) .post('soil/v1/experiment/list_experiment_progress', data)
.then(res => res), .then(res => res),
listSampleProgress: data => listSampleProgress: data =>
http.post('soil/v1/sample/list_sample_progress', data).then(res => res) http.post('soil/v1/sample/list_sample_progress', data).then(res => res),
pageExpReportMake: data =>
http.post('soil/v1/entrust/page_exp_report_make', data).then(res => res),
pageExpReportCheck: data =>
http.post('soil/v1/entrust/page_exp_report_check', data).then(res => res),
pageExpReportIssue: data =>
http.post('soil/v1/entrust/page_exp_report_issue', data).then(res => res),
pageExpReportEnd: data =>
http.post('soil/v1/entrust/page_exp_report_end', data).then(res => res),
expReportCheckApprove: data =>
http
.post('soil/v1/exp_report/exp_report_approve?ids=' + data)
.then(res => res),
expReportCheckSubmit: data =>
http
.post('soil/v1/exp_report/exp_report_check?ids=' + data)
.then(res => res),
expReportIssueSubmit: data =>
http
.post('soil/v1/exp_report/exp_report_issue?ids=' + data)
.then(res => res),
pagePersonalTaskStatistics: data =>
http
.post('soil/v1/statistics/page_personal_task_statistics', data)
.then(res => res),
_getLabel: data => http.post('/res/v1/label/page', data).then(res => res)
} }
...@@ -48,7 +48,17 @@ export default { ...@@ -48,7 +48,17 @@ export default {
.post('soil/v1/experiment/page_allot_by_exp_his', data) .post('soil/v1/experiment/page_allot_by_exp_his', data)
.then(res => res), .then(res => res),
pageExperimentAllot: data => pageExperimentAllot: data =>
http.post('soil/v1/experiment/page_exp_allot', data).then(res => res), http.post('soil/v1/experiment/page_exp_allot_bath', data).then(res => res),
pageExperimentAllotBath: data =>
https
.post(
'soil/v1/experiment/page_exp_allot_bath?page=' +
data.page +
'&rows=' +
data.rows,
JSON.stringify(data.obj)
)
.then(res => res),
pageExperimentAllotHis: data => pageExperimentAllotHis: data =>
http.post('soil/v1/experiment/page_exp_allot_his', data).then(res => res), http.post('soil/v1/experiment/page_exp_allot_his', data).then(res => res),
pageTestByExp: data => pageTestByExp: data =>
...@@ -178,9 +188,20 @@ export default { ...@@ -178,9 +188,20 @@ export default {
http.delete('soil/v1/original_record/?ids=' + data).then(res => res), http.delete('soil/v1/original_record/?ids=' + data).then(res => res),
expReportPage: data => expReportPage: data =>
http.post('soil/v1/exp_report/page', data).then(res => res), http.post('soil/v1/exp_report/page', data).then(res => res),
pageExpReportEnd: data =>
http
.post('soil/v1/exp_report/page_group_exp_report_end', data)
.then(res => res),
pageExperimentReport: data => pageExperimentReport: data =>
http.post('soil/v1/exp_report/page', data).then(res => res), http.post('soil/v1/exp_report/page', data).then(res => res),
deleteReport: data => deleteReport: data =>
http.delete('soil/v1/exp_report/?ids=' + data).then(res => res), http.delete('soil/v1/exp_report/?ids=' + data).then(res => res),
reportPage: data => http.post('soil/v1/report/page', data).then(res => res) reportPage: data => http.post('soil/v1/report/page', data).then(res => res),
dataGds: data => http.get('soil/v1/data_gds/' + data).then(res => res),
gdsGetMainInfo: data =>
http
.post('soil/v1/data_gds/get_main_info?sampleCode=' + data)
.then(res => res),
dataGdsDetail: data =>
http.post('soil/v1/data_gds_detail/page', data).then(res => res)
} }
...@@ -19,7 +19,6 @@ module.exports = { ...@@ -19,7 +19,6 @@ module.exports = {
title: '土工试验LIMS', title: '土工试验LIMS',
meta: [ meta: [
{ charset: 'utf-8' }, { charset: 'utf-8' },
{ name: 'viewport', content: 'width=device-width, initial-scale=1' },
{ hid: 'description', name: 'description', content: pkg.description } { hid: 'description', name: 'description', content: pkg.description }
], ],
script: [ script: [
......
<!--检测项目编辑列表(添加、导入检测项目)-->
<template> <template>
<div> <div>
<Modal <Modal
...@@ -13,9 +12,6 @@ ...@@ -13,9 +12,6 @@
<Form-item class="search-item" label="试验名称:" style="margin-left: -25px"> <Form-item class="search-item" label="试验名称:" style="margin-left: -25px">
<Input v-model="formObj.name" @on-enter="_formSearch" placeholder="请输入试验名称" clearable /> <Input v-model="formObj.name" @on-enter="_formSearch" placeholder="请输入试验名称" clearable />
</Form-item> </Form-item>
<!-- <Form-item class="search-item" label="检测依据:">-->
<!-- <Input v-model="formObj.code" placeholder="请输入检测依据名称" clearable @on-enter="_formSearch" />-->
<!-- </Form-item>-->
<Form-item class="search-btn"> <Form-item class="search-btn">
<Button @click="_formSearch" type="primary"> <Button @click="_formSearch" type="primary">
搜索 搜索
...@@ -111,14 +107,6 @@ export default { ...@@ -111,14 +107,6 @@ export default {
{ title: '大类', key: 'mainType', width: 140 }, { title: '大类', key: 'mainType', width: 140 },
{ title: '小类', key: 'smallType', width: 140 }, { title: '小类', key: 'smallType', width: 140 },
{ title: '方法', key: 'testMethod', width: 180 } { title: '方法', key: 'testMethod', width: 180 }
// { title: '设备', key: 'device', width: 180 },
// { title: '检测依据', key: 'code', width: 180 },
// { title: '检测科室', key: 'groupName', width: 110 },
// { title: '比较符', key: 'compareSymbol', width: 120 },
// { title: '限值', key: 'limitValue' },
// { title: '单位', key: 'unit' },
// { title: '是否系统判定', key: 'judged', width: 120, judged: true },
// { title: '备注', key: 'remark' }
], ],
catalogueId: '', catalogueId: '',
getPage: {}, getPage: {},
...@@ -204,14 +192,6 @@ export default { ...@@ -204,14 +192,6 @@ export default {
} }
}) })
}, },
// _deleteOk: async function(id) {
// // const result = await drugCatalogueItem.deleteById(id)
// if (result) {
// this.$Message.success('删除成功')
// this._page()
// }
// },
// table结果 返回整行
_tableResultChange(msg, data) { _tableResultChange(msg, data) {
switch (msg) { switch (msg) {
case 'page': case 'page':
......
...@@ -14,24 +14,6 @@ ...@@ -14,24 +14,6 @@
<Form-item class="search-item" label="检测依据名称:"> <Form-item class="search-item" label="检测依据名称:">
<Input @on-enter="_formSearch" v-model="formObj.name" name="name" placeholder="请输入检测依据名称" clearable/> <Input @on-enter="_formSearch" v-model="formObj.name" name="name" placeholder="请输入检测依据名称" clearable/>
</Form-item> </Form-item>
<!-- <Form-item class="search-item" label="标准状态:">-->
<!-- <Select name="status" placeholder="请选择标准状态" clearable>-->
<!-- <Option v-for="item in statusList" :value="item.value" :key="item.name">{{item.name}}</Option>-->
<!-- </Select>-->
<!-- </Form-item>-->
<!-- <Form-item class="search-item" label="标准分类:">-->
<!-- <Select name='classify' placeholder="请选择标准分类" clearable>-->
<!-- <Option v-for="item in classifyList" :value="item.value" :key="item.name">{{item.name}}</Option>-->
<!-- </Select>-->
<!-- </Form-item>-->
<!-- <Form-item label="标准类型:" class="search-item margin-left-6">-->
<!-- <Select name="type" placeholder="请选择标准类型" clearable>-->
<!-- <Option v-for="item in typeList" :value="item.value" :key="item.value">{{ item.name }}</Option>-->
<!-- </Select>-->
<!-- </Form-item>-->
<!-- <Form-item class="search-item" label="发布单位:">-->
<!-- <Input @on-enter="_formSearch" name="publishUnit" placeholder="请输入发布单位" clearable/>-->
<!-- </Form-item>-->
<Form-item class="search-btn"> <Form-item class="search-btn">
<Button @click="_formSearch" type="primary">搜索</Button> <Button @click="_formSearch" type="primary">搜索</Button>
</Form-item> </Form-item>
......
...@@ -38,7 +38,10 @@ ...@@ -38,7 +38,10 @@
:fixed="item.fixed?item.fixed:undefined" sortable> :fixed="item.fixed?item.fixed:undefined" sortable>
<template slot-scope="scope"> <template slot-scope="scope">
<span v-if="item.date">{{scope.row[item.key]?$dateformat(scope.row[item.key],'yyyy-mm-dd'):''}}</span> <span v-if="item.date">{{scope.row[item.key]?$dateformat(scope.row[item.key],'yyyy-mm-dd'):''}}</span>
<span v-else-if="item.status">{{scope.row[item.key].display}}</span> <div v-else-if="item.status">
<span v-if="scope.row[item.key].display === '委托单评审驳回'" style="color: red;">{{ scope.row[item.key] === undefined ? '': scope.row[item.key].display }}</span>
<span v-else>{{ scope.row[item.key] === undefined ? '': scope.row[item.key].display }}</span>
</div>
<span v-else-if="item.key==='backReasons'" style="color: red">{{scope.row[item.key]}}</span> <span v-else-if="item.key==='backReasons'" style="color: red">{{scope.row[item.key]}}</span>
<span v-else>{{scope.row[item.key]}}</span> <span v-else>{{scope.row[item.key]}}</span>
</template> </template>
......
...@@ -119,11 +119,6 @@ export default { ...@@ -119,11 +119,6 @@ export default {
this.selectData = [] this.selectData = []
console.log(expList) console.log(expList)
this.$refs.pageTable._clearSelection() this.$refs.pageTable._clearSelection()
// this.formObj.sampleId = id
// this.$refs.pageTable._hideLoading()
// if (catalogueId) {
// this._page()
// }
}, },
_handleRow(scope) { _handleRow(scope) {
console.log(scope) console.log(scope)
...@@ -147,7 +142,6 @@ export default { ...@@ -147,7 +142,6 @@ export default {
} }
}, },
_page: async function() { _page: async function() {
// this.$refs.pageTable._page('search-form-package', 'FoodJudgeBasis/page')
Object.assign(this.formObj, this.$refs.pageTable._searchParams()) Object.assign(this.formObj, this.$refs.pageTable._searchParams())
const result = await soilEntrust.pageItem( const result = await soilEntrust.pageItem(
this.$serializeForm(this.formObj) this.$serializeForm(this.formObj)
......
...@@ -4,11 +4,10 @@ ...@@ -4,11 +4,10 @@
<p slot="header">{{modalTitle}}</p> <p slot="header">{{modalTitle}}</p>
<div> <div>
<Form id="edit-form" ref="formObj" :model="formObj" :rules="ruleValidate" :label-width="100" inline> <Form id="edit-form" ref="formObj" :model="formObj" :rules="ruleValidate" :label-width="100" inline>
<Form-item label="库房号" prop="storehouse" style="width: 100%"> <Form-item @click.native="_storageModel()" label="库房号" prop="storehouse" style="width: 100%">
<Input v-model="formObj.storehouse" name="storehouse" placeholder="请输入库房号" style="width: 95%;"/> <Input v-model="formObj.storehouse" name="storehouse" placeholder="请输入库房号"/>
<span @click="_storageModel()" style="font-size: 20px;color: #00b5ec">+</span>
</Form-item> </Form-item>
<Form-item label="架位号" prop="shelfCode" style="width: 100%"> <Form-item @click.native="_storageModel()" label="架位号" prop="shelfCode" style="width: 100%">
<Input v-model="formObj.shelfCode" name="shelfCode" placeholder="请输入架位号"/> <Input v-model="formObj.shelfCode" name="shelfCode" placeholder="请输入架位号"/>
</Form-item> </Form-item>
<Form-item label="入库人" prop="inStocker" style="width: 100%"> <Form-item label="入库人" prop="inStocker" style="width: 100%">
...@@ -99,7 +98,7 @@ export default { ...@@ -99,7 +98,7 @@ export default {
} }
], ],
ruleValidate: { ruleValidate: {
warehouse: [ storehouse: [
{ required: true, message: '库房号不能为空', trigger: 'blur' } { required: true, message: '库房号不能为空', trigger: 'blur' }
] ]
}, },
......
<template>
<div>
<div class="layout-content-padding">
<div class="layout-content-main">
<el-tabs v-model="activeName" @tab-click="_changeTabs">
<el-tab-pane label="试验项目报告审核" name="lab">
<reportMake ref="labTabs" />
</el-tab-pane>
<el-tab-pane label="试验项目报告审核历史" name="his">
<historyTask ref="hisTabs" />
</el-tab-pane>
</el-tabs>
</div>
</div>
</div>
</template>
<script>
import reportMake from './tabs/ExpReportCheck'
import historyTask from './tabs/ExpReportCheckHis'
export default {
components: { reportMake, historyTask },
data() {
return {
activeName: 'lab'
}
},
mounted() {
this.activeName = 'lab'
this._page()
},
methods: {
_changeTabs(tab, event) {
if (tab.name === 'lab') {
this._page()
} else {
this.$refs.hisTabs._clearPage()
this.$refs.hisTabs._page()
}
},
_page() {
this.$refs.labTabs._clearPage()
this.$refs.labTabs._page()
}
}
}
</script>
<template>
<div>
<Modal v-model="showModal" v-drag width="1050" 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.expName" name="expName" placeholder="请输入项目名称" style="width: 200px"
clearable @on-enter="_search"/>
</Form-item>
<Form-item class="search-btn">
<Button type="primary" @click="_search">搜索</Button>
</Form-item>
</Form>
</Col>
<Col span="24">
<btn-list :msg="btn" :open="searchOpen" show-search-btn="true" @on-result-change="_btnClick" />
</Col>
<!-- 表格 -->
<Col span="24">
<PTVXETable ref="pageTable" :table-height="tableHeight"
:get-page="getPage" :icon-msg="iconMsg" show-check-box @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">
<template slot-scope="scope">
<span v-if="item.key==='status'">
{{scope.row[item.key].display}}
</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, soilReport, soilStatistics } from '../../../api'
import Global from '../../../api/config'
export default {
data() {
return {
showModal: false,
getPage: {},
searchOpen: false,
selectIds: [],
pageColumns: [
{ title: '项目名称', key: 'expName' },
{ title: '检测科室', key: 'groupName' },
{ title: '状态', key: 'status' },
{ title: '备注', key: 'remark' },
{ title: '创建人', key: 'uname' },
{ title: '创建时间', key: 'ctime', dateTime: true }
],
btn: [{ id: '', type: 'primary', name: '提交至签发' }],
iconMsg: [
{
type: 'ios-book',
id: '',
name: '查看项目报告'
}
],
formObj: {
entrustId: undefined,
expName: undefined,
groupId: undefined
}
}
},
computed: {
tableHeight: function() {
return this.$tableHeight('tableModal')
}
},
methods: {
_open(data) {
this.showModal = true
this.formObj.entrustId = data.id
this.formObj.groupId = data.groupId
this._page()
},
_btnClick(msg, data) {
switch (msg) {
case '提交至签发':
this._submitExpReportCheck()
break
case 'search':
this.searchOpen = !this.searchOpen
break
}
},
_iconClick(res, data) {
this.$nextTick(() => {
switch (res) {
case '查看项目报告':
this._reportView(data)
// this._recordView(data.originalRecordId)
break
case '查看试验项目':
this._itemView(data.id)
break
case '删除':
this._deleteByIds([data.id])
break
}
})
},
_reportView(data) {
if (data.objectKey) {
this._reportMakeLook(data)
} else {
this._recordView(data.originalRecordId)
}
},
_reportMakeLook: async function(data) {
console.log(data)
const result = await soilReport.expReportGetById(data.id)
if (result) {
console.log('result')
this._viewReport(result)
}
},
_viewReport(data) {
if (data) {
this.$openWindowModeless({
objectKey: data.objectKey,
idType: 13,
id: data.id,
isReport: 4
})
}
},
// 查看原始记录
_recordView(originalRecordId) {
let recordUrl = ''
if (process.env.NODE_ENV === 'production') {
recordUrl = 'http://record.patzn.com'
} else {
recordUrl = Global.recordURL
}
// eslint-disable-next-line no-undef
layx.iframe(
'labRecordWriteOriView',
'原始记录预览',
recordUrl + '/print/v1/form/' + originalRecordId + '?type=ENVTESTMAKE',
{
event: {
onload: {
after: function(layxWindow, winform) {
// eslint-disable-next-line no-undef
layx.max(winform.id)
}
}
}
}
)
},
_submitExpReportCheck() {
const ids = this.selectIds
if (ids.length === 0) {
this.$Message.warning('请至少选择一条数据!')
} else {
this._submitExpReportCheckConfirm(
ids,
`确认要提交 ${ids.length} 条数据吗?`
)
}
},
_submitExpReportCheckConfirm(ids, content) {
this.$Modal.confirm({
title: '提示',
content: content || `确定要处理该条数据吗?`,
onOk: () => {
this._submitExpReportCheckOk(ids)
}
})
},
async _submitExpReportCheckOk(ids) {
const result = await soilStatistics.expReportCheckSubmit(ids)
if (result) {
this._resultChange('提交成功!')
}
},
_resultChange(msg) {
this.$Message.success(msg)
this._page()
this.$emit('on-result-change')
},
_page: async function() {
Object.assign(this.formObj, this.$refs.pageTable._searchParams())
const result = await meterEntrust.pageGroupExpReportCheck(this.formObj)
console.log(result)
if (result) {
this.getPage = result
this.$refs.pageTable._hideLoading()
}
},
_tableResultChange(msg, data) {
switch (msg) {
case 'changeSize':
this._page()
break
case 'selectIds':
this.selectIds = data
break
case 'iconClick':
this._iconClick(data.name, data.rowData)
break
}
},
_search() {
this._page()
}
}
}
</script>
<template>
<div>
<Modal v-model="showModal" v-drag width="1050" 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.expName" name="expName" placeholder="请输入项目名称" style="width: 200px"
clearable @on-enter="_search"/>
</Form-item>
<Form-item class="search-btn">
<Button type="primary" @click="_search">搜索</Button>
</Form-item>
</Form>
</Col>
<Col span="24">
<btn-list :msg="btn" :open="searchOpen" show-search-btn="true" @on-result-change="_btnClick" />
</Col>
<!-- 表格 -->
<Col span="24">
<PTVXETable ref="pageTable" :table-height="tableHeight"
:get-page="getPage" :icon-msg="iconMsg" show-check-box @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">
<template slot-scope="scope">
<span v-if="item.key==='status'">
{{scope.row[item.key].display}}
</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, soilReport, soilStatistics } from '../../../api'
import Global from '../../../api/config'
export default {
data() {
return {
showModal: false,
getPage: {},
searchOpen: false,
selectIds: [],
pageColumns: [
{ title: '项目名称', key: 'expName' },
{ title: '检测科室', key: 'groupName' },
{ title: '状态', key: 'status' },
{ title: '备注', key: 'remark' },
{ title: '创建人', key: 'uname' },
{ title: '创建时间', key: 'ctime', dateTime: true }
],
btn: [],
iconMsg: [
{
type: 'ios-book',
id: '',
name: '查看项目报告'
}
],
formObj: {
entrustId: undefined,
expName: undefined,
groupId: undefined
}
}
},
computed: {
tableHeight: function() {
return this.$tableHeight('tableModal')
}
},
methods: {
_open(data) {
this.showModal = true
this.formObj.entrustId = data.id
this.formObj.groupId = data.groupId
this._page()
},
_btnClick(msg, data) {
switch (msg) {
case '通过':
this._submitExpReportIssue()
break
case 'search':
this.searchOpen = !this.searchOpen
break
}
},
_iconClick(res, data) {
this.$nextTick(() => {
switch (res) {
case '查看项目报告':
this._reportView(data)
// this._recordView(data.originalRecordId)
break
case '查看试验项目':
this._itemView(data.id)
break
case '删除':
this._deleteByIds([data.id])
break
}
})
},
_reportView(data) {
if (data.objectKey) {
this._reportMakeLook(data)
} else {
this._recordView(data.originalRecordId)
}
},
_reportMakeLook: async function(data) {
console.log(data)
const result = await soilReport.expReportGetById(data.id)
if (result) {
console.log('result')
this._viewReport(result)
}
},
_viewReport(data) {
if (data) {
this.$openWindowModeless({
objectKey: data.objectKey,
idType: 13,
id: data.id,
isReport: 4
})
}
},
// 查看原始记录
_recordView(originalRecordId) {
let recordUrl = ''
if (process.env.NODE_ENV === 'production') {
recordUrl = 'http://record.patzn.com'
} else {
recordUrl = Global.recordURL
}
// eslint-disable-next-line no-undef
layx.iframe(
'labRecordWriteOriView',
'原始记录预览',
recordUrl + '/print/v1/form/' + originalRecordId + '?type=ENVTESTMAKE',
{
event: {
onload: {
after: function(layxWindow, winform) {
// eslint-disable-next-line no-undef
layx.max(winform.id)
}
}
}
}
)
},
_submitExpReportIssue() {
const ids = this.selectIds
if (ids.length === 0) {
this.$Message.warning('请至少选择一条数据!')
} else {
this._submitExpReportIssueConfirm(
ids,
`确认要提交 ${ids.length} 条数据吗?`
)
}
},
_submitExpReportIssueConfirm(ids, content) {
this.$Modal.confirm({
title: '提示',
content: content || `确定要处理该条数据吗?`,
onOk: () => {
this.__submitExpReportIssueOk(ids)
}
})
},
async __submitExpReportIssueOk(ids) {
const result = await soilStatistics.expReportIssueSubmit(ids)
if (result) {
this._resultChange('提交成功!')
}
},
_resultChange(msg) {
this.$Message.success(msg)
this._page()
this.$emit('on-result-change')
},
_page: async function() {
Object.assign(this.formObj, this.$refs.pageTable._searchParams())
const result = await meterEntrust.pageGroupExpReportEnd(this.formObj)
console.log(result)
if (result) {
this.getPage = result
this.$refs.pageTable._hideLoading()
}
},
_tableResultChange(msg, data) {
switch (msg) {
case 'changeSize':
this._page()
break
case 'selectIds':
this.selectIds = data
break
case 'iconClick':
this._iconClick(data.name, data.rowData)
break
}
},
_search() {
this._page()
}
}
}
</script>
<template>
<div>
<div class="layout-content-padding">
<div class="layout-content-main">
<el-tabs v-model="activeName" @tab-click="_changeTabs">
<el-tab-pane label="试验项目报告批准" name="lab">
<reportMake ref="labTabs" />
</el-tab-pane>
<el-tab-pane label="试验项目报告批准历史" name="his">
<historyTask ref="hisTabs" />
</el-tab-pane>
</el-tabs>
</div>
</div>
</div>
</template>
<script>
import reportMake from './tabs/ExpReportIssue'
import historyTask from './tabs/ExpReportIssueHis'
export default {
components: { reportMake, historyTask },
data() {
return {
activeName: 'lab'
}
},
mounted() {
this.activeName = 'lab'
this._page()
},
methods: {
_changeTabs(tab, event) {
if (tab.name === 'lab') {
this._page()
} else {
this.$refs.hisTabs._clearPage()
this.$refs.hisTabs._page()
}
},
_page() {
this.$refs.labTabs._clearPage()
this.$refs.labTabs._page()
}
}
}
</script>
<template>
<div>
<Modal v-model="showModal" v-drag width="1050" 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.expName" name="expName" placeholder="请输入项目名称" style="width: 200px"
clearable @on-enter="_search"/>
</Form-item>
<Form-item class="search-btn">
<Button type="primary" @click="_search">搜索</Button>
</Form-item>
</Form>
</Col>
<Col span="24">
<btn-list :msg="btn" :open="searchOpen" show-search-btn="true" @on-result-change="_btnClick" />
</Col>
<!-- 表格 -->
<Col span="24">
<PTVXETable ref="pageTable" :table-height="tableHeight"
:get-page="getPage" :icon-msg="iconMsg" show-check-box @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">
<template slot-scope="scope">
<span v-if="item.key==='status'">
{{scope.row[item.key].display}}
</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, soilReport, soilStatistics } from '../../../api'
import Global from '../../../api/config'
export default {
data() {
return {
showModal: false,
getPage: {},
searchOpen: false,
selectIds: [],
pageColumns: [
{ title: '项目名称', key: 'expName' },
{ title: '检测科室', key: 'groupName' },
{ title: '状态', key: 'status' },
{ title: '备注', key: 'remark' },
{ title: '创建人', key: 'uname' },
{ title: '创建时间', key: 'ctime', dateTime: true }
],
btn: [{ id: '', type: 'primary', name: '通过' }],
iconMsg: [
{
type: 'ios-book',
id: '',
name: '查看项目报告'
}
],
formObj: {
entrustId: undefined,
expName: undefined,
groupId: undefined
}
}
},
computed: {
tableHeight: function() {
return this.$tableHeight('tableModal')
}
},
methods: {
_open(data) {
this.showModal = true
this.formObj.entrustId = data.id
this.formObj.groupId = data.groupId
this._page()
},
_btnClick(msg, data) {
switch (msg) {
case '通过':
this._submitExpReportIssue()
break
case 'search':
this.searchOpen = !this.searchOpen
break
}
},
_iconClick(res, data) {
this.$nextTick(() => {
switch (res) {
case '查看项目报告':
this._reportView(data)
// this._recordView(data.originalRecordId)
break
case '查看试验项目':
this._itemView(data.id)
break
case '删除':
this._deleteByIds([data.id])
break
}
})
},
_reportView(data) {
if (data.objectKey) {
this._reportMakeLook(data)
} else {
this._recordView(data.originalRecordId)
}
},
_reportMakeLook: async function(data) {
console.log(data)
const result = await soilReport.expReportGetById(data.id)
if (result) {
console.log('result')
this._viewReport(result)
}
},
_viewReport(data) {
if (data) {
this.$openWindowModeless({
objectKey: data.objectKey,
idType: 13,
id: data.id,
isReport: 4
})
}
},
// 查看原始记录
_recordView(originalRecordId) {
let recordUrl = ''
if (process.env.NODE_ENV === 'production') {
recordUrl = 'http://record.patzn.com'
} else {
recordUrl = Global.recordURL
}
// eslint-disable-next-line no-undef
layx.iframe(
'labRecordWriteOriView',
'原始记录预览',
recordUrl + '/print/v1/form/' + originalRecordId + '?type=ENVTESTMAKE',
{
event: {
onload: {
after: function(layxWindow, winform) {
// eslint-disable-next-line no-undef
layx.max(winform.id)
}
}
}
}
)
},
_submitExpReportIssue() {
const ids = this.selectIds
if (ids.length === 0) {
this.$Message.warning('请至少选择一条数据!')
} else {
this._submitExpReportIssueConfirm(
ids,
`确认要提交 ${ids.length} 条数据吗?`
)
}
},
_submitExpReportIssueConfirm(ids, content) {
this.$Modal.confirm({
title: '提示',
content: content || `确定要处理该条数据吗?`,
onOk: () => {
this.__submitExpReportIssueOk(ids)
}
})
},
async __submitExpReportIssueOk(ids) {
const result = await soilStatistics.expReportIssueSubmit(ids)
if (result) {
this._resultChange('提交成功!')
}
},
_resultChange(msg) {
this.$Message.success(msg)
this._page()
this.$emit('on-result-change')
},
_page: async function() {
Object.assign(this.formObj, this.$refs.pageTable._searchParams())
const result = await meterEntrust.pageGroupExpReportIssue(this.formObj)
console.log(result)
if (result) {
this.getPage = result
this.$refs.pageTable._hideLoading()
}
},
_tableResultChange(msg, data) {
switch (msg) {
case 'changeSize':
this._page()
break
case 'selectIds':
this.selectIds = data
break
case 'iconClick':
this._iconClick(data.name, data.rowData)
break
}
},
_search() {
this._page()
}
}
}
</script>
<template>
<div>
<div class="layout-content-padding">
<div class="layout-content-main">
<el-tabs v-model="activeName" @tab-click="_changeTabs">
<el-tab-pane label="试验项目报告编制" name="lab">
<reportMake ref="labTabs" />
</el-tab-pane>
<el-tab-pane label="试验项目报告编制历史" name="his">
<historyTask ref="hisTabs" />
</el-tab-pane>
</el-tabs>
</div>
</div>
</div>
</template>
<script>
import reportMake from './tabs/ExpReportMake'
import historyTask from './tabs/ExpReportMakeHis'
export default {
components: { reportMake, historyTask },
data() {
return {
activeName: 'lab'
}
},
mounted() {
this.activeName = 'lab'
this._page()
},
methods: {
_changeTabs(tab, event) {
if (tab.name === 'lab') {
this._page()
} else {
this.$refs.hisTabs._clearPage()
this.$refs.hisTabs._page()
}
},
_page() {
this.$refs.labTabs._clearPage()
this.$refs.labTabs._page()
}
}
}
</script>
<template>
<div>
<Modal v-model="showModal" v-drag width="1050" 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.expName" name="expName" placeholder="请输入项目名称" style="width: 200px"
clearable @on-enter="_search"/>
</Form-item>
<Form-item class="search-btn">
<Button type="primary" @click="_search">搜索</Button>
</Form-item>
</Form>
</Col>
<Col span="24">
<btn-list :msg="btn" :open="searchOpen" show-search-btn="true" @on-result-change="_btnClick" />
</Col>
<!-- 表格 -->
<Col span="24">
<PTVXETable ref="pageTable" :table-height="tableHeight"
:get-page="getPage" show-check-box @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">
<template slot-scope="scope">
<span v-if="item.key==='status'">
{{scope.row[item.key].display}}
</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, soilStatistics } from '../../../api'
export default {
data() {
return {
showModal: false,
getPage: {},
searchOpen: false,
selectIds: [],
pageColumns: [
{ title: '项目名称', key: 'expName' },
{ title: '检测科室', key: 'groupName' },
{ title: '状态', key: 'status' },
{ title: '备注', key: 'remark' },
{ title: '创建人', key: 'uname' },
{ title: '创建时间', key: 'ctime', dateTime: true }
],
btn: [{ id: '', type: 'primary', name: '提交至审核' }],
formObj: {
entrustId: undefined,
expName: undefined,
groupId: undefined
}
}
},
computed: {
tableHeight: function() {
return this.$tableHeight('tableModal')
}
},
methods: {
_open(data) {
this.showModal = true
this.formObj.entrustId = data.id
this.formObj.groupId = data.groupId
this._page()
},
_btnClick(msg, data) {
switch (msg) {
case '提交至审核':
this._submitExpReportMake()
break
case 'search':
this.searchOpen = !this.searchOpen
break
}
},
_submitExpReportMake() {
const ids = this.selectIds
if (ids.length === 0) {
this.$Message.warning('请至少选择一条数据!')
} else {
this._submitExpReportMakeConfirm(
ids,
`确认要提交 ${ids.length} 条数据吗?`
)
}
},
_submitExpReportMakeConfirm(ids, content) {
this.$Modal.confirm({
title: '提示',
content: content || `确定要处理该条数据吗?`,
onOk: () => {
this._submitExpReportMakeOk(ids)
}
})
},
async _submitExpReportMakeOk(ids) {
const result = await soilStatistics.expReportCheckApprove(ids)
if (result) {
this._resultChange('提交成功!')
}
},
_resultChange(msg) {
this.$Message.success(msg)
this._page()
this.$emit('on-result-change')
},
_page: async function() {
Object.assign(this.formObj, this.$refs.pageTable._searchParams())
const result = await meterEntrust.pageGroupExpReportMake(this.formObj)
console.log(result)
if (result) {
this.getPage = result
this.$refs.pageTable._hideLoading()
}
},
_tableResultChange(msg, data) {
switch (msg) {
case 'changeSize':
this._page()
break
case 'selectIds':
this.selectIds = data
break
}
},
_search() {
this._page()
}
}
}
</script>
...@@ -350,7 +350,7 @@ export default { ...@@ -350,7 +350,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())
const result = await soilTest.expReportPage( const result = await soilTest.pageExpReportEnd(
this.$serializeForm(this.formObj) this.$serializeForm(this.formObj)
) )
if (result) { if (result) {
......
...@@ -13,6 +13,14 @@ ...@@ -13,6 +13,14 @@
<Input v-model="formObj.alias" @on-enter="_formSearch" name="alias" placeholder="请输入模板名称" clearable></Input> <Input v-model="formObj.alias" @on-enter="_formSearch" name="alias" placeholder="请输入模板名称" clearable></Input>
<input type="hidden" name="classifyId"> <input type="hidden" name="classifyId">
</Form-item> </Form-item>
<Form-item label="类别" prop="classType">
<!-- <Input v-model="formObj.classType" @on-keyup="_onKeyUp" name="classType" placeholder="请选择类别" icon="plus-circled"-->
<!-- ></Input>-->
<el-select v-model="formObj.classType" placeholder="请选择类别" size="small" clearable>
<el-option :label="item.value" :value="item.value" v-for="(item,index) in typeList"
:key="index"></el-option>
</el-select>
</Form-item>
<Form-item class="search-btn"> <Form-item class="search-btn">
<Button @click="_formSearch" type="primary">搜索</Button> <Button @click="_formSearch" type="primary">搜索</Button>
</Form-item> </Form-item>
...@@ -65,7 +73,8 @@ export default { ...@@ -65,7 +73,8 @@ export default {
{ title: '备注', key: 'remark' } { title: '备注', key: 'remark' }
], ],
formObj: { formObj: {
name: undefined name: undefined,
classType: undefined
}, },
iconMsg: [ iconMsg: [
{ type: 'md-create', id: '', name: '编辑' }, { type: 'md-create', id: '', name: '编辑' },
...@@ -79,6 +88,14 @@ export default { ...@@ -79,6 +88,14 @@ export default {
{ type: 'success', id: '', name: '添加' }, { type: 'success', id: '', name: '添加' },
{ type: 'error', id: '', name: '删除' } { type: 'error', id: '', name: '删除' }
], ],
typeList: [
{
value: '力学'
},
{
value: '物性'
}
],
searchOpen: true, searchOpen: true,
selectIds: [] selectIds: []
} }
......
...@@ -112,15 +112,17 @@ ...@@ -112,15 +112,17 @@
<!--下载插件--> <!--下载插件-->
<downloadPlugin ref="downloadPlugin" /> <downloadPlugin ref="downloadPlugin" />
<SampleParpareBatchEdit ref="batchEdit" @on-result-change="backData"></SampleParpareBatchEdit> <SampleParpareBatchEdit ref="batchEdit" @on-result-change="backData"></SampleParpareBatchEdit>
<SelectPrinter ref="selectPrint" @on-result-change="_printResult"></SelectPrinter>
</div> </div>
</template> </template>
<script> <script>
import AutoComplete from '../../../components/base/AutoCompletes' import AutoComplete from '../../../components/base/AutoCompletes'
import { soilEntrust, soilSample } from '../../../api' import { soilEntrust, soilSample, soilStatistics } from '../../../api'
import { getLodop } from '../../../plugins/clodop/LodopFuncs' import { getLodop } from '../../../plugins/clodop/LodopFuncs'
// eslint-disable-next-line no-unused-vars
import downloadPlugin from '../../../plugins/download/downloadPlugin' import downloadPlugin from '../../../plugins/download/downloadPlugin'
import SelectPrinter from './SelectPrinter'
// eslint-disable-next-line no-unused-vars
import SampleParpareBatchEdit from './SampleParpareBatchEdit' import SampleParpareBatchEdit from './SampleParpareBatchEdit'
let LODOP let LODOP
...@@ -128,7 +130,8 @@ export default { ...@@ -128,7 +130,8 @@ export default {
components: { components: {
AutoComplete, AutoComplete,
downloadPlugin, downloadPlugin,
SampleParpareBatchEdit SampleParpareBatchEdit,
SelectPrinter
}, },
data() { data() {
return { return {
...@@ -154,6 +157,7 @@ export default { ...@@ -154,6 +157,7 @@ export default {
getPage: { getPage: {
records: [] records: []
}, },
labelCode: {},
currentIndex: -1, currentIndex: -1,
selectData: [], selectData: [],
selectIds: [], selectIds: [],
...@@ -217,6 +221,14 @@ export default { ...@@ -217,6 +221,14 @@ export default {
this.$forceUpdate() this.$forceUpdate()
this.getPage.records[data.$rowIndex].printNum = data.row.printNum this.getPage.records[data.$rowIndex].printNum = data.row.printNum
}, },
_printResult(data) {
console.log(data)
if (data) {
console.log('data.printerVal')
this.printerVal = data.printerVal
this._getLabelInfo()
}
},
// 获取存储位置 // 获取存储位置
_locationChange(msg, data, handleObj) { _locationChange(msg, data, handleObj) {
this.currentRow = handleObj this.currentRow = handleObj
...@@ -441,11 +453,29 @@ export default { ...@@ -441,11 +453,29 @@ export default {
break break
} }
}, },
_getLabelInfo: async function() {
console.log('this._getLabelInfo')
const result = await soilStatistics._getLabel(
this.$serializeForm(this.formObj)
)
if (result) {
for (let i = 0; i < result.records.length; i++) {
if (result.records[i].type.display === '打印上机标签') {
this.labelCode = result.records[i].code
}
}
console.log(result)
}
this._printMessage()
},
_btnClick(msg) { _btnClick(msg) {
switch (msg) { switch (msg) {
case '打印标签': case '打印标签':
if (this.selectData.length > 0) { if (this.selectData.length > 0) {
this._printMessage() // this._goto()
this.$refs.selectPrint._open()
// this._getLabelInfo()
// this._printMessage()
} else { } else {
this.$Message.warning('请至少选择一条数据') this.$Message.warning('请至少选择一条数据')
} }
...@@ -458,6 +488,13 @@ export default { ...@@ -458,6 +488,13 @@ export default {
break break
} }
}, },
_goto(methodId) {
const routeData = this.$router.resolve({
path: '/blank/item_by_method',
query: { id: 123456 }
})
window.open(routeData.href, '_blank')
},
// 下载插件 // 下载插件
_pluginDownload() { _pluginDownload() {
this.$refs.downloadPlugin._open() this.$refs.downloadPlugin._open()
...@@ -475,39 +512,76 @@ export default { ...@@ -475,39 +512,76 @@ export default {
const data = this.selectData const data = this.selectData
for (let i = 0; i < data.length; i++) { for (let i = 0; i < data.length; i++) {
for (let j = 0; j < data[i].printNum; j++) { for (let j = 0; j < data[i].printNum; j++) {
LODOP.PRINT_INITA( this._printLabelOk(data[i])
'0mm', // LODOP.PRINT_INITA(
'0mm', // '0mm',
'60.01mm', // '0mm',
'40.01mm', // '60.01mm',
'打印控件功能演示_Lodop功能_打印图片3' // '40.01mm',
) // '打印控件功能演示_Lodop功能_打印图片3'
LODOP.ADD_PRINT_BARCODE( // )
'0.08mm', // LODOP.ADD_PRINT_BARCODE(
'18.39mm', // '0.08mm',
'58.87mm', // '18.39mm',
'24.74mm', // '58.87mm',
'QRCode', // '24.74mm',
data[i].sampleCode + '-' + data[i].groupId // 'QRCode',
) // data[i].sampleCode + '-' + data[i].groupId
LODOP.ADD_PRINT_TEXT( // )
130, // LODOP.ADD_PRINT_TEXT(
13, // 130,
186, // 13,
20, // 186,
this._formatDate(data[i].prepareDate) // 20,
) // this._formatDate(data[i].prepareDate)
LODOP.SET_PRINT_STYLEA(0, 'Alignment', 2) // )
LODOP.ADD_PRINT_TEXT(113, 13, 187, 20, data[i].groupName) // LODOP.SET_PRINT_STYLEA(0, 'Alignment', 2)
LODOP.SET_PRINT_STYLEA(0, 'Alignment', 2) // LODOP.ADD_PRINT_TEXT(113, 13, 187, 20, data[i].groupName)
LODOP.ADD_PRINT_TEXT(95, 12, 188, 20, data[i].sampleCode) // LODOP.SET_PRINT_STYLEA(0, 'Alignment', 2)
LODOP.SET_PRINT_STYLEA(0, 'Alignment', 2) // LODOP.ADD_PRINT_TEXT(95, 12, 188, 20, data[i].sampleCode)
// LODOP.SET_PRINT_STYLEA(0, 'Alignment', 2)
// LODOP.PRINT_DESIGN() //
LODOP.PRINT() // // LODOP.PRINT_DESIGN()
// LODOP.PRINT()
} }
} }
}, },
_printLabelOk(row) {
LODOP.PRINT_INITA('') // 必须在设置打印机之前
// 返回的标签代码
// eslint-disable-next-line no-eval
eval(this._replaceCodes(row))
// 设置打印机
LODOP.SET_PRINTER_INDEX(this.printerVal)
// 打开设计模式
// LODOP.PRINT_DESIGN()
LODOP.PRINT()
},
_replaceCodes(row) {
// /g表示全局替换
let result = this.labelCode
result = result.replace(
/\$sampleCode\$/g,
undefined !== row.sampleCode ? row.sampleCode : ''
)
result = result.replace(/\$num\$/g, undefined !== row.num ? row.num : '')
result = result.replace(/\$resultDateTemp\$/g, row.resultDateTemp)
result = result.replace(
/\$groupName\$/g,
undefined !== row.groupName ? row.groupName : ''
)
// 检测项目
result = result.replace(
/\$items\$/g,
undefined !== row.specialItems ? row.specialItems : ''
)
// 二维码地址
result = result.replace(
/\$qrCode\$/g,
undefined !== row.qrCode ? row.qrCode : ''
)
return result
},
// 时间戳转换方法 date:时间戳数字 // 时间戳转换方法 date:时间戳数字
_formatDate(time) { _formatDate(time) {
const date = new Date(time) const date = new Date(time)
......
<template>
<div>
<Modal v-model="showModal" :mask-closable="false" class="zIndex-1100">
<p slot="header">{{modalTitle}}</p>
<div>
<Alert v-show="isPrinterDownload" type="error"><p @click="_download">未安装打印控件,点此<a>下载</a>,安装完请刷新页面</p></Alert>
<div v-show="!isPrinterDownload">
<Form ref="formObj" :rules="ruleValidate" :label-width="70" onsubmit="return false">
<Form-item label="打印机" prop="printerVal">
<Select v-model="printerVal" @on-change="_printChange" name="printerVal" placeholder="请选择打印机">
<Option v-for="item in printList" :value="item.value" :key="item.value">{{item.name}}</Option>
</Select>
</Form-item>
</Form>
</div>
</div>
<div slot="footer" class="btn-width">
<modal-footer ref="footerModal" @on-result-change="_footerResult" :footer="footerList"></modal-footer>
</div>
</Modal>
</div>
</template>
<script>
/**
* 选择打印机
*/
import global from '../../../api/config'
import { getLodop } from '../../../plugins/clodop/LodopFuncs'
let LODOP
export default {
components: {},
data() {
const validatePrinter = (rule, value, callback) => {
if (this.printerVal !== null) {
callback()
} else {
callback(new Error('请选择打印机~'))
}
}
return {
modalTitle: '选择打印机',
showModal: false,
ruleValidate: {
printerVal: [
{ required: true, validator: validatePrinter, trigger: 'change' }
]
},
placeholder: '',
footerList: [
{ id: '', name: '取消', type: '' },
{ id: '', name: '确定', type: 'primary' }
],
printList: [],
printerVal: null,
type: '',
isPrinterDownload: false
}
},
methods: {
// 获取打印机对象
_setPrinter() {
// 首先判断是否获取到打印机对象
if (undefined === LODOP || LODOP === 'undefined') {
LODOP = getLodop()
}
// 其次判断是否安装打印机控件
if (undefined === LODOP || LODOP === 'undefined') {
this.isPrinterDownload = true
return false
}
if (LODOP.GET_PRINTER_COUNT() === 0) {
this.$Message.warning('系统未关联打印机,请确认....')
return false
}
this._createPrinterList()
},
// 获取打印机列表
_createPrinterList() {
LODOP = getLodop()
const iPrinterCount = LODOP.GET_PRINTER_COUNT()
const printList = []
for (let i = 0; i < iPrinterCount; i++) {
printList.push({ name: LODOP.GET_PRINTER_NAME(i), value: i })
}
console.log(printList)
this.printList = printList
if (this.printList.length) {
// 默认第一个打印机
this.printerVal = this.printList[0].value
}
},
_open(type) {
this.showModal = true
this.isPrinterDownload = false
this.type = type // 打印标签还是自定义打印
this._setPrinter()
this._createPrinterList()
},
_printChange(data) {
this.printerVal = data
},
_footerResult(name) {
switch (name) {
case '取消':
this._cancel()
break
case '确定':
this._ok()
break
}
this.$refs.footerModal._hideLoading()
},
_cancel() {
this.showModal = false
},
_ok() {
this.$refs.formObj.validate(valid => {
if (valid) {
this.$emit('on-result-change', {
printerVal: this.printerVal,
type: this.type
})
this.showModal = false
} else {
this.$Message.error('表单验证失败!')
}
})
},
// 下载打印机
_download() {
window.open(
global.staticURL + '/clodop/CLodop_Setup_for_Win32NT.exe',
'_blank'
)
}
}
}
</script>
...@@ -8,31 +8,21 @@ ...@@ -8,31 +8,21 @@
<div class="fl"> <div class="fl">
<Form id="search-form" :label-width="70" inline onsubmit="return false"> <Form id="search-form" :label-width="70" inline onsubmit="return false">
<label class="label-sign"></label> <label class="label-sign"></label>
<!-- <Form-item class="search-item" label="人员:">-->
<!-- <AutoCompletes :value="tester" :blur="true" :down-data="testerData" show-key="realname"-->
<!-- placeholder="请选择人员" @on-result-change="_testerChange"-->
<!-- ></AutoCompletes>-->
<!-- </Form-item>-->
<!-- <Form-item class="search-item" label="服务类型:">-->
<!-- <Select v-model="serviceType" placeholder="请选择服务类型" clearable>-->
<!-- <Option v-for="item in serviceTypeList" :value="item.name" :key="item.name">{{ item.name }}</Option>-->
<!-- </Select>-->
<!-- </Form-item>-->
<Form-item label="委托日期:"> <Form-item label="委托日期:">
<el-date-picker <el-date-picker
v-model="queryDate" v-model="queryDate"
@change="_dateChange"
type="monthrange" type="monthrange"
range-separator="-" range-separator="-"
start-placeholder="开始月份" start-placeholder="开始月份"
end-placeholder="结束月份" end-placeholder="结束月份"
size="small" size="small"
value-format="yyyy-MM" value-format="yyyy-MM"
@change="_dateChange"
> >
</el-date-picker> </el-date-picker>
</Form-item> </Form-item>
<Form-item class="search-btn"> <Form-item class="search-btn">
<Button @click="_getData" type="primary" class="width-80"> <Button type="primary" class="width-80" @click="_getData">
搜索 搜索
</Button> </Button>
</Form-item> </Form-item>
...@@ -43,14 +33,14 @@ ...@@ -43,14 +33,14 @@
<!--内容--> <!--内容-->
<Col span="24"> <Col span="24">
<Row :gutter="16"> <Row :gutter="16">
<Col span="14"> <Col span="13">
<element-table <element-table
id="table-year" id="table-year"
ref="pageTable" ref="pageTable"
:table-height="tableHeight" :table-height="tableHeight"
:get-page="getPage" :get-page="getPage"
@on-result-change="_tableResultChange"
hide-checkbox hide-checkbox
@on-result-change="_tableResultChange"
> >
<el-table-column fixed type="index" label="序号" width="100"> <el-table-column fixed type="index" label="序号" width="100">
</el-table-column> </el-table-column>
...@@ -72,7 +62,7 @@ ...@@ -72,7 +62,7 @@
</el-table-column> </el-table-column>
</element-table> </element-table>
</Col> </Col>
<Col span="10"> <Col span="11">
<!--pie--> <!--pie-->
<UserTestPie ref="testPieModal"></UserTestPie> <UserTestPie ref="testPieModal"></UserTestPie>
</Col> </Col>
...@@ -109,47 +99,14 @@ export default { ...@@ -109,47 +99,14 @@ export default {
tester: '', tester: '',
testerId: '', testerId: '',
pageColumns: [ pageColumns: [
{ title: '姓名', key: 'tester', detail: true }, { title: '检测人员', key: 'tester', detail: true, width: 140 },
{ title: '样品量', key: 'total' }, { title: '项目总量', key: 'total', width: 100 },
{ title: '样品占比(%)', key: 'ratio' } { title: '未完成总量', key: 'doingTotal', width: 110 },
{ title: '已完成总量', key: 'endTotal', width: 110 },
{ title: '样品占比(%)', key: 'ratio', width: 120 }
], ],
groupData: [], groupData: [],
// getPage: [ getPage: {},
// {
// tester: 'wwd',
// total: '12',
// ratio: '10%',
// price: '3500'
// },
// {
// tester: 'wwd',
// total: '12',
// ratio: '10%',
// price: '3500'
// },
// {
// tester: 'wwd',
// total: '12',
// ratio: '10%',
// price: '3500'
// }
// ],
getPage: {
records: [
{
tester: '李承明',
total: '12',
ratio: '10%',
price: '3500'
},
{
tester: '李成明',
total: '12',
ratio: '10%',
price: '3500'
}
]
},
tempData: { tempData: {
groupId: '', groupId: '',
groupName: '', groupName: '',
...@@ -180,8 +137,7 @@ export default { ...@@ -180,8 +137,7 @@ export default {
const lastday = this.mGetDate(arr[0], arr[1]).getTime() - 1 const lastday = this.mGetDate(arr[0], arr[1]).getTime() - 1
this.formObj.edateBegin = this.tempData.beginDate this.formObj.edateBegin = this.tempData.beginDate
this.formObj.edateEnd = this.$dateformat(lastday, 'yyyy-mm-dd HH:MM:ss') this.formObj.edateEnd = this.$dateformat(lastday, 'yyyy-mm-dd HH:MM:ss')
// this._getData() this._getData()
// this._getServiceTypeList()
}, },
methods: { methods: {
mGetDate(year, month) { mGetDate(year, month) {
...@@ -194,7 +150,7 @@ export default { ...@@ -194,7 +150,7 @@ export default {
this.formObj this.formObj
) )
if (result) { if (result) {
this.getPage.records = result this.getPage = result
this.$refs.testPieModal._openPie(this.getPage.records) this.$refs.testPieModal._openPie(this.getPage.records)
} }
}, },
......
...@@ -44,7 +44,7 @@ export default { ...@@ -44,7 +44,7 @@ export default {
formatter: function(a) { formatter: function(a) {
return ( return (
a.name + a.name +
'</br>样品量: ' + '</br>项目量: ' +
a.data.value + a.data.value +
'<br>占比: ' + '<br>占比: ' +
a.percent + a.percent +
...@@ -58,7 +58,7 @@ export default { ...@@ -58,7 +58,7 @@ export default {
right: 0, right: 0,
top: 20, top: 20,
bottom: 20, bottom: 20,
data: ['直接访问', '邮件营销', '联盟广告', '视频广告', '搜索引擎'] data: []
}, },
color: this.$echartColor, color: this.$echartColor,
series: [ series: [
...@@ -81,13 +81,7 @@ export default { ...@@ -81,13 +81,7 @@ export default {
labelLine: { labelLine: {
show: false show: false
}, },
data: [ data: []
{ value: 335, name: '直接访问' },
{ value: 310, name: '邮件营销' },
{ value: 234, name: '联盟广告' },
{ value: 135, name: '视频广告' },
{ value: 1548, name: '搜索引擎' }
]
} }
] ]
}, },
......
...@@ -172,8 +172,6 @@ export default { ...@@ -172,8 +172,6 @@ export default {
_reportMakeLook: async function(data) { _reportMakeLook: async function(data) {
console.log(data) console.log(data)
const result = await soilReport.expReportGetById(data.id) const result = await soilReport.expReportGetById(data.id)
// this._viewReport(data)
// const result = await soilReport.getExcelOriginalRecord(data.id)
if (result) { if (result) {
console.log('result') console.log('result')
this._viewReport(result) this._viewReport(result)
......
<template>
<div>
<Modal v-model="showBatchModal" v-drag width="900">
<p slot="header">
生成项目报告
</p>
<div>
<!--内容-->
<div class="layout-content-padding">
<div class="layout-content-main">
<Row>
<!--样品信息-->
<!--报告模板-->
<Col span="24">
<ItemReportTemplate ref="reportTemplate" @on-result-change="_templateResultChange"></ItemReportTemplate>
</Col>
</Row>
</div>
</div>
</div>
<div slot="footer">
<modal-footer ref="footerModal" :footer="footerBtn" @on-result-change="_footerResult"></modal-footer>
</div>
</Modal>
<!--生成报告的进度条-->
</div>
</template>
<script>
import ItemReportTemplate from './ItemReportTemplate'
/**
* 样品列表--生成报告或者选择模板生成报告
*/
export default {
components: {
ItemReportTemplate
},
data() {
return {
selectIds: [],
getPage: {
records: []
},
showBatchModal: false,
isLoading: false,
footerBtn: [
{ type: '', id: '', name: '取消' },
{ type: 'primary', id: '', name: '确定' }
],
pageColumns: [
{ title: '样品名称', key: 'name', width: 160 },
{ title: '样品编号', key: 'code', width: 150 },
{ title: '证书编号', key: 'certificate', width: 150 }
],
reportModelId: '',
backData: {},
// 样品数据
tableData: [],
// 签发日期
issueDateTemp: '',
issueDate: '',
showIssueModal: false
}
},
methods: {
_open() {
this.getPage.records = []
this.backData = {}
this.showBatchModal = true
this._reportTemplate()
this.reportModelId = ''
this.isLoading = false
},
// 报告模板
_reportTemplate() {
this.$refs.reportTemplate._open()
},
_footerResult(name) {
switch (name) {
case '确定':
this._ok()
break
case '取消':
this.showBatchModal = false
break
}
},
_templateResultChange(selectData) {
this.backData = selectData[0]
},
_issueChange(data) {
if (data) {
this.issueDate = data
}
},
_hideLoading() {
this.$refs.footerModal._hideLoading()
},
_ok() {
this.$refs.footerModal._hideLoading()
if (!this.backData.name) {
this.$Message.warning('请选择一个原始记录模板!')
// this._hideLoading()
} else {
this.$emit('on-result-change', this.backData)
this.showBatchModal = false
}
},
_issueCancel() {
this.showIssueModal = false
},
// 选择时间ok
_issueOk() {
this.isLoading = true
this.showIssueModal = false
this._createOk()
},
// 生成报告
_createOk() {
const obj = []
for (let i = 0; i < this.tableData.length; i++) {
obj.push({
sampleId: this.tableData[i].id,
reportSn: this.tableData[i].reportSn,
issueDate: this.issueDate
})
}
this.$layxLoading(true, '数据验证中')
const validateObj = {
sampleReports: obj,
reportModelId: this.reportModelId
}
// 先进行验证
this.$store
.dispatch('FoodSampleReport/createReportValidate', validateObj)
.then(() => {
if (this.$store.state.FoodSampleReport.success) {
// 验证成功之后再建立连接,然后进行生成报告操作
// 建立websocket连接
const currentTime = new Date().getTime()
this.$refs.progressModal._open(this.tableData.length, currentTime)
validateObj.seriesNo = currentTime
console.log('生成报告的当前序列号,', validateObj.seriesNo)
this.$store
.dispatch('FoodSampleReport/createReport', validateObj)
.then(() => {})
}
this._hideLoading()
this.isLoading = false
this.$layxLoading(false)
})
},
_closeResult() {
this.showBatchModal = false
this.$emit('on-result-change')
}
}
}
</script>
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
</Form> </Form>
</Col> </Col>
<Col span="24"> <Col span="24">
<btn-list @on-result-change="_btnClick" class="contHide" style="margin-bottom: 6px;"></btn-list> <btn-list @on-result-change="_btnClick" :msg="btn" class="contHide" style="margin-bottom: 6px;"></btn-list>
</Col> </Col>
<!-- 表格 --> <!-- 表格 -->
<Col span="24"> <Col span="24">
...@@ -41,13 +41,15 @@ ...@@ -41,13 +41,15 @@
</Col> </Col>
</Row> </Row>
<CreateItemReport ref="createModal" @on-result-change="_certificateSelectExcelBack"></CreateItemReport> <CreateItemReport ref="createModal" @on-result-change="_certificateSelectExcelBack"></CreateItemReport>
<CreateBatchItemReport ref="createBatchModal" @on-result-change="_templateBack"></CreateBatchItemReport>
</div> </div>
</template> </template>
<script> <script>
import { soilSample, soilTest } from '../../../../api' import { soilSample, soilTest } from '../../../../api'
import CreateItemReport from './CreateItemReport' import CreateItemReport from './CreateItemReport'
import CreateBatchItemReport from './CreateBatchItemReport'
export default { export default {
components: { CreateItemReport }, components: { CreateItemReport, CreateBatchItemReport },
data() { data() {
return { return {
currentComponent: '', currentComponent: '',
...@@ -58,7 +60,14 @@ export default { ...@@ -58,7 +60,14 @@ export default {
name: undefined, name: undefined,
entrustId: undefined entrustId: undefined
}, },
formObjBatchSample: {
obj: {
entrustId: '',
nameList: []
}
},
sampleIds: [], sampleIds: [],
batchSampleIds: [],
itemName: '', itemName: '',
tableName: 'food-task-assign-item-left', tableName: 'food-task-assign-item-left',
// 用户自己选中的列 // 用户自己选中的列
...@@ -70,6 +79,13 @@ export default { ...@@ -70,6 +79,13 @@ export default {
], ],
getPage: {}, getPage: {},
iconMsg: [{ type: 'ios-book', id: '', name: '生成项目报告' }], iconMsg: [{ type: 'ios-book', id: '', name: '生成项目报告' }],
btn: [
{
type: 'success',
id: '',
name: '生成项目报告'
}
],
id: '', id: '',
selectId: '', selectId: '',
pageColumns: [{ title: '检测项目', key: 'name', width: 120 }] pageColumns: [{ title: '检测项目', key: 'name', width: 120 }]
...@@ -150,6 +166,10 @@ export default { ...@@ -150,6 +166,10 @@ export default {
}, },
_btnClick(msg) { _btnClick(msg) {
switch (msg) { switch (msg) {
case '生成项目报告':
// this.$emit('on-result-change', data)
this._itemReportMakeBatch()
break
case '自动分配': case '自动分配':
this._autoAssign() this._autoAssign()
break break
...@@ -165,12 +185,43 @@ export default { ...@@ -165,12 +185,43 @@ export default {
} }
}) })
}, },
_itemReportMakeBatch() {
if (this.selectDataName.length > 0) {
// this.itemName = data.name
this._searchBatchSampleId(this.id, this.selectDataName)
// this.selectId = data.id
this.$refs.createBatchModal._open()
} else {
this.$Message.warning('请至少选择一条数据')
}
},
_itemReportMake(data) { _itemReportMake(data) {
this.itemName = data.name this.itemName = data.name
this._searchSampleId(this.id, data.name) this._searchSampleId(this.id, data.name)
// this.selectId = data.id // this.selectId = data.id
this.$refs.createModal._open() this.$refs.createModal._open()
}, },
_searchBatchSampleId: async function(id, name) {
Object.assign(
this.formObjBatchSample,
this.$refs.pageTable._searchParams()
)
this.formObjBatchSample.obj.entrustId = id
this.formObjBatchSample.obj.nameList = name
const result = await soilTest.pageExperimentTestBath(
this.$serializeForm(this.formObjBatchSample)
)
if (result) {
this.batchSampleIds = []
for (let i = 0; i < result.records.length; i++) {
this.batchSampleIds.push(result.records[i].id)
}
console.log('右侧样品id', this.batchSampleIds)
this.$refs.pageTable._hideLoading()
} else {
this.$refs.pageTable._hideLoading()
}
},
_searchSampleId: async function(id, name) { _searchSampleId: async function(id, name) {
Object.assign(this.formObjSample, this.$refs.pageTable._searchParams()) Object.assign(this.formObjSample, this.$refs.pageTable._searchParams())
this.formObjSample.entrustId = id this.formObjSample.entrustId = id
...@@ -188,6 +239,14 @@ export default { ...@@ -188,6 +239,14 @@ export default {
console.log('右侧样品id', this.sampleIds) console.log('右侧样品id', this.sampleIds)
} }
}, },
_templateBack(data) {
if (data) {
this.$refs.pageTable._showLoading()
this._makeBatchCodeExcel(data)
} else {
this.$refs.pageTable._hideLoading()
}
},
_certificateSelectExcelBack(data) { _certificateSelectExcelBack(data) {
if (data) { if (data) {
this.$refs.pageTable._showLoading() this.$refs.pageTable._showLoading()
...@@ -196,6 +255,27 @@ export default { ...@@ -196,6 +255,27 @@ export default {
this.$refs.pageTable._hideLoading() this.$refs.pageTable._hideLoading()
} }
}, },
_makeBatchCodeExcel: async function(data) {
const result = await soilSample.saveExcelExpReport({
entrustId: this.id,
expName: this.selectDataName.join(','),
ids: this.batchSampleIds.join(','),
templateId: data.id
})
if (result) {
// await this._page()
if (result === null || result === undefined) {
this.$Message.warning('证书编制失败,请联系管理员!')
this.$refs.pageTable._hideLoading()
return false
} else {
this.$refs.pageTable._hideLoading()
this._viewReport(result)
}
} else {
this.$refs.pageTable._hideLoading()
}
},
_makeCodeExcel: async function(data) { _makeCodeExcel: async function(data) {
const result = await soilSample.saveExcelExpReport({ const result = await soilSample.saveExcelExpReport({
entrustId: this.id, entrustId: this.id,
......
...@@ -58,6 +58,7 @@ ...@@ -58,6 +58,7 @@
<CreateReport ref="createModal" @on-result-change="_certificateSelectExcelBack"></CreateReport> <CreateReport ref="createModal" @on-result-change="_certificateSelectExcelBack"></CreateReport>
<Reason ref="reasonModal" @on-result-change="_reasonResult" /> <Reason ref="reasonModal" @on-result-change="_reasonResult" />
<Operation ref="Operation"></Operation> <Operation ref="Operation"></Operation>
<ViewGdsData ref="viewGds"></ViewGdsData>
</div> </div>
</template> </template>
<script> <script>
...@@ -73,6 +74,7 @@ import CollectManage from '../CollectManage' ...@@ -73,6 +74,7 @@ import CollectManage from '../CollectManage'
import CollectFileManage from '../CollectFileManage' import CollectFileManage from '../CollectFileManage'
import Reason from '../../../../components/base/Reason' import Reason from '../../../../components/base/Reason'
import Operation from '../../../../components/operation/ItemOperation' import Operation from '../../../../components/operation/ItemOperation'
import ViewGdsData from '../ViewGdsData'
import CreateReport from './CreateReport' import CreateReport from './CreateReport'
export default { export default {
components: { components: {
...@@ -86,7 +88,8 @@ export default { ...@@ -86,7 +88,8 @@ export default {
CollectFileManage, CollectFileManage,
Reason, Reason,
CreateReport, CreateReport,
Operation Operation,
ViewGdsData
}, },
data() { data() {
return { return {
...@@ -141,6 +144,7 @@ export default { ...@@ -141,6 +144,7 @@ export default {
], ],
iconMsg: [ iconMsg: [
{ type: 'ios-book', id: '', name: '查看原始记录' }, { type: 'ios-book', id: '', name: '查看原始记录' },
{ type: 'ios-list-box', id: '', name: '查看GDS数据' },
{ type: 'md-apps', id: '', name: '查看指标' }, { type: 'md-apps', id: '', name: '查看指标' },
{ type: 'ios-bookmarks', id: '', name: '查看采集数据' }, { type: 'ios-bookmarks', id: '', name: '查看采集数据' },
{ type: 'ios-browsers', id: '', name: '查看采集文件' }, { type: 'ios-browsers', id: '', name: '查看采集文件' },
...@@ -154,6 +158,7 @@ export default { ...@@ -154,6 +158,7 @@ export default {
getPage: {}, getPage: {},
pageColumns: [ pageColumns: [
{ title: '试验项目', key: 'name', width: 120, fixed: 'left' }, { title: '试验项目', key: 'name', width: 120, fixed: 'left' },
{ title: '缩写', key: 'shortName', width: 90 },
{ title: '试样编号', key: 'sampleCode', width: 150 }, { title: '试样编号', key: 'sampleCode', width: 150 },
{ title: '原始记录填写', key: 'recorded', width: 120 }, { title: '原始记录填写', key: 'recorded', width: 120 },
{ title: '试样深度', key: 'sampleDepth', width: 110 }, { title: '试样深度', key: 'sampleDepth', width: 110 },
...@@ -211,6 +216,9 @@ export default { ...@@ -211,6 +216,9 @@ export default {
// this.$Message.warning('未填写原始记录') // this.$Message.warning('未填写原始记录')
// } // }
break break
case '查看GDS数据':
this._viewGdsData(data.sampleCode)
break
case '查看指标': case '查看指标':
this._indexManage(data) this._indexManage(data)
break break
...@@ -232,6 +240,9 @@ export default { ...@@ -232,6 +240,9 @@ export default {
} }
}) })
}, },
_viewGdsData(id) {
this.$refs.viewGds._openEdit(id)
},
_operationRecord(id) { _operationRecord(id) {
this.$refs.Operation._open(id) this.$refs.Operation._open(id)
// 操作日志 // 操作日志
......
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
<Col span="24"> <Col span="24">
<PTVXETable ref="pageTable" :page-columns="pageColumns" :table-name="tableName" <PTVXETable ref="pageTable" :page-columns="pageColumns" :table-name="tableName"
:table-height="tableHeight" :table-height="tableHeight"
:get-page="getPage" :is-radio="true" select-data hide-checkbox @on-result-change="_tableResultChange"> :get-page="getPage" select-data @on-result-change="_tableResultChange">
<vxe-table-column <vxe-table-column
v-for="item in userColumns.length > 0 ?userColumns:pageColumns" v-for="item in userColumns.length > 0 ?userColumns:pageColumns"
:key="item.key" :key="item.key"
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
<Form id="task-assign-item-right" :label-width="70" inline onsubmit="return false"> <Form id="task-assign-item-right" :label-width="70" inline onsubmit="return false">
<label class="label-sign"></label> <label class="label-sign"></label>
<Form-item class="search-item" label="试样编号:"> <Form-item class="search-item" label="试样编号:">
<Input v-model="formObj.sampleCode" @on-enter="_formSearch" placeholder="请输入试样编号" clearable></Input> <Input v-model="formObj.obj.sampleCode" @on-enter="_formSearch" placeholder="请输入试样编号" clearable></Input>
</Form-item> </Form-item>
<Form-item class="search-btn"> <Form-item class="search-btn">
<Button @click="_formSearch" type="primary">搜索</Button> <Button @click="_formSearch" type="primary">搜索</Button>
...@@ -67,7 +67,11 @@ export default { ...@@ -67,7 +67,11 @@ export default {
name: '', name: '',
testMethod: '', testMethod: '',
testBasis: '', testBasis: '',
sampleCode: undefined obj: {
nameList: [],
entrustId: undefined,
sampleCode: undefined
}
}, },
entrustId: '', entrustId: '',
// 用户自己选中的列 // 用户自己选中的列
...@@ -355,17 +359,18 @@ export default { ...@@ -355,17 +359,18 @@ export default {
return obj return obj
}, },
_page: async function() { _page: async function() {
const saveName = this.leftSelectData.name const saveName = []
const saveMethod = this.leftSelectData.testMethod for (let i = 0; i < this.leftSelectData.length; i++) {
saveName.push(this.leftSelectData[i].name)
}
// for (let i = 0; i < this.leftSelectData.length; i++) { // for (let i = 0; i < this.leftSelectData.length; i++) {
// saveName.push(this.leftSelectData[i].name) // saveName.push(this.leftSelectData[i].name)
// saveMethod.push(this.leftSelectData[i].testMethod) // saveMethod.push(this.leftSelectData[i].testMethod)
// } // }
Object.assign(this.formObj, this.$refs.pageTable._searchParams()) Object.assign(this.formObj, this.$refs.pageTable._searchParams())
this.formObj.entrustId = this.entrustId this.formObj.obj.entrustId = this.entrustId
this.formObj.name = saveName this.formObj.obj.nameList = saveName
this.formObj.testMethod = saveMethod const result = await soilTest.pageExperimentAllotBath(
const result = await soilTest.pageExperimentAllot(
this.$serializeForm(this.formObj) this.$serializeForm(this.formObj)
) )
if (result) { if (result) {
......
...@@ -2,10 +2,10 @@ ...@@ -2,10 +2,10 @@
* 地址路由 * 地址路由
*/ */
import Lock from '../pages/Lock.vue' // 锁屏 import Lock from '../pages/Lock.vue' // 锁屏
import workbench from '../pages/soil-sample-manage/sample-preparation/PreparationOther'
import Index from '~/pages/index' import Index from '~/pages/index'
import Blank from '~/pages/blank' import Blank from '~/pages/blank'
import SoilRouters from '~/router/soil-routes' import SoilRouters from '~/router/soil-routes'
export default [ export default [
{ path: '/lock', name: 'Lock', component: Lock, meta: { allowBack: false } }, { path: '/lock', name: 'Lock', component: Lock, meta: { allowBack: false } },
{ {
...@@ -25,5 +25,9 @@ export default [ ...@@ -25,5 +25,9 @@ export default [
children: SoilRouters, children: SoilRouters,
meta: { title: '土工试验LIMS' } meta: { title: '土工试验LIMS' }
}, },
{
path: '/blank/item_by_method',
component: workbench
},
{ path: '*', redirect: '/' } { path: '*', redirect: '/' }
] ]
...@@ -45,6 +45,12 @@ import DataConsult from '../pages/soil-test-manage/test-data-consult/DataConsult ...@@ -45,6 +45,12 @@ import DataConsult from '../pages/soil-test-manage/test-data-consult/DataConsult
import SoilRecordTemplate from '../pages/soil-record-template-manage/SoilRecordTemplate' import SoilRecordTemplate from '../pages/soil-record-template-manage/SoilRecordTemplate'
import SoilItemReportTemplate from '../pages/soil-report-manage/soil-item-report-template/SoilItemReportTemplate' import SoilItemReportTemplate from '../pages/soil-report-manage/soil-item-report-template/SoilItemReportTemplate'
import SoilSummarySheet from '../pages/soil-report-manage/soil-summary-sheet/SoilSummarySheetTemplate' import SoilSummarySheet from '../pages/soil-report-manage/soil-summary-sheet/SoilSummarySheetTemplate'
import SoilExpReportMakeIndex from '../pages/soil-exp-report/report-make/SoilExpReportMakeIndex'
import SoilExpReportCheckIndex from '../pages/soil-exp-report/report-check/SoilExpReportCheckIndex'
import SoilExpReportIssueIndex from '../pages/soil-exp-report/report-issue/SoilExpReportIssueIndex'
import SoilExpReportEndIndex from '../pages/soil-exp-report/report-end/SoilExpReportEndIndex'
import Blank from '~/pages/blank' import Blank from '~/pages/blank'
export default [ export default [
{ {
...@@ -242,6 +248,35 @@ export default [ ...@@ -242,6 +248,35 @@ export default [
} }
] ]
}, },
{
path: 'soil_exp_report',
component: Blank,
meta: { title: '试验项目报告管理' },
children: [
{
path: 'make',
component: SoilExpReportMakeIndex,
meta: { title: '项目报告编制' }
},
{
path: 'check',
component: SoilExpReportCheckIndex,
meta: { title: '项目报告审核' }
},
{
path: 'issue',
component: SoilExpReportIssueIndex,
meta: { title: '项目报告签发' }
},
{
path: 'end',
component: SoilExpReportEndIndex,
meta: { title: '项目报告汇总' }
}
]
},
{ {
path: 'aptitude', path: 'aptitude',
component: Blank, component: Blank,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment