Commit fc044299 by lichengming

修改了管理样品查看原始记录和查看指标按钮

parent 3a55afe6
...@@ -55,5 +55,11 @@ export default { ...@@ -55,5 +55,11 @@ export default {
.post('soil/v1/original_record/update_original_record', data) .post('soil/v1/original_record/update_original_record', data)
.then(res => res), .then(res => res),
pageOriginalExp: data => pageOriginalExp: data =>
http.post('soil/v1/experiment/page_original_exp', data).then(res => res) http.post('soil/v1/experiment/page_original_exp', data).then(res => res),
// 查看指标分页列表
itemPage: data => http.post('soil/v1/item/page', data).then(res => res),
itemSave: data => http.post('soil/v1/item/', data).then(res => res),
itemEdit: data =>
http.put('soil/v1/item/' + data.id, data.obj).then(res => res),
itemGetById: data => http.get('soil/v1/item/' + data).then(res => res)
} }
<template>
<div>
<Modal v-model="showModal" width="100" class="modal-footer-none full-screen">
<div slot="header">{{modalTitle}}</div>
<div>
<Form id="index-right-form" :label-width="80" inline onsubmit="return false">
<label class="label-sign"></label>
<Form-item class="search-item" label="指标名称:">
<Input v-model="formObj.name" @on-enter="_formSearch" placeholder="请输入类别" clearable/>
</Form-item>
<Form-item class="search-btn">
<Button @click="_formSearch" type="primary">搜索</Button>
</Form-item>
</Form>
<btn-list :msg="btn" @on-result-change="_btnClick" class="contHide" style="margin-bottom: 10px;"/>
<PTVXETable ref="pageTable" :tableHeight="tableHeight"
@on-result-change="_tableResultChange" :getPage="getPage" :iconMsg="iconMsg">
<vxe-table-column
:field="item.key"
:title="item.title"
:min-width="item.width?item.width:200"
:fixed="item.fixed?item.fixed:undefined"
v-for="item in pageColumns" :key="item.key">
<template slot-scope="scope">
<span v-if="item.key==='defaulted'">{{scope.row[item.key]?'是':'否'}}</span>
<span v-else>{{scope.row[item.key]}}</span>
</template>
</vxe-table-column>
</PTVXETable>
</div>
</Modal>
<IndexManageEdit ref="indexEdit" @on-result-change="_page"></IndexManageEdit>
</div>
</template>
<script>
import { soilAptitude, soilTest } from '../../../api'
import IndexManageEdit from './IndexManageEdit'
export default {
components: { IndexManageEdit },
data() {
return {
id: '',
modalTitle: '',
showModal: false,
btn: [
{ type: 'success', id: '', name: '添加指标' },
{ type: 'error', id: '', name: '删除' }
],
tableHeight: document.documentElement.clientHeight - 180,
pageColumns: [
{ title: '试验指标名称', key: 'name' },
{ title: '试验指标大类', key: 'mainType', width: 120 },
{ title: '试验指标小类', key: 'smallType', width: 120 },
{ title: '状态', key: 'status', width: 120 },
{ title: '检测值', key: 'testValue', width: 120 },
{ title: '单位', key: 'unit', width: 120 }
],
getPage: {},
iconMsg: [{ type: 'md-create', id: '', name: '编辑' }],
selectIds: [],
formObj: {
name: ''
},
// 资质信息
aptitudeItemInfo: {}
}
},
methods: {
_open(data) {
console.log(data)
this.aptitudeItemInfo = data
this.formObj = this.$resetFields(this.formObj)
this.id = data.id
this.modalTitle = data.name + ' 指标管理'
this.showModal = true
this._page()
},
_page: async function() {
Object.assign(this.formObj, this.$refs.pageTable._searchParams())
this.formObj.experimentId = this.id
const result = await soilTest.itemPage(this.$serializeForm(this.formObj))
if (result) {
console.log(result)
this.getPage = result
this.$refs.pageTable._hideLoading()
}
},
_formSearch() {
this.$refs.pageTable._pageChange(1)
},
_tableResultChange(msg, data) {
switch (msg) {
case 'page':
break
case 'selectIds':
this.selectIds = data
break
case 'iconClick':
this._iconClick(data.name, data.rowData)
break
case 'changeSize':
this._page()
break
}
},
_iconClick(res, data) {
switch (res) {
case '编辑':
this._editModal(true, data)
break
}
},
_editModal(edit, data) {
if (edit) {
this._getById(data)
} else {
this.$refs.indexEdit._open(this.id, '')
}
},
_getById: async function(data) {
const result = await soilTest.itemGetById(data.id)
console.log(result)
if (result) {
this.$refs.indexEdit._open('', result)
}
},
_btnClick(msg) {
switch (msg) {
case '添加指标':
this._editModal(false)
break
case '删除':
this._deleteByIds()
break
}
},
_deleteByIds() {
if (this.selectIds.length === 0) {
// this.$msgTip('warning')
this.$message.warning('请至少选择一条记录')
} else {
this.$Modal.confirm({
title: '提示',
content: '确定删除 ' + this.selectIds.length + ' 条记录?',
onOk: () => {
this._delOk(this.selectIds)
}
})
}
},
_delOk: async function(ids) {
const result = await soilAptitude.expItemDeleteByIds(ids)
if (result) {
this.$message.success('删除成功')
this._page()
}
}
}
}
</script>
<template>
<div>
<Modal v-model="showModal" :mask-closable="false" @on-visible-change="_visibleChange" width="900">
<p slot="header">{{modalTitle}}</p>
<div>
<Form ref="formObj" :id="formId" :model="formObj" :rules="ruleValidate" :label-width="100" inline>
<div>
<Form-item label="试验指标名称" prop="name" class="width-48">
<Input v-model="formObj.name" name="name" placeholder="请输入试验名称"/>
</Form-item>
<Form-item label="试验指标大类" prop="mainType" class="width-48">
<Input v-model="formObj.mainType" name="mainType"
placeholder="请输入试验指标大类"/>
</Form-item>
<Form-item label="试验指标小类" prop="smallType" class="width-48">
<Input v-model="formObj.smallType" name="smallType" placeholder="请输入试验指标小类"/>
</Form-item>
<Form-item label="状态" prop="status" class="width-48">
<Input v-model="formObj.status" name="status"
placeholder="请输入状态"/>
</Form-item>
<Form-item label="检测值" prop="testValue" class="width-48">
<Input v-model="formObj.testValue" name="testValue"
placeholder="请输入检测值"/>
</Form-item>
<Form-item label="单位" prop="unit" class="width-48">
<Input v-model="formObj.unit"
name="unit" placeholder="请输入单位"/>
</Form-item>
</div>
</Form>
</div>
<div slot="footer">
<modal-footer ref="footerModal" @on-result-change="_footerResult" :footer="footerList"></modal-footer>
</div>
</Modal>
</div>
</template>
<script>
/**
* 添加编辑环境资质项目表
*/
import { soilTest } from '../../../api'
export default {
components: {},
data() {
return {
activeName: '',
hideUserSel: true,
id: '',
modalTitle: '',
expId: '',
formObj: {
name: '',
unit: '',
status: '',
mainType: '',
smallType: '',
testValue: ''
},
ruleValidate: {
name: [{ required: true, message: '指标名称不能为空', trigger: 'blur' }]
},
showModal: false,
footerList: [
{ name: '取消', type: '' },
{ name: '保存', type: 'primary' }
],
microbedList: [{ value: 0, name: '否' }, { value: 1, name: '是' }],
// 检测依据
testBasisData: [],
// 类别下拉数组
typeData: [],
// 检测科室
groupData: [],
groupName: '',
// 主检人
userData: [],
// 单位
unitData: [],
aptitudeData: [],
aptitude: '',
// testBasisName: '',
computeTypeList: [],
tester: '',
marksList: [],
detectionTypeList: [],
testItemData: [],
formId: ''
}
},
mounted() {
// 检测科室
// this._getUserGroup()
// 检测依据
// this._getTestBasisList()
// 资质
// this._getAptitudeList()
// this._getType()
},
methods: {
// 字典
_dicSearch() {
this.$store.dispatch('LmsBaseDict/getItem', '食品检出类别').then(() => {
const result = this.$store.state.LmsBaseDict.item
this.detectionTypeList = result
if (this.$string(this.id).isEmpty()) {
// 添加界面默认第一个
this.formObj.detectionType = result.length > 0 ? result[0].name : ''
}
})
},
_testBasisChange(msg, data) {
switch (msg) {
case 'select':
this.formObj.stdId = data.id
this.formObj.testBasis = data.stdNum
this.formObj.testBasisName = data.name
this.formObj.testMethod = data.stdNum
this.$refs.formObj.validateField('testBasis')
break
case 'query':
this.formObj.stdId = ''
this.formObj.testMethod = ''
this.formObj.testBasis = data.stdNum
this.formObj.testBasisName = ''
this._getTestBasisList(data)
break
case 'blur':
if (this.formObj.stdId === '') {
this.formObj.testBasis = ''
this.formObj.testMethod = ''
this._getTestBasisList()
}
this.$refs.formObj.validateField('testBasis')
}
},
_selectJudgeType(data) {
this.formObj.microbed = data
},
_footerResult(name) {
switch (name) {
case '取消':
this._cancel()
break
case '保存':
this._ok()
break
case '填写说明':
this.$refs.introduction._open()
this._hideLoading()
break
}
},
_hideLoading() {
this.$refs.footerModal._hideLoading()
},
_open(id, formObj) {
this.formId = 'edit-form'
this._hideLoading()
this.$refs.formObj.resetFields()
if (this.$string(formObj).isEmpty()) {
this.id = ''
this.expId = id
this.modalTitle = '添加试验指标'
} else {
this.hideUserSel = true
this.id = formObj.id
this.formObj = formObj
this.modalTitle = '编辑试验指标'
}
this.showModal = true
},
// 获取检测项目
_getItemList(value) {
const data = {}
if (value) {
Object.assign(data, { name: value })
}
this.$store.dispatch('FoodAptitudeItem/getTestItem', data).then(() => {
this.testItemData = this.$store.state.FoodAptitudeItem.list
})
},
// 检测项目结果
_testItemChange(msg, data) {
switch (msg) {
case 'select':
this.formObj.name = data
this.$refs.formObj.validateField('name')
this._changeMicrobed()
break
case 'query':
this.formObj.name = data
this._getItemList(data)
break
case 'blur':
this._changeMicrobed()
break
}
},
_changeMicrobed() {
// 新增或者导入新增资质时 如果检测项目名称带‘菌’字,则是否微生物默认为‘是’
if (this.id === '') {
if (this.formObj.name.indexOf('菌') > -1) {
this.$set(this.formObj, 'microbed', 1)
} else {
this.$set(this.formObj, 'microbed', 0)
}
}
},
_clearMarks() {
this.marksList = []
},
_getMarks() {
if (this.formObj.computeMark) {
this.$store
.dispatch('AptitudeFood/getMarks', {
computeMark: this.formObj.computeMark
})
.then(() => {
if (this.$store.state.AptitudeFood.model) {
this.marksList = this.$store.state.AptitudeFood.model
}
})
}
},
_getType() {
this.$store
.dispatch('LmsEnum/getByType', 'ItemCalculateType')
.then(() => {
this.computeTypeList = this.$store.state.LmsEnum.model
})
},
// 资质
_getAptitudeList() {
this.$store.dispatch('LmsBaseDict/getItem', '所需资质').then(() => {
this.aptitudeData = this.$store.state.LmsBaseDict.item
})
},
// 主检人&检测科室
_groupChange(data) {
if (data) {
this.groupName = data.label
this.formObj.groupId = data.value
this.formObj.tester = ''
this.formObj.testerId = ''
this._getUserList(data.value)
}
},
_userChange(data) {
if (data) {
this.formObj.testerId = data.value
this.formObj.tester = data.label
}
},
_getUserList(groupId) {
const data = { rows: 500 }
if (groupId) {
Object.assign(data, { groupId: groupId })
}
this.$store.dispatch('LmsUserGroup/getUserByGroupId', data).then(() => {
this.userData = this.$store.state.LmsUserGroup.userPage.records
})
},
_getUserGroup() {
this.$store.dispatch('LmsUserGroup/list').then(() => {
this.groupData = this.$store.state.LmsUserGroup.list
})
},
// 单位
_unitChange(msg, data) {
switch (msg) {
case 'select':
this.formObj.unit = data
break
case 'query':
this._getUnitList(data)
break
}
},
_getUnitList(data) {
this.unitData = []
if (data) {
this.$store
.dispatch('AptitudeFood/historyUnit', { unit: data })
.then(() => {
this.unitData = this.$store.state.AptitudeFood.list
})
} else {
this.$store.dispatch('AptitudeFood/historyUnit').then(() => {
this.unitData = this.$store.state.AptitudeFood.list
})
}
},
// 检测依据
_getTestBasisList(data) {
const obj = { classify: 1 }
if (data) {
obj.stdNum = data.stdNum
}
this.$store.dispatch('StandardInfo/page', obj).then(() => {
this.testBasisData = this.$store.state.StandardInfo.page.records
})
},
// 获取表数据
_resultChange(msg) {
this.showModal = false
this.$refs.footerModal._hideLoading()
this.$Message.success(msg)
this.$emit('on-result-change')
this.$refs.footerModal._hideLoading()
},
_ok() {
this.$refs.formObj.validate(valid => {
if (valid) {
const data = this.$serialize('edit-form')
if (this.$string(this.id).isEmpty()) {
data.experimentId = this.expId
// 添加
this._save(data)
} else {
// 编辑
this._edit({ id: this.formObj.id, obj: data })
}
} else {
this.$refs.footerModal._hideLoading()
this.$Message.error('表单验证失败!')
}
})
},
_save: async function(data) {
console.log(data)
const result = await soilTest.itemSave(data)
console.log(result)
if (result) {
this._resultChange('添加成功!')
}
},
_edit: async function(data) {
const result = await soilTest.itemEdit(data)
if (result) {
this._resultChange('编辑成功!')
}
},
_cancel() {
this.showModal = false
this._hideLoading()
},
// 切换tab
_changeTabs(tab, event) {
if (tab.name === 'testStep') {
this.$refs.testStepByAptitude._open(
this.formObj.stepId,
this.formObj.id
)
}
},
_visibleChange(data) {
if (!data && this.$showBtn('food-aptitude-item-step-edit')) {
this.$emit('on-result-change')
this.$refs.testStepByAptitude._clear()
}
}
}
}
</script>
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
<!-- 表格 --> <!-- 表格 -->
<Col span="24"> <Col span="24">
<PTVXETable ref="pageTable" :pageColumns="pageColumns" :tableHeight="tableHeight" <PTVXETable ref="pageTable" :pageColumns="pageColumns" :tableHeight="tableHeight"
@on-result-change="_tableResultChange" :getPage="getPage" :table-name="tableName" :rows="100" is-task select-data> @on-result-change="_tableResultChange" :getPage="getPage" :icon-msg="iconMsg" :table-name="tableName" :rows="100" is-task select-data>
<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"
...@@ -49,6 +49,7 @@ ...@@ -49,6 +49,7 @@
<AssignPerson ref="personModal" @on-result-change="_assignBackData"></AssignPerson> <AssignPerson ref="personModal" @on-result-change="_assignBackData"></AssignPerson>
<SelectOriTempRecord ref="recordModal" @on-result-change="_page"></SelectOriTempRecord> <SelectOriTempRecord ref="recordModal" @on-result-change="_page"></SelectOriTempRecord>
<OriginalRecordEdit ref="editModal"></OriginalRecordEdit> <OriginalRecordEdit ref="editModal"></OriginalRecordEdit>
<IndexManage ref="indexModal" @on-result-change="_page"></IndexManage>
</div> </div>
</template> </template>
<script> <script>
...@@ -57,8 +58,14 @@ import { soilTest } from '../../../../api' ...@@ -57,8 +58,14 @@ import { soilTest } from '../../../../api'
import AssignPerson from '../../../../components/user-info-single/AssignPerson' import AssignPerson from '../../../../components/user-info-single/AssignPerson'
import SelectOriTempRecord from '../SelectOriTempRecord' import SelectOriTempRecord from '../SelectOriTempRecord'
import OriginalRecordEdit from '../OriginalRecordEdit' import OriginalRecordEdit from '../OriginalRecordEdit'
import IndexManage from '../IndexManage'
export default { export default {
components: { AssignPerson, SelectOriTempRecord, OriginalRecordEdit }, components: {
AssignPerson,
SelectOriTempRecord,
OriginalRecordEdit,
IndexManage
},
data() { data() {
return { return {
// 定义表格名称----英文 // 定义表格名称----英文
...@@ -104,7 +111,10 @@ export default { ...@@ -104,7 +111,10 @@ export default {
}, },
{ type: '', id: 'food-task-assign-maintain-info', name: '信息维护' } { type: '', id: 'food-task-assign-maintain-info', name: '信息维护' }
], ],
iconMsg: [{ type: 'md-create', id: '', name: '编辑原始记录' }], iconMsg: [
{ type: 'ios-book', id: '', name: '查看原始记录' },
{ type: 'md-apps', id: '', name: '查看指标' }
],
getPage: {}, getPage: {},
pageColumns: [ pageColumns: [
{ title: '检测项目', key: 'name', width: 120, fixed: 'left' }, { title: '检测项目', key: 'name', width: 120, fixed: 'left' },
...@@ -113,6 +123,7 @@ export default { ...@@ -113,6 +123,7 @@ export default {
{ title: '试样包装类型', key: 'samplePack', width: 180 }, { title: '试样包装类型', key: 'samplePack', width: 180 },
{ title: '大类', key: 'mainType', width: 140 }, { title: '大类', key: 'mainType', width: 140 },
{ title: '小类', key: 'smallType', width: 140 }, { title: '小类', key: 'smallType', width: 140 },
{ title: '原始记录是否填写', key: 'recorded', width: 140 },
{ title: '检测方法', key: 'testMethod', width: 260 }, { title: '检测方法', key: 'testMethod', width: 260 },
{ title: '检测依据', key: 'testBasis', width: 140 }, { title: '检测依据', key: 'testBasis', width: 140 },
{ title: '检测科室', key: 'groupName', width: 150 } { title: '检测科室', key: 'groupName', width: 150 }
...@@ -148,18 +159,40 @@ export default { ...@@ -148,18 +159,40 @@ export default {
_iconClick(res, data, currentComponent) { _iconClick(res, data, currentComponent) {
this.$nextTick(() => { this.$nextTick(() => {
switch (res) { switch (res) {
case '编辑原始记录': case '查看原始记录':
this._recordEdit(data) console.log(data)
this._viewRecord('1309434759937146882')
break
case '查看指标':
this._indexManage(data)
break break
} }
}) })
}, },
_recordEdit(data) { _indexManage(data) {
console.log(data) this.$refs.indexModal._open(data)
// this.$refs.editModal._openWithType( },
// data.originalRecordId, _viewRecord(originalRecordId) {
// 'ENVTESTAUDITEDIT' // layx.iframe('labRecordWriteOriView', '原始记录预览', Global.recordURL + '/print/v1/form/' + originalRecordId, {
// ) // eslint-disable-next-line no-undef
layx.iframe(
'labRecordWriteOriView',
'原始记录预览',
Global.recordURL +
'/print/v1/form/' +
originalRecordId +
'?type=ENVTESTMAKE',
{
event: {
onload: {
after: function(layxWindow, winform) {
// eslint-disable-next-line no-undef
layx.max(winform.id)
}
}
}
}
)
}, },
// 获取column // 获取column
_getColumn() { _getColumn() {
......
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