Commit 2529f9f6 by wangweidong

土工试验Lims

parent 63b1e867
......@@ -13,6 +13,10 @@ export default {
pageItem: data => http.post('soil/v1/experiment/page', data).then(res => res),
pageItemByEntrustId: data =>
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 =>
http.post('soil/v1/entrust/page_review', data).then(res => res),
pageSampleReceive: data =>
......@@ -76,7 +80,7 @@ export default {
pagePrepareHis: data =>
http.post('soil/v1/sample/page_prepare_his', data).then(res => res),
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 =>
http.put(
'soil/v1/sample/' + data.id + '?describeDetail=' + data.describeDetail
......
......@@ -44,7 +44,7 @@
<Input :value="scope.row.describeDetail" @change.native="_inputChange($event.target.value,scope.row)"></Input>
</div>
<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>
</template>
<template slot-scope="scope">
......@@ -132,7 +132,8 @@ export default {
{ title: '试样编号', key: 'sampleCode', width: 100, fixed: 'left' },
{ title: '试样深度', key: 'sampleDepth', 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: '土质描述详情',
......@@ -186,7 +187,7 @@ export default {
remark: info.remark
})
if (result) {
this._resultChange('修改成功')
// this._resultChange('修改成功')
}
},
......
<template>
<div>
<Modal v-model="showModal" width="980" class="modal-footer-none">
<Modal v-model="showModal" width="1180" class="modal-footer-none">
<p slot="header">
{{ modalTitle }}
</p>
......@@ -9,13 +9,13 @@
<Row>
<!--查询-->
<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>
<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 class="search-btn">
<Button @click="_page" type="primary">
<Button type="primary" @click="_page">
搜索
</Button>
</Form-item>
......@@ -23,33 +23,31 @@
</Col>
<!--操作-->
<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 span="24">
<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
v-for="item in pageColumns"
:key="item.key"
:field="item.key"
:title="item.title"
:width="item.width?item.width:200"
:fixed="item.fixed?item.fixed:undefined" sortable>
<template slot-scope="scope">
<div v-if="item.detail">
<a @click.stop="_detailModal(scope.row)">{{ scope.row[item.key] }}</a>
</div>
<div v-else-if="item.status">
{{ scope.row[item.key].display }}
</div>
<div v-else-if="item.date">
{{ scope.row[item.key]?$dateformat(scope.row[item.key],'yyyy-mm-dd'):'' }}
</div>
<div v-else>
{{ scope.row[item.key] }}
</div>
</template>
:fixed="item.fixed?item.fixed:undefined"
:edit-render="item.editCell?{autofocus: 'input'}:null" sortable>
<template slot-scope="scope">
<div v-if="item.key==='describeDetail'" @click.stop="_handleRow(scope)">
<Input :value="scope.row.describeDetail" @change.native="_inputChange($event.target.value,scope.row)"></Input>
</div>
<div v-else-if="item.key==='remark'" @click.stop="_handleRow(scope)">
<el-input v-model="scope.row.remark" @change="_remarkChange(scope.row)"></el-input>
</div>
<div v-else>
{{ scope.row[item.key] }}
</div>
</template>
</vxe-table-column>
</PTVXETableHeight>
</Col>
......@@ -87,6 +85,11 @@ export default {
type: 'success',
id: 'ZBC',
name: '打印标签'
},
{
type: 'success',
id: '',
name: '批量填写土质描述详情'
}
],
itemList: [],
......@@ -117,11 +120,29 @@ export default {
selectData: {},
getPage: {},
pageColumns: [
{ title: '试样编号', key: 'sampleCode', width: 100, fixed: 'left' },
{
title: '试样编号',
key: 'sampleCode',
width: 120,
fixed: 'left'
},
{ title: '试样深度', key: 'sampleDepth', width: 100 },
{ title: '现场编号', key: 'siteNo', width: 100 },
{ title: '试验项目', key: 'experimentNames', width: 110 },
{ title: '试验项目简写', key: 'experimentShortNames', width: 120 },
{ 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 }
],
sampleId: '',
......@@ -142,15 +163,27 @@ export default {
}
},
methods: {
_inputChange: async function(info) {
_inputChange: async function(info, data) {
this.getPage.records[data.index].describeDetail = info
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,
describeDetail: info.describeDetail
remark: info.remark
})
if (result) {
this._resultChange('修改成功')
// this._resultChange('修改成功')
}
},
_handleRow(data) {
this.currentRow = data.row
this.currentIndex = data.rowIndex
......@@ -212,42 +245,12 @@ export default {
this.currentComponent = componentName
this.$nextTick(function() {
switch (msg) {
case '添加':
this._editModal(false)
break
case '复制历史样品':
this._copyHisSample()
break
case '导入样品':
this._importSample()
break
case '导入检测项目':
this._importItem()
break
case '导入检测项目包':
this._importItemPackage()
break
case '打印标签':
this._printLabel()
break
case '试样制备':
this._samplePre()
break
case '批量填写土质描述详情':
this._writeDetail(this.selectIds)
break
case '复制历史样品检测项目':
this._copyHisItem()
break
case '删除':
this._deleteSelected()
break
case '导出':
this._exportSample()
break
case '添加模拟样品':
this._editImitateModal(false)
break
case 'search':
this.searchOpen = !this.searchOpen
break
......
......@@ -61,16 +61,14 @@ import SoilSampleManage from '../SoilSampleManage'
import global from '../../../api/config'
import SamplePreparationEdit from './SamplePreparationEdit'
import SoilSampleItemManageEdit from './SoilSampleItemManageEdit'
import SoilEntrustItemNum from './SoilItemNum'
export default {
components: {
// eslint-disable-next-line vue/no-unused-components
Operation,
// eslint-disable-next-line vue/no-unused-components
SamplePreparationEdit,
// eslint-disable-next-line vue/no-unused-components
SoilSampleManage,
// eslint-disable-next-line vue/no-unused-components
SoilSampleItemManageEdit
SoilSampleItemManageEdit,
SoilEntrustItemNum
},
data() {
return {
......@@ -111,6 +109,11 @@ export default {
name: '试验项目列表'
},
{
type: 'ios-calculator-outline',
id: '',
name: '项目量统计'
},
{
type: 'ios-download',
id: '',
name: '导出开土制备记录'
......@@ -203,6 +206,9 @@ export default {
case '试验项目列表':
this._itemManage(data.id)
break
case '项目量统计':
this._itemNumManage(data.id)
break
case '导出开土制备记录':
this._exportPrepare(data.id)
break
......@@ -369,7 +375,12 @@ export default {
})
// this.$refs.itemManageModal._openByEntrustId(data)
},
_itemNumManage(data) {
this.currentComponent = 'SoilEntrustItemNum'
this.$nextTick(() => {
this.$refs.refModal._open(data)
})
},
_uploadPhoto(id) {
// 上传照片文件
this.currentComponent = 'PhotoManage'
......
......@@ -6,24 +6,24 @@
<Row>
<!--查询-->
<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>
<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 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 class="search-btn">
<Button @click="_formSearch" type="primary">搜索</Button>
<Button type="primary" @click="_formSearch">搜索</Button>
</Form-item>
</Form>
</Col>
<!--操作-->
<Col span="24">
<btn-list :msg="btn" :open="searchOpen" :show-search-btn="true" @on-result-change="_btnClick"
class="contHide"></btn-list>
<btn-list :msg="btn" :open="searchOpen" :show-search-btn="true" class="contHide"
@on-result-change="_btnClick"></btn-list>
</Col>
<!--表格-->
<Col span="24">
......@@ -49,13 +49,8 @@
</Row>
</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>
<!-- eslint-disable-next-line vue/require-component-is -->
<component ref="refModal" :is="currentComponent" @on-result-change="_componentResult"></component>
<component :is="currentComponent" ref="refModal" @on-result-change="_componentResult"></component>
</keep-alive>
</div>
</template>
......@@ -64,9 +59,10 @@ import { soilAptitude, soilEntrust } from '../../../api'
import MeterEntrustRecord from '../../../components/operation/Operation'
import SoilSampleManageHis from '../SoilSampleManageHis'
import global from '../../../api/config'
import SoilEntrustItemNum from './SoilItemNum'
export default {
// eslint-disable-next-line vue/no-unused-components
components: { SoilSampleManageHis, MeterEntrustRecord },
components: { SoilSampleManageHis, MeterEntrustRecord, SoilEntrustItemNum },
data() {
return {
currentComponent: '',
......@@ -85,6 +81,7 @@ export default {
id: '',
name: '试样列表'
},
{
type: 'ios-camera-outline',
id: '',
......@@ -96,6 +93,11 @@ export default {
name: '导出开土制备记录'
},
{
type: 'ios-calculator-outline',
id: '',
name: '项目量统计'
},
{
type: 'md-cloud',
id: '',
name: '附件'
......@@ -172,6 +174,9 @@ export default {
case '附件':
this._upload(data.id)
break
case '项目量统计':
this._itemNumManage(data.id)
break
case '试样照片':
this._upLoadPhoto(data.id)
break
......@@ -190,6 +195,12 @@ export default {
}
})
},
_itemNumManage(data) {
this.currentComponent = 'SoilEntrustItemNum'
this.$nextTick(() => {
this.$refs.refModal._open(data)
})
},
_exportPrepare(id) {
this.$Modal.confirm({
title: '提示',
......
......@@ -7,7 +7,6 @@
<el-tab-pane label="历史记录" name="his"></el-tab-pane>
</el-tabs>
<keep-alive>
<!-- eslint-disable-next-line vue/require-component-is -->
<component ref="refModal" :is="currentComponent"></component>
</keep-alive>
</div>
......@@ -19,7 +18,6 @@ import MeterSendEntrust from './SamplePreparation'
import MeterSendEntrustHis from './SamplePreparationHis'
export default {
name: 'MeterSendEntrustIndex',
// eslint-disable-next-line vue/no-unused-components
components: { MeterSendEntrust, MeterSendEntrustHis },
data() {
return {
......@@ -47,7 +45,6 @@ export default {
this.$nextTick(() => {
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