Commit 4f0bbfaa by zhangmengqi

Merge branch 'dev'

parents fa83cf03 fa0aa9fc
FROM node:lts-alpine
MAINTAINER 1516330897@qq.com
RUN npm install -g cnpm --registry=https://registry.npm.taobao.org && cnpm install -g pm2@latest && mkdir /app
WORKDIR /app
COPY . /app
EXPOSE 8133
RUN chmod 755 ./pm2-start.sh
CMD ["./pm2-start.sh"]
...@@ -212,6 +212,12 @@ export default { ...@@ -212,6 +212,12 @@ export default {
http http
.post('soil/v1/exp_report/page_group_exp_report_end', data) .post('soil/v1/exp_report/page_group_exp_report_end', data)
.then(res => res), .then(res => res),
seniorTestReport: data =>
http
.post('soil/v1/experiment/senior_test_report?id=' + 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 =>
......
...@@ -32,7 +32,7 @@ ...@@ -32,7 +32,7 @@
"iview": "^3.3.3", "iview": "^3.3.3",
"koa": "^2.6.2", "koa": "^2.6.2",
"mescroll.js": "^1.4.2", "mescroll.js": "^1.4.2",
"node-schedule": "^1.3.0", "node-schedule": "1.3.0",
"nuxt": "^2.4.0", "nuxt": "^2.4.0",
"nuxt-start": "^2.5.1", "nuxt-start": "^2.5.1",
"script-loader": "^0.7.2", "script-loader": "^0.7.2",
......
...@@ -736,6 +736,13 @@ export default { ...@@ -736,6 +736,13 @@ export default {
if (valid) { if (valid) {
const data = this.$serialize('MeterSendTestEdit') const data = this.$serialize('MeterSendTestEdit')
console.log(this.getPage.records) console.log(this.getPage.records)
for (let i = 0; i < this.getPage.records.length; i++) {
if (this.getPage.records[i].siteNo === '') {
this.$Message.error('有未填写现场编号的样品')
this._hideLoading()
return
}
}
if (this.$string(this.id).isEmpty()) { if (this.$string(this.id).isEmpty()) {
// 添加 // 添加
data.sampleList = this.getPage.records data.sampleList = this.getPage.records
...@@ -746,6 +753,7 @@ export default { ...@@ -746,6 +753,7 @@ export default {
data.projectLeader = undefined data.projectLeader = undefined
data.projectLeaderId = undefined data.projectLeaderId = undefined
} }
// alert('添加')
this._save(data) this._save(data)
} else { } else {
data.id = this.id data.id = this.id
...@@ -758,6 +766,7 @@ export default { ...@@ -758,6 +766,7 @@ export default {
data.projectLeader = undefined data.projectLeader = undefined
data.projectLeaderId = undefined data.projectLeaderId = undefined
} }
// alert('编辑')
this._edit(data) this._edit(data)
} }
} else { } else {
......
...@@ -39,7 +39,7 @@ ...@@ -39,7 +39,7 @@
></Input> ></Input>
</div> </div>
<div v-else-if="item.key==='sampleCode'"> <div v-else-if="item.key==='sampleCode'">
{{scope.row[item.key]}}{{'--'+scope.row.index}} {{scope.row[item.key]+'--'}}{{Number(scope.row.index)+1}}
</div> </div>
<span v-else> <span v-else>
{{ scope.row[item.key] }} {{ scope.row[item.key] }}
...@@ -202,7 +202,7 @@ export default { ...@@ -202,7 +202,7 @@ export default {
this.getPage.records[i].sampleCode = this.getPage.records[i].sampleCode =
this.getPage.records[i].sampleCode + this.getPage.records[i].sampleCode +
'-' + '-' +
this.getPage.records[i].index (this.getPage.records[i].index + 1)
console.log(this.getPage.records[i]) console.log(this.getPage.records[i])
this._addSample(this.getPage.records[i]) this._addSample(this.getPage.records[i])
} }
......
<template>
<div>
<Row>
<!--查询-->
<Col span="24">
<Form :label-width="80" v-show="searchOpen" inline onsubmit="return false">
<label class="label-sign"></label>
<Form-item class="search-item" label="模板名称:">
<Input v-model="formObj.title" @on-enter="_formSearch" placeholder="请输入模板名称" clearable></Input>
</Form-item>
<Form-item class="search-item" label="委托编号:">
<Input v-model="formObj.entrustCode" @on-enter="_formSearch" placeholder="请输入委托编号" clearable></Input>
</Form-item>
<Form-item class="search-btn">
<Button @click="_formSearch" type="primary">搜索</Button>
</Form-item>
</Form>
</Col>
<!--操作-->
<Col span="24">
<btn-list :open="searchOpen" :showSearchBtn="true" @on-result-change="_btnClick"
class="contHide"></btn-list>
</Col>
<!-- 表格 -->
<Col span="24">
<PTVXETable ref="pageTable" :tableHeight="tableHeight"
@on-result-change="_tableResultChange" :icon-msg="iconMsg" :getPage="getPage">
<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" sortable>
<template slot-scope="scope">
<div v-if="item.dateTime">
{{scope.row[item.key]?$dateformat(scope.row[item.key],'yyyy-mm-dd HH:MM'):''}}
</div>
<div v-else>{{scope.row[item.key]}}</div>
</template>
</vxe-table-column>
</PTVXETable>
</Col>
</Row>
<ItemOriginalRecordEdit ref="recordEditModal"></ItemOriginalRecordEdit>
<ItemView ref="itemViewModal"></ItemView>
</div>
</template>
<script>
/**
* 原始记录查看
*/
import Global from '../../../api/config'
import { soilReport, soilTest } from '../../../api'
import ItemOriginalRecordEdit from './OriginalRecordEdit'
import ItemView from './ItemView'
export default {
components: {
ItemOriginalRecordEdit,
ItemView
},
data() {
return {
currentComponent: '',
getPage: {},
btn: [
{
type: 'error',
id: '',
name: '批量删除'
}
],
selectIds: [],
iconMsg: [
{
type: 'md-create',
id: '',
name: '编辑'
},
{
type: 'ios-book',
id: '',
name: '查看原始记录'
},
{
type: 'ios-list',
id: '',
name: '查看试验项目'
},
{ type: 'md-trash', id: '', name: '删除' }
],
pageColumns: [
{ title: '模板名称', key: 'title' },
{ title: '委托编号', key: 'entrustCode' },
{ title: '填写人', key: 'uname' },
{ title: '创建时间', key: 'ctime', dateTime: true }
],
formObj: {
entrustId: ''
},
searchOpen: false
}
},
computed: {
tableHeight: function() {
if (this.searchOpen) {
return this.$tableHeight('', 340)
} else {
return this.$tableHeight('tabNoSearch')
}
}
},
mounted() {
this._page()
},
methods: {
_componentResult(data) {
switch (this.currentComponent) {
case 'EditDateModal':
this._updateDate(data)
break
default:
this._page()
}
},
_btnClick(msg, componentName) {
this.currentComponent = componentName
this.$nextTick(function() {
switch (msg) {
case '批量删除':
this._batchDelete()
break
case 'search':
this.searchOpen = !this.searchOpen
break
}
})
},
_batchDelete() {
if (this.selectIds.length === 0) {
this.$Message.warning('请至少选择一条数据')
} else {
this.$Modal.confirm({
title: '提示',
content: '确定删除?',
onOk: () => {
this._delete()
}
})
}
},
_delete: async function() {
const result = await soilTest.deleteRecord(this.selectIds.join(','))
if (result) {
this.$Message.success('删除成功')
this._page()
}
},
_iconClick(res, data, currentComponent) {
this.currentComponent = currentComponent
this.$nextTick(() => {
switch (res) {
case '编辑':
this._reportEdit(data)
break
case '查看原始记录':
this._reportView(data)
// this._recordView(data.originalRecordId)
break
case '查看试验项目':
this._itemView(data.id)
break
case '删除':
this._deleteByIds([data.id])
break
}
})
},
// 查看试验项目
_itemView(id) {
this.$refs.itemViewModal._open(id)
},
_reportView(data) {
if (data.objectKey) {
this._reportMakeLook(data)
} else {
this._recordView(data.originalRecordId)
}
},
_reportEdit(data) {
if (data.objectKey) {
this._reportMakeLook(data)
} else {
this.$refs.recordEditModal._openWithType(
data.originalRecordId,
'ENVTESTMAKEEDIT'
)
}
},
_reportMakeLook: async function(data) {
console.log(data)
const result = await soilReport.originalRecordGetById(data.id)
if (result) {
this._viewReport(result)
}
},
_viewReport(data) {
if (data) {
this.$openWindowModeless({
objectKey: data.objectKey,
idType: 10,
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)
}
}
}
}
)
},
_open(entrustId) {
this.formObj.entrustId = entrustId
this._page()
},
_tableResultChange(msg, data) {
switch (msg) {
case 'page':
this.getPage = this.$store.state.EnvItem.page
break
case 'selectIds':
this.selectIds = data
break
case 'iconClick':
this._iconClick(data.name, data.rowData, data.componentName)
break
case 'changeSize':
this._page()
break
}
},
_formSearch() {
this.$refs.pageTable._pageChange(1)
},
_page: async function() {
this.selectIds = []
Object.assign(this.formObj, this.$refs.pageTable._searchParams())
const result = await soilTest.recordPage(
this.$serializeForm(this.formObj)
)
if (result) {
this.$refs.pageTable._hideLoading()
this.getPage = result
}
},
// 删除原始记录
_deleteByIds(ids, content) {
this.$Modal.confirm({
title: '提示',
content: content || '确定删除该记录?',
onOk: () => {
this._deleteOk(ids)
}
})
},
_deleteOk: async function(ids) {
const result = await soilTest.deleteRecord(ids)
if (result) {
this.$Message.success('删除成功')
this._page()
}
}
}
}
</script>
...@@ -11,6 +11,9 @@ ...@@ -11,6 +11,9 @@
<el-tab-pane label="原始记录填写" name="recordModal"> <el-tab-pane label="原始记录填写" name="recordModal">
<RecordWrite ref="recordModal"></RecordWrite> <RecordWrite ref="recordModal"></RecordWrite>
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="查看原始记录" name="viewRecord">
<OriginalRecordView ref="recordViewModal"></OriginalRecordView>
</el-tab-pane>
</el-tabs> </el-tabs>
<!-- <keep-alive>--> <!-- <keep-alive>-->
<!-- &lt;!&ndash; eslint-disable-next-line vue/require-component-is &ndash;&gt;--> <!-- &lt;!&ndash; eslint-disable-next-line vue/require-component-is &ndash;&gt;-->
...@@ -23,10 +26,12 @@ ...@@ -23,10 +26,12 @@
<script> <script>
import SoilSampleManage from '../SoilSampleManageTab' import SoilSampleManage from '../SoilSampleManageTab'
import RecordWrite from './sample-preparation-record/RecordIndex' import RecordWrite from './sample-preparation-record/RecordIndex'
import OriginalRecordView from './OriginalRecordView'
export default { export default {
components: { components: {
SoilSampleManage, SoilSampleManage,
RecordWrite RecordWrite,
OriginalRecordView
}, },
data() { data() {
return { return {
...@@ -60,11 +65,16 @@ export default { ...@@ -60,11 +65,16 @@ export default {
_recordPage() { _recordPage() {
this.$refs.recordModal._open(this.entrustId) this.$refs.recordModal._open(this.entrustId)
}, },
_recordView() {
this.$refs.recordViewModal._open(this.entrustId)
},
_changeTabs(tab, event) { _changeTabs(tab, event) {
if (tab.name === 'prepareManage') { if (tab.name === 'prepareManage') {
// this._issuedPage() // this._issuedPage()
this.$refs.prepareManage._open(this.entrustId) this.$refs.prepareManage._open(this.entrustId)
this.$refs.recordModal._clearTable() this.$refs.recordModal._clearTable()
} else if (tab.name === 'viewRecord') {
this._recordView()
} else { } else {
this.$refs.recordModal._open(this.entrustId) this.$refs.recordModal._open(this.entrustId)
} }
......
...@@ -59,14 +59,22 @@ ...@@ -59,14 +59,22 @@
</div> </div>
</template> </template>
<script> <script>
import { soilAptitude, soilEntrust } from '../../../api' import { soilAptitude, soilEntrust, soilSample } from '../../../api'
import MeterEntrustRecord from '../../../components/operation/Operation' import MeterEntrustRecord from '../../../components/operation/Operation'
import global from '../../../api/config'
import SoilSampleManageHis from './SampleManageHis' import SoilSampleManageHis from './SampleManageHis'
import SoilEntrustItemNum from './SoilItemNum' import SoilEntrustItemNum from './SoilItemNum'
import CreateReport from './CreateReport'
export default { export default {
components: {
// eslint-disable-next-line vue/no-unused-components // eslint-disable-next-line vue/no-unused-components
components: { SoilSampleManageHis, MeterEntrustRecord, SoilEntrustItemNum }, SoilSampleManageHis,
// eslint-disable-next-line vue/no-unused-components
MeterEntrustRecord,
// eslint-disable-next-line vue/no-unused-components
SoilEntrustItemNum,
// eslint-disable-next-line vue/no-unused-components
CreateReport
},
data() { data() {
return { return {
currentComponent: '', currentComponent: '',
...@@ -212,25 +220,75 @@ export default { ...@@ -212,25 +220,75 @@ export default {
}) })
}, },
_exportPrepare(id) { _exportPrepare(id) {
this.$Modal.confirm({ // this.$Modal.confirm({
title: '提示', // title: '提示',
content: '确定导出这条记录', // content: '确定导出这条记录',
onOk: () => { // onOk: () => {
window.open( // window.open(
global.baseURL + // global.baseURL +
'/soil/v1/entrust/export_soil_prepare_record?ids=' + // '/soil/v1/entrust/export_soil_prepare_record?ids=' +
id, // id,
'_blank' // '_blank'
) // )
} // }
// })
this.currentComponent = 'CreateReport'
this.$nextTick(() => {
this.$refs.refModal._open(id)
}) })
}, },
_componentResult(data, msg) { _componentResult(data, msg) {
switch (this.currentComponent) { switch (this.currentComponent) {
case 'CreateReport':
this._openSoilRecordMake(data)
break
default: default:
this._page() this._page()
} }
}, },
_openSoilRecordMake(data) {
if (data) {
this.$refs.pageTable._showLoading()
this._makeCodeExcel(data)
} else {
const ids = this.selectIds
if (ids.length === 0) {
this.$Message.warning('请至少选择一条数据!')
} else {
// this._appendOriginalRecord()
}
}
},
_makeCodeExcel: async function(data) {
this.$refs.pageTable._showLoading()
const result = await soilSample.saveExcelOpenSoilRecord({
entrustId: data.entrustId,
templateId: data.id
})
this.$refs.pageTable._hideLoading()
if (result) {
await this._page()
if (result === null || result === undefined) {
this.$Message.warning('证书编制失败,请联系管理员!')
this.$refs.pageTable._hideLoading()
return false
} else {
this.$emit('on-result-change')
this._viewReport(result)
}
}
},
_viewReport(data) {
this.$refs.pageTable._hideLoading()
if (data) {
this.$openWindowModeless({
objectKey: data.objectKey,
idType: 10,
id: data.id,
isReport: 4
})
}
},
_sampleManage(data) { _sampleManage(data) {
this.currentComponent = 'SoilSampleManageHis' this.currentComponent = 'SoilSampleManageHis'
this.$nextTick(() => { this.$nextTick(() => {
......
...@@ -5,11 +5,14 @@ ...@@ -5,11 +5,14 @@
<Col span="24"> <Col span="24">
<Form :label-width="80" v-show="searchOpen" inline onsubmit="return false"> <Form :label-width="80" v-show="searchOpen" 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.title" @on-enter="_formSearch" placeholder="请输入模板名称" clearable></Input> <Input v-model="formObj.title" @on-enter="_formSearch" placeholder="请输入模板名称" clearable></Input>
</Form-item> </Form-item>
<Form-item class="search-item" label="委托编号:"> <Form-item class="search-item" label="附件类型:">
<Input v-model="formObj.entrustCode" @on-enter="_formSearch" placeholder="请输入委托编号" clearable></Input> <Input v-model="formObj.remark" @on-enter="_formSearch" placeholder="请输入附件类型" clearable></Input>
</Form-item>
<Form-item class="search-item" label="样品编号:">
<Input v-model="formObj.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>
...@@ -85,7 +88,7 @@ export default { ...@@ -85,7 +88,7 @@ export default {
formObj: { formObj: {
entrustId: '' entrustId: ''
}, },
searchOpen: false searchOpen: true
} }
}, },
computed: { computed: {
......
...@@ -6,21 +6,21 @@ ...@@ -6,21 +6,21 @@
<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" name="sampleCode" placeholder="请输入试样编号" clearable></Input> <Input v-model="formObj.sampleCode" name="sampleCode" placeholder="请输入试样编号" clearable @on-enter="_formSearch"></Input>
</Form-item> </Form-item>
<Form-item class="search-btn"> <Form-item class="search-btn">
<Button @click="_formSearch" type="primary">搜索</Button> <Button type="primary" @click="_formSearch">搜索</Button>
</Form-item> </Form-item>
</Form> </Form>
</Col> </Col>
<!--操作--> <!--操作-->
<Col span="24"> <Col span="24">
<btn-list :msg="btn" @on-result-change="_btnClick" class="contHide"></btn-list> <btn-list :msg="btn" class="contHide" @on-result-change="_btnClick"></btn-list>
</Col> </Col>
<!-- 表格 --> <!-- 表格 -->
<Col span="24"> <Col span="24">
<PTVXETable ref="pageTable" :page-columns="pageColumns" :table-height="tableHeight" <PTVXETable ref="pageTable" :page-columns="pageColumns" :table-height="tableHeight"
:get-page="getPage" :icon-msg="iconMsg" :table-name="tableName" @on-result-change="_tableResultChange" is-task select-data> :get-page="getPage" :icon-msg="iconMsg" :table-name="tableName" is-task 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"
...@@ -149,6 +149,7 @@ export default { ...@@ -149,6 +149,7 @@ export default {
], ],
iconMsg: [ iconMsg: [
{ type: 'ios-book', id: '', name: '查看原始记录' }, { type: 'ios-book', id: '', name: '查看原始记录' },
{ type: 'md-clipboard', id: '', name: '高级实验报告生成' },
{ type: 'ios-list-box', id: '', name: '查看GDS数据' }, { 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: '查看采集数据' },
...@@ -212,15 +213,9 @@ export default { ...@@ -212,15 +213,9 @@ export default {
switch (res) { switch (res) {
case '查看原始记录': case '查看原始记录':
this._reportView(data) this._reportView(data)
// console.log(data) break
// if (data.recorded === '是') { case '高级实验报告生成':
// this.$refs.editModal._openWithType( this._seniorTestReport(data)
// data.recordId,
// 'ENVTESTMAKEEDIT'
// )
// } else {
// this.$Message.warning('未填写原始记录')
// }
break break
case '查看GDS数据': case '查看GDS数据':
this._viewGdsData(data.sampleCode) this._viewGdsData(data.sampleCode)
...@@ -272,6 +267,14 @@ export default { ...@@ -272,6 +267,14 @@ export default {
this.$Message.warning('未填写原始记录') this.$Message.warning('未填写原始记录')
} }
}, },
_seniorTestReport: async function(data) {
const result = await soilTest.seniorTestReport(data.id)
if (result) {
this._viewExpReport(result)
}
},
_reportMakeLook: async function(data) { _reportMakeLook: async function(data) {
const result = await soilReport.getExcelOriginalRecord(data.id) const result = await soilReport.getExcelOriginalRecord(data.id)
if (result) { if (result) {
...@@ -325,6 +328,17 @@ export default { ...@@ -325,6 +328,17 @@ export default {
}) })
} }
}, },
_viewExpReport(data) {
this.$refs.pageTable._hideLoading()
if (data) {
this.$openWindowModeless({
objectKey: data.objectKey,
idType: 13,
id: data.id,
isReport: 4
})
}
},
_collectManage(data) { _collectManage(data) {
this.$refs.collectModal._open(data) this.$refs.collectModal._open(data)
}, },
......
#docker 容器启动脚本
#!/bin/bash
# 防止container启动后退出,使用命令 tail -f /dev/null
pm2 start ecosystem.config.js && tail -f /dev/null
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