Commit 2529f9f6 by wangweidong

土工试验Lims

parent 63b1e867
...@@ -13,6 +13,10 @@ export default { ...@@ -13,6 +13,10 @@ export default {
pageItem: data => http.post('soil/v1/experiment/page', data).then(res => res), pageItem: data => http.post('soil/v1/experiment/page', data).then(res => res),
pageItemByEntrustId: data => pageItemByEntrustId: data =>
http.post('soil/v1/experiment/page_by_entrust', data).then(res => res), http.post('soil/v1/experiment/page_by_entrust', data).then(res => res),
listEntrustItemNum: data =>
http
.post('soil/v1/statistics/list_entrust_item_num', data)
.then(res => res),
pageReview: data => pageReview: data =>
http.post('soil/v1/entrust/page_review', data).then(res => res), http.post('soil/v1/entrust/page_review', data).then(res => res),
pageSampleReceive: data => pageSampleReceive: data =>
...@@ -76,7 +80,7 @@ export default { ...@@ -76,7 +80,7 @@ export default {
pagePrepareHis: data => pagePrepareHis: data =>
http.post('soil/v1/sample/page_prepare_his', data).then(res => res), http.post('soil/v1/sample/page_prepare_his', data).then(res => res),
pagePrepareDetailHis: data => pagePrepareDetailHis: data =>
http.post('soil/v1/prepare/page_prepare_his', data).then(res => res), http.post('soil/v1/prepare/page_prepare_detail', data).then(res => res),
sampleEdit: data => sampleEdit: data =>
http.put( http.put(
'soil/v1/sample/' + data.id + '?describeDetail=' + data.describeDetail 'soil/v1/sample/' + data.id + '?describeDetail=' + data.describeDetail
......
...@@ -44,7 +44,7 @@ ...@@ -44,7 +44,7 @@
<Input :value="scope.row.describeDetail" @change.native="_inputChange($event.target.value,scope.row)"></Input> <Input :value="scope.row.describeDetail" @change.native="_inputChange($event.target.value,scope.row)"></Input>
</div> </div>
<div v-else-if="item.key==='remark'" @click.stop="_handleRow(scope)"> <div v-else-if="item.key==='remark'" @click.stop="_handleRow(scope)">
<el-input v-model="scope.row.remark" @blur="_page()" @change="_remarkChange(scope.row)"></el-input> <el-input v-model="scope.row.remark" @change="_remarkChange(scope.row)"></el-input>
</div> </div>
</template> </template>
<template slot-scope="scope"> <template slot-scope="scope">
...@@ -132,7 +132,8 @@ export default { ...@@ -132,7 +132,8 @@ export default {
{ title: '试样编号', key: 'sampleCode', width: 100, fixed: 'left' }, { title: '试样编号', key: 'sampleCode', width: 100, fixed: 'left' },
{ title: '试样深度', key: 'sampleDepth', width: 100 }, { title: '试样深度', key: 'sampleDepth', width: 100 },
{ title: '现场编号', key: 'siteNo', width: 100 }, { title: '现场编号', key: 'siteNo', width: 100 },
{ title: '试验项目', key: 'experimentNames', width: 100 }, { title: '试验项目', key: 'experimentNames', width: 110 },
{ title: '试验项目简写', key: 'experimentShortNames', width: 120 },
{ title: '土质描述', key: 'sampleDescribe', width: 160 }, { title: '土质描述', key: 'sampleDescribe', width: 160 },
{ {
title: '土质描述详情', title: '土质描述详情',
...@@ -186,7 +187,7 @@ export default { ...@@ -186,7 +187,7 @@ export default {
remark: info.remark remark: info.remark
}) })
if (result) { if (result) {
this._resultChange('修改成功') // this._resultChange('修改成功')
} }
}, },
......
<template> <template>
<div> <div>
<Modal v-model="showModal" width="980" class="modal-footer-none"> <Modal v-model="showModal" width="1180" class="modal-footer-none">
<p slot="header"> <p slot="header">
{{ modalTitle }} {{ modalTitle }}
</p> </p>
...@@ -9,13 +9,13 @@ ...@@ -9,13 +9,13 @@
<Row> <Row>
<!--查询--> <!--查询-->
<Col span="24"> <Col span="24">
<Form id="search-sample-company" v-show="searchOpen" :label-width="80" inline onsubmit="return false"> <Form v-show="searchOpen" id="search-sample-company" :label-width="80" inline onsubmit="return false">
<label class="label-sign"></label> <label class="label-sign"></label>
<Form-item label="试样编号:" class="search-item"> <Form-item label="试样编号:" class="search-item">
<Input v-model="formObj.sampleCode" @on-enter="_formSearch" placeholder="请输入样品编号" clearable /> <Input v-model="formObj.sampleCode" placeholder="请输入样品编号" clearable @on-enter="_formSearch" />
</Form-item> </Form-item>
<Form-item class="search-btn"> <Form-item class="search-btn">
<Button @click="_page" type="primary"> <Button type="primary" @click="_page">
搜索 搜索
</Button> </Button>
</Form-item> </Form-item>
...@@ -23,33 +23,31 @@ ...@@ -23,33 +23,31 @@
</Col> </Col>
<!--操作--> <!--操作-->
<Col span="24"> <Col span="24">
<btn-list :msg="btn" :open="searchOpen" @on-result-change="_btnClick" class="contHide" show-search-btn="true"></btn-list> <btn-list :msg="btn" :open="searchOpen" class="contHide" show-search-btn="true" @on-result-change="_btnClick"></btn-list>
</Col> </Col>
<!-- 表格 --> <!-- 表格 -->
<Col span="24"> <Col span="24">
<PTVXETableHeight ref="pageTable" :table-height="tableHeight" :form-id="formId" :loading="true" <PTVXETableHeight ref="pageTable" :table-height="tableHeight" :form-id="formId" :loading="true"
:get-page="getPage" :icon-msg="iconMsg" @on-result-change="_tableResultChange" select-data> :get-page="getPage" :icon-msg="iconMsg" select-data @on-result-change="_tableResultChange">
<vxe-table-column <vxe-table-column
v-for="item in pageColumns" v-for="item in pageColumns"
:key="item.key" :key="item.key"
:field="item.key" :field="item.key"
:title="item.title" :title="item.title"
:width="item.width?item.width:200" :width="item.width?item.width:200"
:fixed="item.fixed?item.fixed:undefined" sortable> :fixed="item.fixed?item.fixed:undefined"
<template slot-scope="scope"> :edit-render="item.editCell?{autofocus: 'input'}:null" sortable>
<div v-if="item.detail"> <template slot-scope="scope">
<a @click.stop="_detailModal(scope.row)">{{ scope.row[item.key] }}</a> <div v-if="item.key==='describeDetail'" @click.stop="_handleRow(scope)">
</div> <Input :value="scope.row.describeDetail" @change.native="_inputChange($event.target.value,scope.row)"></Input>
<div v-else-if="item.status"> </div>
{{ scope.row[item.key].display }} <div v-else-if="item.key==='remark'" @click.stop="_handleRow(scope)">
</div> <el-input v-model="scope.row.remark" @change="_remarkChange(scope.row)"></el-input>
<div v-else-if="item.date"> </div>
{{ scope.row[item.key]?$dateformat(scope.row[item.key],'yyyy-mm-dd'):'' }} <div v-else>
</div> {{ scope.row[item.key] }}
<div v-else> </div>
{{ scope.row[item.key] }} </template>
</div>
</template>
</vxe-table-column> </vxe-table-column>
</PTVXETableHeight> </PTVXETableHeight>
</Col> </Col>
...@@ -87,6 +85,11 @@ export default { ...@@ -87,6 +85,11 @@ export default {
type: 'success', type: 'success',
id: 'ZBC', id: 'ZBC',
name: '打印标签' name: '打印标签'
},
{
type: 'success',
id: '',
name: '批量填写土质描述详情'
} }
], ],
itemList: [], itemList: [],
...@@ -117,11 +120,29 @@ export default { ...@@ -117,11 +120,29 @@ export default {
selectData: {}, selectData: {},
getPage: {}, getPage: {},
pageColumns: [ pageColumns: [
{ title: '试样编号', key: 'sampleCode', width: 100, fixed: 'left' }, {
title: '试样编号',
key: 'sampleCode',
width: 120,
fixed: 'left'
},
{ title: '试样深度', key: 'sampleDepth', width: 100 }, { title: '试样深度', key: 'sampleDepth', width: 100 },
{ title: '现场编号', key: 'siteNo', width: 100 }, { title: '现场编号', key: 'siteNo', width: 100 },
{ title: '试验项目', key: 'experimentNames', width: 110 },
{ title: '试验项目简写', key: 'experimentShortNames', width: 120 },
{ title: '土质描述', key: 'sampleDescribe', width: 160 }, { title: '土质描述', key: 'sampleDescribe', width: 160 },
{ title: '土质描述详情', key: 'describeDetail', width: 160 }, {
title: '土质描述详情',
key: 'describeDetail',
width: 200,
editCell: true
},
{
title: '备注',
key: 'remark',
width: 200,
editCell: true
},
{ title: '样品包装类型', key: 'samplePack', width: 120 } { title: '样品包装类型', key: 'samplePack', width: 120 }
], ],
sampleId: '', sampleId: '',
...@@ -142,15 +163,27 @@ export default { ...@@ -142,15 +163,27 @@ export default {
} }
}, },
methods: { methods: {
_inputChange: async function(info) { _inputChange: async function(info, data) {
this.getPage.records[data.index].describeDetail = info
const result = await soilEntrust.sampleEdit({ const result = await soilEntrust.sampleEdit({
id: data.id,
describeDetail: info
})
if (result) {
this.$Message.success('修改成功')
}
},
_remarkChange: async function(info) {
const result = await soilEntrust.sampleRemarkEdit({
id: info.id, id: info.id,
describeDetail: info.describeDetail remark: info.remark
}) })
if (result) { if (result) {
this._resultChange('修改成功') // this._resultChange('修改成功')
} }
}, },
_handleRow(data) { _handleRow(data) {
this.currentRow = data.row this.currentRow = data.row
this.currentIndex = data.rowIndex this.currentIndex = data.rowIndex
...@@ -212,42 +245,12 @@ export default { ...@@ -212,42 +245,12 @@ export default {
this.currentComponent = componentName this.currentComponent = componentName
this.$nextTick(function() { this.$nextTick(function() {
switch (msg) { switch (msg) {
case '添加':
this._editModal(false)
break
case '复制历史样品':
this._copyHisSample()
break
case '导入样品':
this._importSample()
break
case '导入检测项目':
this._importItem()
break
case '导入检测项目包':
this._importItemPackage()
break
case '打印标签': case '打印标签':
this._printLabel() this._printLabel()
break break
case '试样制备':
this._samplePre()
break
case '批量填写土质描述详情': case '批量填写土质描述详情':
this._writeDetail(this.selectIds) this._writeDetail(this.selectIds)
break break
case '复制历史样品检测项目':
this._copyHisItem()
break
case '删除':
this._deleteSelected()
break
case '导出':
this._exportSample()
break
case '添加模拟样品':
this._editImitateModal(false)
break
case 'search': case 'search':
this.searchOpen = !this.searchOpen this.searchOpen = !this.searchOpen
break break
......
...@@ -61,16 +61,14 @@ import SoilSampleManage from '../SoilSampleManage' ...@@ -61,16 +61,14 @@ import SoilSampleManage from '../SoilSampleManage'
import global from '../../../api/config' import global from '../../../api/config'
import SamplePreparationEdit from './SamplePreparationEdit' import SamplePreparationEdit from './SamplePreparationEdit'
import SoilSampleItemManageEdit from './SoilSampleItemManageEdit' import SoilSampleItemManageEdit from './SoilSampleItemManageEdit'
import SoilEntrustItemNum from './SoilItemNum'
export default { export default {
components: { components: {
// eslint-disable-next-line vue/no-unused-components
Operation, Operation,
// eslint-disable-next-line vue/no-unused-components
SamplePreparationEdit, SamplePreparationEdit,
// eslint-disable-next-line vue/no-unused-components
SoilSampleManage, SoilSampleManage,
// eslint-disable-next-line vue/no-unused-components SoilSampleItemManageEdit,
SoilSampleItemManageEdit SoilEntrustItemNum
}, },
data() { data() {
return { return {
...@@ -111,6 +109,11 @@ export default { ...@@ -111,6 +109,11 @@ export default {
name: '试验项目列表' name: '试验项目列表'
}, },
{ {
type: 'ios-calculator-outline',
id: '',
name: '项目量统计'
},
{
type: 'ios-download', type: 'ios-download',
id: '', id: '',
name: '导出开土制备记录' name: '导出开土制备记录'
...@@ -203,6 +206,9 @@ export default { ...@@ -203,6 +206,9 @@ export default {
case '试验项目列表': case '试验项目列表':
this._itemManage(data.id) this._itemManage(data.id)
break break
case '项目量统计':
this._itemNumManage(data.id)
break
case '导出开土制备记录': case '导出开土制备记录':
this._exportPrepare(data.id) this._exportPrepare(data.id)
break break
...@@ -369,7 +375,12 @@ export default { ...@@ -369,7 +375,12 @@ export default {
}) })
// this.$refs.itemManageModal._openByEntrustId(data) // this.$refs.itemManageModal._openByEntrustId(data)
}, },
_itemNumManage(data) {
this.currentComponent = 'SoilEntrustItemNum'
this.$nextTick(() => {
this.$refs.refModal._open(data)
})
},
_uploadPhoto(id) { _uploadPhoto(id) {
// 上传照片文件 // 上传照片文件
this.currentComponent = 'PhotoManage' this.currentComponent = 'PhotoManage'
......
...@@ -6,24 +6,24 @@ ...@@ -6,24 +6,24 @@
<Row> <Row>
<!--查询--> <!--查询-->
<Col span="24" style="margin-top: 10px"> <Col span="24" style="margin-top: 10px">
<Form id="formId" v-show="searchOpen" :label-width="90" inline onsubmit="return false"> <Form v-show="searchOpen" id="formId" :label-width="90" 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.client" @on-enter="_formSearch" name="client" placeholder="请输入委托单位" clearable/> <Input v-model="formObj.client" name="client" placeholder="请输入委托单位" clearable @on-enter="_formSearch"/>
</Form-item> </Form-item>
<Form-item class="search-item" label="委托编号:"> <Form-item class="search-item" label="委托编号:">
<Input v-model="formObj.entrustCode" @on-enter="_formSearch" name="entrustCode" placeholder="请输入委托单号" clearable/> <Input v-model="formObj.entrustCode" name="entrustCode" placeholder="请输入委托单号" clearable @on-enter="_formSearch"/>
</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" :open="searchOpen" :show-search-btn="true" @on-result-change="_btnClick" <btn-list :msg="btn" :open="searchOpen" :show-search-btn="true" class="contHide"
class="contHide"></btn-list> @on-result-change="_btnClick"></btn-list>
</Col> </Col>
<!--表格--> <!--表格-->
<Col span="24"> <Col span="24">
...@@ -49,13 +49,8 @@ ...@@ -49,13 +49,8 @@
</Row> </Row>
</div> </div>
</div> </div>
<!-- <MeterEntrustRecord ref="entrustRecordModal" @on-result-change="_page"></MeterEntrustRecord>-->
<!-- <SoilSampleManageHis ref="sampleManageModal" @on-result-change="_page"></SoilSampleManageHis>-->
<!-- <PhotoManage ref="photoManage"></PhotoManage>-->
<!-- <FileManage ref="fileManage"></FileManage>-->
<keep-alive> <keep-alive>
<!-- eslint-disable-next-line vue/require-component-is --> <component :is="currentComponent" ref="refModal" @on-result-change="_componentResult"></component>
<component ref="refModal" :is="currentComponent" @on-result-change="_componentResult"></component>
</keep-alive> </keep-alive>
</div> </div>
</template> </template>
...@@ -64,9 +59,10 @@ import { soilAptitude, soilEntrust } from '../../../api' ...@@ -64,9 +59,10 @@ import { soilAptitude, soilEntrust } from '../../../api'
import MeterEntrustRecord from '../../../components/operation/Operation' import MeterEntrustRecord from '../../../components/operation/Operation'
import SoilSampleManageHis from '../SoilSampleManageHis' import SoilSampleManageHis from '../SoilSampleManageHis'
import global from '../../../api/config' import global from '../../../api/config'
import SoilEntrustItemNum from './SoilItemNum'
export default { export default {
// eslint-disable-next-line vue/no-unused-components // eslint-disable-next-line vue/no-unused-components
components: { SoilSampleManageHis, MeterEntrustRecord }, components: { SoilSampleManageHis, MeterEntrustRecord, SoilEntrustItemNum },
data() { data() {
return { return {
currentComponent: '', currentComponent: '',
...@@ -85,6 +81,7 @@ export default { ...@@ -85,6 +81,7 @@ export default {
id: '', id: '',
name: '试样列表' name: '试样列表'
}, },
{ {
type: 'ios-camera-outline', type: 'ios-camera-outline',
id: '', id: '',
...@@ -96,6 +93,11 @@ export default { ...@@ -96,6 +93,11 @@ export default {
name: '导出开土制备记录' name: '导出开土制备记录'
}, },
{ {
type: 'ios-calculator-outline',
id: '',
name: '项目量统计'
},
{
type: 'md-cloud', type: 'md-cloud',
id: '', id: '',
name: '附件' name: '附件'
...@@ -172,6 +174,9 @@ export default { ...@@ -172,6 +174,9 @@ export default {
case '附件': case '附件':
this._upload(data.id) this._upload(data.id)
break break
case '项目量统计':
this._itemNumManage(data.id)
break
case '试样照片': case '试样照片':
this._upLoadPhoto(data.id) this._upLoadPhoto(data.id)
break break
...@@ -190,6 +195,12 @@ export default { ...@@ -190,6 +195,12 @@ export default {
} }
}) })
}, },
_itemNumManage(data) {
this.currentComponent = 'SoilEntrustItemNum'
this.$nextTick(() => {
this.$refs.refModal._open(data)
})
},
_exportPrepare(id) { _exportPrepare(id) {
this.$Modal.confirm({ this.$Modal.confirm({
title: '提示', title: '提示',
......
...@@ -7,7 +7,6 @@ ...@@ -7,7 +7,6 @@
<el-tab-pane label="历史记录" name="his"></el-tab-pane> <el-tab-pane label="历史记录" name="his"></el-tab-pane>
</el-tabs> </el-tabs>
<keep-alive> <keep-alive>
<!-- eslint-disable-next-line vue/require-component-is -->
<component ref="refModal" :is="currentComponent"></component> <component ref="refModal" :is="currentComponent"></component>
</keep-alive> </keep-alive>
</div> </div>
...@@ -19,7 +18,6 @@ import MeterSendEntrust from './SamplePreparation' ...@@ -19,7 +18,6 @@ import MeterSendEntrust from './SamplePreparation'
import MeterSendEntrustHis from './SamplePreparationHis' import MeterSendEntrustHis from './SamplePreparationHis'
export default { export default {
name: 'MeterSendEntrustIndex', name: 'MeterSendEntrustIndex',
// eslint-disable-next-line vue/no-unused-components
components: { MeterSendEntrust, MeterSendEntrustHis }, components: { MeterSendEntrust, MeterSendEntrustHis },
data() { data() {
return { return {
...@@ -47,7 +45,6 @@ export default { ...@@ -47,7 +45,6 @@ export default {
this.$nextTick(() => { this.$nextTick(() => {
this.$refs.refModal._page() this.$refs.refModal._page()
}) })
// this.$refs.waitTabs._page()
} }
} }
} }
......
<template>
<div>
<Modal v-model="showModal" width="800">
<p slot="header">
{{ modalTitle }}
</p>
<div>
<!--内容-->
<Row>
<!--查询-->
<Col span="24">
</Col>
<!--操作-->
<Col span="24">
<btn-list :msg="btn" :open="searchOpen" class="contHide" show-search-btn="true" @on-result-change="_btnClick"></btn-list>
</Col>
<!-- 表格 -->
<Col span="24">
<PTVXETable ref="pageTable" :table-height="tableHeight" :form-id="formId" :loading="true"
:get-page="getPage" hide-page="true" is-edit select-data @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"
:edit-render="item.editCell?{autofocus: 'input'}:null"
:fixed="item.fixed?item.fixed:undefined" sortable>
<template slot-scope="scope">
{{ scope.row[item.key] }}
</template>
</vxe-table-column>
</PTVXETable>
</Col>
</Row>
</div>
<div slot="footer">
<modal-footer ref="footerModal" :footer="footerList" @on-result-change="_footerResult" />
</div>
</Modal>
</div>
</template>
<script>
import { soilEntrust } from '../../../api'
export default {
components: {},
data() {
return {
formId: 'SampleItemManage',
currentComponent: '',
btn: [],
entrustId: '',
showModal: false,
modalTitle: '试验项目统计量',
selectIds: [],
itemId: '',
showOption: true,
searchOpen: true,
selectData: {},
getPage: { records: [] },
currentRow: '',
currentIndex: '',
footerList: [
{ id: '', name: '取消', type: '' },
{ id: '', name: '关闭', type: 'primary' }
],
pageColumns: [
{ title: '试验名称', key: 'name' },
{ title: '试验总数', key: 'num' }
],
formObj: {
entrustId: undefined
}
}
},
computed: {
tableHeight: function() {
return this.$tableHeight('tableModal')
}
},
methods: {
_footerResult(name) {
switch (name) {
case '取消':
this._cancel()
break
case '关闭':
this._cancel()
break
}
},
_cancel() {
this.$emit('on-result-change')
this.$refs.pageTable._hideLoading()
this.$refs.footerModal._hideLoading()
this.showModal = false
},
_modalResult(data1, data2) {
switch (this.currentComponent) {
case 'CopyModal':
if (data1 === 0) {
this._copySample(data2)
} else {
this._copyAll(data2)
}
break
default:
this._search()
}
},
methodChange(data) {
const editData = {}
editData.testMethod = data.testMethod
this._editItem(data.id, editData)
},
_handleRow(data) {
this.currentRow = data.row
this.currentIndex = data.rowIndex
},
_btnClick(msg, componentName) {
this.currentComponent = componentName
this.$nextTick(function() {
switch (msg) {
case '批量填写试验项目信息':
this._writeInfo()
break
case 'search':
this.searchOpen = !this.searchOpen
break
}
})
},
_iconClick(res, data, componentName, index) {
this.currentComponent = componentName
this.$nextTick(function() {
switch (res) {
case '编辑':
this._editModal(true, data)
break
case '删除':
console.log(index)
this._deleteById(data.id)
break
case '附件':
this.$refs.refModal._open(data.id, 'sampleId')
break
}
})
},
_tableResultChange(msg, data) {
const selectIds = []
switch (msg) {
case 'selectData':
for (let i = 0; i < data.length; i++) {
selectIds.push(data[i].id)
}
this.selectIds = selectIds
this.selectData = data
break
case 'page':
this._pageByEntrustId()
break
case 'changeSize':
this._pageByEntrustId()
break
}
},
_open(id) {
this.formObj = this.$resetFields(this.formObj)
this.formObj.entrustId = id
this.showModal = true
this.$refs.pageTable._hideLoading()
this._pageByEntrustId()
},
_formSearch() {
this.$refs.pageTable._pageChange(1)
},
_pageByEntrustId: async function() {
Object.assign(this.formObj, this.$refs.pageTable._searchParams())
const result = await soilEntrust.listEntrustItemNum(
this.$serializeForm(this.formObj)
)
if (result) {
this.$refs.pageTable._hideLoading()
this.getPage.records = result
}
},
_detailModal(data) {},
_search() {
this._pageByEntrustId()
},
_resultChange(msg) {
this._pageByEntrustId()
this.$Message.success(msg)
this.$emit('on-result-change')
}
}
}
</script>
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