Commit bd5e313c by lichengming

修改了分包样品管理分包信息登记

parent fc6730f3
......@@ -17,22 +17,22 @@
<!--</Dropdown>-->
<el-dropdown
@command="_dropDown"
trigger="click"
size="small"
placement="bottom-start"
style="width:100%;"
@command="_dropDown"
>
<Input
v-model="value"
:name="name"
:placeholder="placeholder"
icon="ios-search"
style="width:100%"
:class="{'iview-input-error':showError === ''}"
@on-change="_query"
@on-blur="_inputBlur"
@on-focus="_inputFocus"
icon="ios-search"
style="width:100%"
/>
<el-dropdown-menu slot="dropdown" style="max-height: 200px;overflow: auto;">
<el-dropdown-item v-for="(item,index) in downData" :key="index" :command="item">
......@@ -50,6 +50,7 @@ export default {
showKey: null,
placeholder: null,
downData: null,
value: null,
// 当此值为空时,显示红框
showError: null,
blur: null,
......@@ -58,8 +59,8 @@ export default {
},
data() {
return {
selectObj: {},
value: null
selectObj: {}
// value: null
// isFocus: false
}
},
......
......@@ -6,36 +6,36 @@
<Row>
<!--查询-->
<Col span="24" style="margin-top: 10px">
<Form v-show="searchOpen" id="formId" inline onsubmit="return false" :label-width="90">
<Form id="formId" v-show="searchOpen" :label-width="90" inline onsubmit="return false">
<label class="label-sign"></label>
<Form-item class="search-item" label="实验室名称:">
<Input v-model="formObj.name" name="name" placeholder="请输入实验室名称" clearable @on-enter="_formSearch"/>
<Input v-model="formObj.name" @on-enter="_formSearch" name="name" placeholder="请输入实验室名称" clearable/>
</Form-item>
<Form-item class="search-item" label="资质:">
<Input v-model="formObj.aptitude" name="aptitude" placeholder="请输入资质" clearable @on-enter="_formSearch"/>
<Input v-model="formObj.aptitude" @on-enter="_formSearch" name="aptitude" placeholder="请输入资质" clearable/>
</Form-item>
<Form-item class="search-btn">
<Button type="primary" @click="_formSearch">搜索</Button>
<Button @click="_formSearch" type="primary">搜索</Button>
</Form-item>
</Form>
</Col>
<!--操作-->
<Col span="24">
<btn-list :msg="btn" class="contHide" :open="searchOpen" :show-search-btn="true"
@on-result-change="_btnClick"></btn-list>
<btn-list :msg="btn" :open="searchOpen" :show-search-btn="true" @on-result-change="_btnClick"
class="contHide"></btn-list>
</Col>
<!--表格-->
<Col span="24">
<PTVXETable ref="pageTable" :table-height="tableHeight" :form-id="formId"
:get-page="getPage" :icon-msg="iconMsg" hide-checkbox @on-result-change="_tableResultChange">
:get-page="getPage" :icon-msg="iconMsg" @on-result-change="_tableResultChange" hide-checkbox>
<vxe-table-column
v-for="item in pageColumns"
:key="item.key"
sortable
:field="item.key"
:title="item.title"
:min-width="item.width?item.width:200" :fixed="item.fixed?item.fixed:undefined">
:min-width="item.width?item.width:200"
:fixed="item.fixed?item.fixed:undefined" sortable>
<template slot-scope="scope">
<span>{{scope.row[item.key]}}</span>
</template>
......@@ -176,8 +176,10 @@ export default {
Object.assign(this.formObj, this.$refs.pageTable._searchParams())
console.log('this.formObj', this.formObj)
const result = await meterSubcontractor.page(this.formObj)
console.log('分包请求结果', result)
if (result) {
this.getPage = result
this.$refs.pageTable._hideLoading()
}
},
_formSearch() {
......
<template>
<!--仓库-->
<Modal v-model="showModal" width="1000" class="modal-footer-none">
<p slot="header">实验室列表</p>
<Row>
<Col span="24">
<Form :id="formId" :label-width="90" inline onsubmit="return false">
<label class="label-sign"></label>
<Form-item label="实验室名称:">
<Input @on-enter="_formSearch" v-model="subcontractorName" name="subcontractorName" placeholder="请输入实验室名称"
style="width: 200px;"
clearable/>
</Form-item>
<Form-item class="search-btn">
<Button @click="_formSearch" type="primary">搜索</Button>
</Form-item>
</Form>
</Col>
<Col span="24">
<PTVXETable ref="pageTable" :tableHeight="400"
@on-result-change="_tableResultChange" :getPage="getPage" hide-checkbox>
<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">{{$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>
</Modal>
</template>
<script>
/**
* 选择实验室
*/
import { meterSubcontractor } from '../../../api'
export default {
data() {
return {
showModal: false,
formId: '',
selectNames: '',
selectIds: '',
getPage: {},
pageColumns: [
{ title: '实验室名称', key: 'name', width: 160 },
{ title: '资质', key: 'aptitude', width: 160 },
{ title: '检测项目', key: 'itemName' },
{ title: '报价', key: 'price', width: 160 }
],
voList: [],
subcontractorName: ''
}
},
methods: {
_open(voList, formId) {
this.formId = formId
this.voList = voList
this.showModal = true
this.subcontractorName = ''
this.$nextTick(() => {
this._page()
})
},
_formSearch() {
this.$refs.pageTable._pageChange(1)
},
_page: async function() {
const data = {}
if (this.voList && this.voList.length) {
data.voList = this.voList
}
// this.$refs.pageTable._page(
// this.formId,
// 'FoodSubcontracter/getLabByAptitude',
// data
// )
const result = await meterSubcontractor.page(data)
console.log('实验室名称', result)
if (result) {
this.getPage = result
// console.log(result.records)
// this.labList = result.records
// console.log(this.labList)
}
},
_tableResultChange(msg, data) {
switch (msg) {
case 'page':
this.getPage = this.$store.state.FoodSubcontracter.page
break
case 'dbSelect':
this.$emit('on-result-change', data)
this.showModal = false
break
case 'changeSize':
this._page()
break
}
}
}
}
</script>
<template>
<div>
<Modal v-model="showModal" :mask-closable="false" width="700">
<p slot="header">分包信息</p>
<div>
<Form id="batch-edit-form" ref="formObj" :model="formObj" :rules="ruleValidate" :label-width="90">
<Form-item label="分包价格:" prop="price">
<InputNumber :min="0" :step="1" v-model.number="formObj.price"
name="price" style="width:100%" placeholder="留白默认所选分包商对应的检测项目报价">
</InputNumber>
</Form-item>
<Form-item label="分包实验室:" prop="subcontractorName">
<div style="display: flex">
<AutoCompletes :value="formObj.subcontractorName" :downData="labList" @on-result-change="_labChange"
name="subcontractorName"
show-key="name" placeholder="请输入或选择分包实验室" style="width: 94%"></AutoCompletes>
<Icon @click="_labSel" type="ios-arrow-forward" size="24" color="#00a0e9" style="margin-top: 5px;margin-left: 5px"/>
</div>
<input v-model="formObj.subcontractorId" type="hidden" name="subcontractorId"/>
</Form-item>
<Form-item label="分包原因" prop="epibolyReason">
<Input :rows="3" v-model="formObj.epibolyReason" type="textarea"
name="epibolyReason"
placeholder="请输入分包原因"/>
</Form-item>
</Form>
</div>
<div slot="footer">
<ModalFooter ref="footerModal" @on-result-change="_footerResult" :footer="footerList"></ModalFooter>
</div>
</Modal>
<!--选择实验室-->
<EditLabSelect ref="labModal" @on-result-change="_labResult"></EditLabSelect>
</div>
</template>
<script>
import ModalFooter from '../../../components/base/modalFooter'
import AutoCompletes from '../../../components/base/AutoCompletes'
import { meterSubcontractor } from '../../../api'
import EditLabSelect from './EditLabSelect'
/**
* 添加编辑分包信息
*/
const defVal = {
price: '',
subcontractorId: 0,
subcontractorName: '',
epibolyReason: ''
// page: 1,
// rows: 50
}
export default {
components: {
EditLabSelect,
ModalFooter,
AutoCompletes
},
data() {
return {
ids: [],
selectData: [],
formObj: defVal,
ruleValidate: {
// price: [{required: true, message: '分包价不能为空', trigger: 'blur', type: 'number'}],
},
showModal: false,
footerList: [
{ id: '', name: '取消', type: '' },
{ id: '', name: '保存', type: 'primary' }
],
labList: []
}
},
methods: {
_footerResult(name) {
switch (name) {
case '取消':
this._cancel()
break
case '保存':
this._ok()
break
}
},
_hideLoading() {
this.$refs.footerModal._hideLoading()
},
_ok() {
console.log(this.formObj)
this._hideLoading()
// this.$refs.formObj.validate(valid => {
// if (valid) {
// const data = this.$serialize('batch-edit-form')
// Object.assign(data, { ids: this.ids.join(',') })
// this.$store.dispatch('FoodItem/batchEpiboly', data).then(() => {
// if (this.$store.state.FoodItem.success) {
// this.showModal = false
// this.$Message.success('保存成功!')
// this.$emit('on-result-change')
// }
// this._hideLoading()
// })
// } else {
// this._hideLoading()
// this.$Message.error('表单验证失败!')
// }
// })
},
_cancel() {
this.showModal = false
},
_open(ids, selectData) {
this._getLab()
this._hideLoading()
this.$refs.formObj.resetFields()
this.formObj.subcontractorId = ''
this.showModal = true
this.ids = ids
this.selectData = selectData
},
_labChange(msg, data) {
switch (msg) {
case 'select':
this.formObj.subcontractorName = data.name
this.formObj.subcontractorId = data.id
break
case 'query':
this.formObj.subcontractorName = data.name
this._getLab(data.name)
break
}
},
_getLab: async function(name) {
const data = {}
if (name) {
data.name = name
}
// this.$store.dispatch('FoodSubcontracter/getLab', data).then(() => {
// this.labList = this.$store.state.FoodSubcontracter.list
// })
// Object.assign(this.formObj, this.$refs.pageTable._searchParams())
// console.log('this.formObj', this.formObj)
const result = await meterSubcontractor.page(data)
console.log('实验室名称', result)
if (result) {
console.log(result.records)
this.labList = result.records
console.log(this.labList)
}
},
_labSel() {
const voList = []
for (let i = 0; i < this.selectData.length; i++) {
voList.push({
itemName: this.selectData[i].itemName,
testBasis: this.selectData[i].testBasis
})
}
this.$refs.labModal._open(voList, 'batch-lab-form')
},
_labResult(result) {
this.formObj.subcontractorId = result.id
this.formObj.subcontractorName = result.name
}
}
}
</script>
......@@ -57,12 +57,15 @@
</Row>
</div>
</Modal>
<MeterSubSampleEdit ref="batchEditModal" @on-result-change="_page"></MeterSubSampleEdit>
</div>
</template>
<script>
import { meterSample } from '../../../api'
import MeterSubSampleEdit from './MeterSubSampleEdit'
export default {
components: {
MeterSubSampleEdit
// FoodSampleGovernDetail,
// CopyModal,
// FoodSampleGovernLYEdits
......@@ -161,6 +164,9 @@ export default {
this.currentComponent = componentName
this.$nextTick(function() {
switch (msg) {
case '分包信息登记':
this._batchEpiboly()
break
case '添加':
this._editModal(false)
break
......@@ -179,6 +185,13 @@ export default {
}
})
},
_batchEpiboly() {
if (this.selectIds.length === 0) {
this.$Message.warning('请选择一条或多条数据!')
} else {
this.$refs.batchEditModal._open(this.selectIds, this.selectData)
}
},
_iconClick(res, data, componentName) {
this.currentComponent = componentName
this.$nextTick(function() {
......
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