Commit 4bd71917 by wangweidong

Merge remote-tracking branch 'origin/dev' into dev

parents b397bc68 97d919c8
<template>
<div>
<Modal v-model="showModal" width="900" class="modal-footer-none zIndex-1100">
<p slot="header">操作日志</p>
<div>
<Row>
<!--查询-->
<Col span="24">
<Form id="search-contract-record" :label-width="70" inline onsubmit="return false">
<label class="label-sign"></label>
<Form-item label="操作阶段:">
<Input v-model="formObj.origin" @on-enter="_search" placeholder="请输入操作阶段"
style="width: 200px" clearable/>
</Form-item>
<Form-item class="search-btn">
<Button @click="_search" type="primary">搜索</Button>
</Form-item>
</Form>
</Col>
<!-- 表格 -->
<Col span="24">
<PTVXETable ref="pageTable" :tableHeight="tableHeight"
@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">
<template slot-scope="scope">
<span v-if="item.key==='type'">
{{scope.row[item.key] === 0 ? '流转' : scope.row[item.key] === 1 ? '退回': scope.row[item.key] === 2 ?'更新' :
scope.row[item.key] === 3 ? '转发':'文件'}}
</span>
<span v-else-if="item.key==='ctime'">{{scope.row[item.key]?$dateformat(scope.row[item.key],'yyyy-mm-dd HH:MM:ss'):''}}</span>
<span v-else>{{scope.row[item.key]}}</span>
</template>
</vxe-table-column>
</PTVXETable>
</Col>
</Row>
</div>
</Modal>
</div>
</template>
<script>
/**
* 操作日志-委托
*/
import { meterEntrust } from '../../api'
export default {
data() {
return {
showModal: false,
getPage: {},
pageColumns: [
{ title: '操作类型', key: 'type', width: 80 },
{ title: '操作阶段', key: 'origin', width: 120 },
{ title: '目标阶段', key: 'target', width: 120 },
{ title: '操作人', key: 'operator', width: 80 },
{ title: '操作时间', key: 'ctime', width: 150 },
{ title: '操作原因', key: 'remark' },
{ title: '责任人', key: 'liable', width: 80 }
],
formObj: {
origin: '',
contractId: ''
}
}
},
computed: {
tableHeight: function() {
return this.$tableHeight('tableModal')
}
},
methods: {
_open(contractId) {
this.showModal = true
this.formObj.contractId = contractId
this.formObj.origin = ''
this._page()
},
_page: async function() {
console.log('要传的参数')
console.log(this.formObj)
const result = await meterEntrust.pageOutTaskOperation(this.formObj)
console.log(result)
if (result) {
this.getPage = result
}
// this.$refs.pageTable._page(
// 'search-contract-record',
// 'FoodContractRecord/page',
// this.$serializeFormSearch(this.formObj)
// )
},
_tableResultChange(msg, data) {
switch (msg) {
case 'page':
this.getPage = this.$store.state.FoodContractRecord.page
break
case 'changeSize':
this._page()
break
}
},
_search() {
this.$refs.pageTable._pageChange(1)
}
}
}
</script>
......@@ -152,6 +152,7 @@ export default {
this.getPage = result
console.log(123456789)
console.log(this.getPage)
this.$refs.pageTable._hideLoading()
}
},
_formSearch() {
......
......@@ -6,29 +6,29 @@
<Row>
<!--查询-->
<Col span="24" style="margin-top: 10px">
<Form v-show="searchOpen" id="formId" :label-width="90" inline onsubmit="return false">
<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" :open="searchOpen" :show-search-btn="true" class="contHide"
@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" :loading="true"
:get-page="getPage" :icon-msg="iconMsg" select-data @on-result-change="_tableResultChange">
:get-page="getPage" :icon-msg="iconMsg" @on-result-change="_tableResultChange" select-data>
<vxe-table-column
v-for="item in pageColumns"
:key="item.key"
......@@ -46,13 +46,15 @@
</div>
</div>
<Reason ref="reasonModal" @on-result-change="_reasonResult"></Reason>
<operationModal ref="operationModal"></operationModal>
</div>
</template>
<script>
import { meterSample } from '../../../api'
import Reason from '../../../components/base/Reason'
import operationModal from '../../../components/operation/Operation'
export default {
components: { Reason },
components: { Reason, operationModal },
data() {
return {
currentComponent: '',
......@@ -251,7 +253,7 @@ export default {
}
},
_record(id) {
this.$refs.refModal._open(id)
this.$refs.operationModal._open(id)
},
_tableResultChange(msg, data) {
switch (msg) {
......
......@@ -45,12 +45,15 @@
</Row>
</div>
</div>
<operationModal ref="operationModal"></operationModal>
</div>
</template>
<script>
import { meterSample } from '../../../api'
import operationModal from '../../../components/operation/Operation'
export default {
components: {},
components: { operationModal },
data() {
return {
currentComponent: '',
......@@ -204,7 +207,7 @@ export default {
this.$refs.personModal._open(data.id)
},
_record(id) {
this.$refs.refModal._open(id)
this.$refs.operationModal._open(id)
},
_tableResultChange(msg, data) {
switch (msg) {
......
......@@ -48,15 +48,17 @@
<CreateReport ref="CreateReport"></CreateReport>
<CarManage ref="carEdit"></CarManage>
<InstruMentEdit ref="InstruEdit"></InstruMentEdit>
<operationModal ref="operationModal"></operationModal>
</div>
</template>
<script>
import { meterSample } from '../../../api'
import operationModal from '../../../components/operation/Operation'
import CreateReport from './CreateReport'
import CarManage from './CarManage'
import InstruMentEdit from './InstrumentEdit'
export default {
components: { CreateReport, CarManage, InstruMentEdit },
components: { CreateReport, CarManage, InstruMentEdit, operationModal },
data() {
return {
currentComponent: '',
......@@ -263,7 +265,7 @@ export default {
}
},
_record(id) {
this.$refs.refModal._open(id)
this.$refs.operationModal._open(id)
},
_tableResultChange(msg, data) {
switch (msg) {
......
......@@ -47,13 +47,15 @@
</div>
<MeterSubcontractorEdit ref="editSubcontractorModal" @on-result-change="_formSearch"></MeterSubcontractorEdit>
<operationModal ref="operationModal"></operationModal>
</div>
</template>
<script>
import { meterEntrust } from '../../../api'
import MeterSubcontractorEdit from './MeterGoOutTestEdit'
import operationModal from './MeterGoOutOperation'
export default {
components: { MeterSubcontractorEdit },
components: { MeterSubcontractorEdit, operationModal },
data() {
return {
currentComponent: '',
......@@ -182,13 +184,14 @@ export default {
this._deleteByIds([data.id])
break
case '操作日志':
this._record(data.id)
this._record(data)
break
}
})
},
_record(id) {
this.$refs.refModal._open(id)
_record(data) {
console.log(data)
this.$refs.operationModal._open(data.id)
},
_tableResultChange(msg, data) {
switch (msg) {
......
<template>
<div>
<Modal v-model="showModal" width="900" class="modal-footer-none zIndex-1100">
<p slot="header">操作日志</p>
<div>
<Row>
<!--查询-->
<Col span="24">
<Form id="search-contract-record" :label-width="70" inline onsubmit="return false">
<label class="label-sign"></label>
<Form-item label="操作阶段:">
<Input v-model="formObj.origin" @on-enter="_search" placeholder="请输入操作阶段"
style="width: 200px" clearable/>
</Form-item>
<Form-item class="search-btn">
<Button @click="_search" type="primary">搜索</Button>
</Form-item>
</Form>
</Col>
<!-- 表格 -->
<Col span="24">
<PTVXETable ref="pageTable" :tableHeight="tableHeight"
@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">
<template slot-scope="scope">
<span v-if="item.key==='type'">
{{scope.row[item.key] === 0 ? '流转' : scope.row[item.key] === 1 ? '退回': scope.row[item.key] === 2 ?'更新' :
scope.row[item.key] === 3 ? '转发':'文件'}}
</span>
<span v-else-if="item.key==='ctime'">{{scope.row[item.key]?$dateformat(scope.row[item.key],'yyyy-mm-dd HH:MM:ss'):''}}</span>
<span v-else>{{scope.row[item.key]}}</span>
</template>
</vxe-table-column>
</PTVXETable>
</Col>
</Row>
</div>
</Modal>
</div>
</template>
<script>
/**
* 操作日志-委托
*/
import { meterEntrust } from '../../../api'
export default {
data() {
return {
showModal: false,
getPage: {},
pageColumns: [
{ title: '操作类型', key: 'type', width: 80 },
{ title: '操作阶段', key: 'origin', width: 120 },
{ title: '目标阶段', key: 'target', width: 120 },
{ title: '操作人', key: 'operator', width: 80 },
{ title: '操作时间', key: 'ctime', width: 150 },
{ title: '操作原因', key: 'remark' },
{ title: '责任人', key: 'liable', width: 80 }
],
formObj: {
origin: '',
contractId: ''
}
}
},
computed: {
tableHeight: function() {
return this.$tableHeight('tableModal')
}
},
methods: {
_open(contractId) {
this.showModal = true
this.formObj.contractId = contractId
this.formObj.origin = ''
this._page()
},
_page: async function() {
console.log('要传的参数')
console.log(this.formObj)
const result = await meterEntrust.pageOutTaskOperation(this.formObj)
console.log(result)
if (result) {
this.getPage = result
}
// this.$refs.pageTable._page(
// 'search-contract-record',
// 'FoodContractRecord/page',
// this.$serializeFormSearch(this.formObj)
// )
},
_tableResultChange(msg, data) {
switch (msg) {
case 'page':
this.getPage = this.$store.state.FoodContractRecord.page
break
case 'changeSize':
this._page()
break
}
},
_search() {
this.$refs.pageTable._pageChange(1)
}
}
}
</script>
......@@ -6,24 +6,24 @@
<Row>
<!--查询-->
<Col span="24" style="margin-top: 10px">
<Form v-show="searchOpen" id="formId" :label-width="90" inline onsubmit="return false">
<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" :open="searchOpen" :show-search-btn="true" class="contHide"
@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">
......@@ -45,6 +45,7 @@
</Row>
</div>
</div>
<operationModal ref="operationModal"></operationModal>
<SelEquip ref="SelEquip" @on-result-change="_equipSelectBack"></SelEquip>
<CarManage ref="carEdit"></CarManage>
<InstruMentEdit ref="InstruEdit"></InstruMentEdit>
......@@ -55,6 +56,7 @@
<script>
import { meterDevice, meterSample } from '../../../api'
import SelEquip from '../../../components/select-equip/SelEquip'
import operationModal from '../../../components/operation/Operation'
import MeterSubcontractorEdit from './MeterGoOutTestEdit'
import CarManage from './CarManage'
import MeterPersonItemTaskManage from './MeterPersonItemTaskManage'
......@@ -65,7 +67,8 @@ export default {
CarManage,
MeterPersonItemTaskManage,
SelEquip,
InstruMentEdit
InstruMentEdit,
operationModal
},
data() {
return {
......@@ -261,7 +264,7 @@ export default {
},
_record(id) {
this.$refs.refModal._open(id)
this.$refs.operationModal._open(id)
},
_tableResultChange(msg, data) {
switch (msg) {
......
......@@ -6,24 +6,24 @@
<Row>
<!--查询-->
<Col span="24" style="margin-top: 10px">
<Form v-show="searchOpen" id="formId" :label-width="90" inline onsubmit="return false">
<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" :open="searchOpen" :show-search-btn="true" class="contHide"
@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">
......@@ -47,14 +47,16 @@
</div>
<MeterSampleManage ref="meterSampleManageModal" @on-result-change="_componentResult"></MeterSampleManage>
<MeterEntrustDetail ref="meterSampleEdit" @on-result-change="_componentResult"></MeterEntrustDetail>
<Operation ref="operation"></Operation>
</div>
</template>
<script>
import { meterEntrust, meterSubcontractor } from '../../api'
import Operation from '../../components/operation/Operation'
import MeterSampleManage from './MeterSampleManage'
import MeterEntrustDetail from './MeterEntrustDetail'
export default {
components: { MeterSampleManage, MeterEntrustDetail },
components: { MeterSampleManage, MeterEntrustDetail, Operation },
data() {
return {
currentComponent: 'FoodSampleGovern',
......@@ -212,7 +214,7 @@ export default {
}
},
_record(id) {
this.$refs.refModal._open(id)
this.$refs.operation._open(id)
},
_tableResultChange(msg, data) {
switch (msg) {
......
......@@ -45,15 +45,16 @@
</Row>
</div>
</div>
<operationModal ref="operationModal"></operationModal>
<MeterSubcontractorEdit ref="editSubcontractorModal" @on-result-change="_formSearch"></MeterSubcontractorEdit>
</div>
</template>
<script>
import { meterSubcontractor } from '../../../api'
import operationModal from '../../../components/operation/Operation'
import MeterSubcontractorEdit from './MeterSubcontractorEdit'
export default {
components: { MeterSubcontractorEdit },
components: { MeterSubcontractorEdit, operationModal },
data() {
return {
currentComponent: '',
......@@ -157,7 +158,7 @@ export default {
})
},
_record(id) {
this.$refs.refModal._open(id)
this.$refs.operationModal._open(id)
},
_tableResultChange(msg, data) {
switch (msg) {
......
<template>
<div>
<Modal v-model="showModal" width="1200" class="modal-footer-none zIndex-1000">
<p slot="header">历史版本</p>
<Row>
<Col span="24">
<PTVXETable ref="pageTable" :pageColumns="pageColumns" :tableHeight="tableHeight"
@on-result-change="_tableResultChange" :getPage="getPage" :iconMsg="iconMsg" 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">
<span v-if="item.dateTime">{{scope.row[item.key]?$dateformat(scope.row[item.key],'yyyy-mm-dd HH:MM:ss'):''}}</span>
<span v-else>{{scope.row[item.key]}}</span>
</template>
</vxe-table-column>
</PTVXETable>
</Col>
</Row>
</Modal>
</div>
</template>
<script>
/**
* 报告的历史版本
*/
import global from '../../../api/config'
// import { meterSample } from '../../../api'
export default {
data() {
return {
iconMsg: [],
checkOut: [{ type: 'arrow-return-left', id: '', name: '签入' }],
defVal: [
{ type: 'android-image', id: '', name: '预览' },
{ type: 'ios-download', id: '', name: '下载' }
],
pageColumns: [
{ title: '报告编号', key: 'reportSn', width: 180 },
{ title: '变更人', key: 'maker' },
{ title: '变更时间', key: 'ctime', width: 240, dateTime: true },
{ title: '版本', key: 'version' }
],
getPage: {},
reportId: '',
showModal: false
}
},
computed: {
tableHeight: function() {
return this.$tableHeight('tableModal')
}
},
methods: {
_open(reportId, reportType) {
this.showModal = true
this.reportId = reportId
this.iconMsg = []
// 报告编制、报告档案模块调用
if (
reportType === 'FOOD_REPORT_MAKE' ||
reportType === 'FOOD_REPORT_MANAGE'
) {
this.iconMsg = this.defVal.concat(this.checkOut)
} else {
this.iconMsg = this.defVal
}
this._page()
},
_page() {
const data = {
reportId: this.reportId
}
// this.$refs.pageTable._page('', 'FoodSampleReportDetail/page', data)
console.log(data)
// const result = meterSample.pageHis(data)
// console.log('result', result)
},
_tableResultChange(msg, data) {
switch (msg) {
case 'page':
this.getPage = this.$store.state.FoodSampleReportDetail.page
break
case 'iconClick':
this._iconClick(data.name, data.rowData)
break
case 'changeSize':
this._page()
break
}
},
_iconClick(res, data) {
switch (res) {
case '预览':
this._viewReport(data.id)
break
case '下载':
this._download(data.id)
break
case '签入':
this._checkOut(data.id)
break
}
},
// 下载
_download(id) {
window.open(
global.baseURL + '/food/v1/sample_report/download_by_report_id/' + id,
'_blank'
)
},
// 预览
_viewReport(id) {
this.$store.dispatch('FoodSampleReport/getByPreviewId', id).then(() => {
const data = this.$store.state.FoodSampleReport.model
if (data !== undefined) {
this.$openWindowModeless({
objectKey: data.objectKey,
id: id,
isReport: 0
})
}
})
},
_checkOut(id) {
this.$Modal.confirm({
title: '提示',
content: '确定该操作?',
onOk: () => {
this.$store
.dispatch('FoodSampleReportDetail/checkOut', { id })
.then(() => {
if (this.$store.state.FoodSampleReportDetail.success) {
this.$Message.success('操作成功!')
this._page()
this.$emit('on-result-change')
}
})
}
})
}
}
}
</script>
......@@ -10,24 +10,24 @@
<Form id="formId" :label-width="80" inline onsubmit="return false">
<label class="label-sign"></label>
<Form-item label="样品名称:" class="search-item">
<Input v-model="formObj.name" placeholder="请输入样品名称" clearable @on-enter="_formSearch"/>
<Input v-model="formObj.name" @on-enter="_formSearch" placeholder="请输入样品名称" clearable/>
</Form-item>
<Form-item label="样品编号:" class="search-item">
<Input v-model="formObj.code" placeholder="请输入样品编号" clearable @on-enter="_formSearch"/>
<Input v-model="formObj.code" @on-enter="_formSearch" placeholder="请输入样品编号" clearable/>
</Form-item>
<Form-item class="search-btn" style="margin-left: -10px">
<Button type="primary" @click="_formSearch">搜索</Button>
<Button @click="_formSearch" type="primary">搜索</Button>
</Form-item>
</Form>
</Col>
<Col span="24">
<btn-list :msg="btn" :open="searchOpen" :show-search-btn="true" class="contHide"
@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" select-data @on-result-change="_tableResultChange">
:icon-msg="iconMsg" @on-result-change="_tableResultChange" select-data>
<vxe-table-column
v-for="item in pageColumns"
:key="item.key"
......@@ -61,16 +61,25 @@
</Modal>
<MeterSubSampleEdit ref="batchEditModal" @on-result-change="_page"></MeterSubSampleEdit>
<SubOutWarehouse ref="OutWarehouseModal" ></SubOutWarehouse>
<SubResultInput ref="ResultInputModal"></SubResultInput>
<UploadByReport ref="UploadModal"></UploadByReport>
<HisRevision ref="HisModal"></HisRevision>
</div>
</template>
<script>
import { meterSample } from '../../../api'
import MeterSubSampleEdit from './MeterSubSampleEdit'
import SubOutWarehouse from './SubOutWarehouse'
import SubResultInput from './SubResultInputEdit'
import UploadByReport from './UploadByReport'
import HisRevision from './HisRevision'
export default {
components: {
MeterSubSampleEdit,
SubOutWarehouse
SubOutWarehouse,
SubResultInput,
UploadByReport,
HisRevision
// FoodSampleGovernDetail,
// CopyModal,
// FoodSampleGovernLYEdits
......@@ -89,6 +98,9 @@ export default {
// {id: '', name: '删除'},
// ],
iconMsg: [
{ type: 'md-create', id: '', name: '检测结果录入' },
{ type: 'ios-list', id: '', name: '历史版本' },
{ type: 'ios-cloud-upload', id: '', name: '上传' },
{ type: 'compose', id: '', name: '编辑' },
{ type: 'ios-copy', id: '', name: '复制', componentName: 'CopyModal' },
{ type: 'trash-a', id: '', name: '删除' }
......@@ -124,6 +136,7 @@ export default {
}
],
formId: 'meterReviewSampleManageFormId',
reportType: 'FOOD_REPORT_MAKE',
showModal: false,
modalTitle: '管理样品',
selectIds: [],
......@@ -228,6 +241,15 @@ export default {
this.currentComponent = componentName
this.$nextTick(function() {
switch (res) {
case '历史版本':
this._HisEdit(data)
break
case '上传':
this._upload(data)
break
case '检测结果录入':
this._resultModal(data)
break
case '编辑':
localStorage.setItem('type', data.type)
if (data.type === 2) {
......@@ -248,6 +270,16 @@ export default {
}
})
},
_HisEdit(data) {
this.$refs.HisModal._open(data.id, this.reportType)
},
_upload(data) {
this.$refs.UploadModal._open(data.id)
},
_resultModal(data) {
console.log(data.id)
this.$refs.ResultInputModal._open(data.id)
},
_tableResultChange(msg, data) {
switch (msg) {
case 'selectData':
......
......@@ -46,13 +46,15 @@
</div>
</div>
<subSampleManage ref="subSampleManage"></subSampleManage>
<operationModal ref="operationModal"></operationModal>
</div>
</template>
<script>
import { meterEntrust, meterSubcontractor } from '../../../api'
import operationModal from '../../../components/operation/Operation'
import subSampleManage from './MeterSubSampleManage'
export default {
components: { subSampleManage },
components: { subSampleManage, operationModal },
data() {
return {
currentComponent: '',
......@@ -173,7 +175,7 @@ export default {
this.$refs.subSampleManage._open(data.id)
},
_record(id) {
this.$refs.refModal._open(id)
this.$refs.operationModal._open(id)
},
_tableResultChange(msg, data) {
switch (msg) {
......
<template>
<div>
<Modal v-model="showModal" width="1200" class="modal-footer-none">
<p slot="header">{{modalTitle}}</p>
<div>
<!--内容-->
<Row>
<!--查询-->
<Col span="24">
<Form id="formId" :label-width="80" inline onsubmit="return false">
<label class="label-sign"></label>
<Form-item label="样品名称:" class="search-item">
<Input v-model="formObj.name" placeholder="请输入样品名称" clearable @on-enter="_formSearch"/>
</Form-item>
<Form-item label="样品编号:" class="search-item">
<Input v-model="formObj.code" placeholder="请输入样品编号" clearable @on-enter="_formSearch"/>
</Form-item>
<Form-item class="search-btn" style="margin-left: -10px">
<Button type="primary" @click="_formSearch">搜索</Button>
</Form-item>
</Form>
</Col>
<Col span="24">
<btn-list :msg="btn" :open="searchOpen" :show-search-btn="true" class="contHide"
@on-result-change="_btnClick"></btn-list>
</Col>
<Col span="24">
<PTVXETable ref="pageTable" :table-height="tableHeight" :form-id="formId" :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"
:min-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.id)">{{scope.row[item.key]}}</a></div>
<div v-else-if="item.date">{{scope.row[item.key]?$dateformat(scope.row[item.key],'yyyy-mm-dd'):''}}
</div>
<div v-else-if="item.key==='jobOut'">
{{scope.row[item.key]===1?'是':'否'}}
</div>
<span v-else-if="item.key==='singleJudge'">
{{ scope.row[item.key]===undefined?'':scope.row[item.key].display }}
</span>
<div v-else-if="item.key==='testValue'">
<el-input
v-model="scope.row.testValue"
size="medium"
placeholder="请输入检测结果"
@blur="_handleTestValueEdit(scope.row.id,scope.row.testValue)"
/>
</div>
<div v-else-if="item.key==='progress'">
{{scope.row.progress.display}}
</div>
<div v-else>{{scope.row[item.key]}}</div>
</template>
</vxe-table-column>
</PTVXETable>
</Col>
</Row>
</div>
</Modal>
</div>
</template>
<script>
import { meterItem } from '../../../api'
export default {
components: {
// FoodSampleGovernDetail,
// CopyModal,
// FoodSampleGovernLYEdits
},
data() {
return {
currentComponent: '',
// btn: [
// {type: 'success', id: '', name: '添加', componentName: 'FoodSampleGovernEdit'},
// {id: 'food-gov-sample-batch-add', name: '批量添加', componentName: 'FoodSampleGovernBatchAdd'},
// {id: '', name: '导入样品', componentName: 'FoodImportSample'},
// {id: '', name: '导入检测项目', componentName: 'RelItem'},
// {id: '', name: '导入检测项目包', componentName: 'RelItemPackage'},
// {id: '', name: '复制历史样品检测项目', componentName: 'CopyHisItem'},
// {id: '', name: '删除'},
// ],
iconMsg: [
{ type: 'compose', id: '', name: '编辑' },
{ type: 'ios-copy', id: '', name: '复制', componentName: 'CopyModal' },
{ type: 'trash-a', id: '', name: '删除' }
],
btn: [
{
// meter-review-entrust-pass-btn
type: 'success',
id: '',
name: '完成'
},
// meter-review-entrust-back-btn
{
type: 'success',
id: '',
name: '填写检测值'
},
{
type: 'success',
id: '',
name: '判定'
}
],
options: [
{
name: '检定'
},
{
name: '校准'
},
{
name: '外观检查'
}
],
formId: 'meterReviewSampleManageFormId',
showModal: false,
searchOpen: false,
modalTitle: '管理样品',
selectIds: [],
selectData: [],
getPage: {},
pageColumns: [
// { title: '样品编号', key: 'code', detail: true, width: 120 },
{ title: '检定项目', key: 'name', width: 180 },
{ title: '比较符', key: 'compare', width: 100 },
{ title: '限量值', key: 'limitValue', width: 140 },
{ title: '检测值', key: 'testValue', width: 140 },
{ title: '单项判定', key: 'singleJudge', width: 140 },
{ title: '进度', key: 'progress', width: 110 }
],
dateList: [],
formObj: {
sampleId: undefined,
name: undefined,
code: undefined,
type: undefined
}
}
},
computed: {
tableHeight: function() {
return this.$tableHeight('tableModal')
}
},
methods: {
_modalResult(data1, data2) {
switch (this.currentComponent) {
case 'CopyModal':
if (data1 === 0) {
this._copySample(data2)
} else {
this._copyAll(data2)
}
break
default:
this._search()
}
},
_dateChange(data) {
this.formObj.ctimeBegin = data[0]
this.formObj.ctimeEnd = data[1]
},
_btnClick(msg, componentName) {
this.currentComponent = componentName
this.$nextTick(function() {
switch (msg) {
case '完成':
this._testEnd()
break
case '导入检测项目':
this._importItem()
break
case '导入检测项目包':
this._importItemPackage()
break
case '复制历史样品检测项目':
this._copyHisItem()
break
case '删除':
this._deleteSelected()
break
}
})
},
_iconClick(res, data, componentName) {
this.currentComponent = componentName
this.$nextTick(function() {
switch (res) {
case '编辑':
localStorage.setItem('type', data.type)
if (data.type === 2) {
this._editLY(data.id) // 粮油的编辑页
} else {
this._editModal(true, data.id)
}
break
case '复制':
this._copy(data.id, data.type)
break
case '删除':
this._deleteById(data.id)
break
case '检测项目':
this._itemDetail(data.id)
break
}
})
},
_tableResultChange(msg, data) {
switch (msg) {
case 'selectData':
const selectIds = []
for (let i = 0; i < data.length; i++) {
selectIds.push(data[i].id)
}
this.selectIds = selectIds
this.selectData = data
break
case 'iconClick':
this._iconClick(data.name, data.rowData, data.componentName)
break
case 'changeSize':
this._page()
break
}
},
_open(id) {
this.formObj.sampleId = id
this.showModal = true
this._page()
},
_testEnd() {
if (this.selectIds.length === 0) {
this.$Message.success('请选择完成检测的项目')
return false
}
this._testItemEnd(this.selectIds)
},
_testItemEnd: async function() {
const result = await meterItem.testEnd({
ids: this.selectIds,
sampleId: this.formObj.sampleId
})
if (result) {
await this._page()
}
},
_formSearch() {
this.$refs.pageTable._pageChange(1)
},
_page: async function() {
Object.assign(this.formObj, this.$refs.pageTable._searchParams())
console.log('this.formObj', this.formObj)
const result = await meterItem.pageTest(this.formObj)
console.log('result', result)
if (result) {
this.getPage = result
this.$refs.pageTable._hideLoading()
}
},
_deleteByIds(ids, content) {
this.$Modal.confirm({
title: '提示',
content: content || '确定删除该记录?',
onOk: () => {
this.$store.dispatch('FoodSample/deleteByIds', ids).then(() => {
this._resultChange('删除成功!')
})
}
})
},
_deleteById(id) {
// 删除一条记录
this._deleteByIds([id])
},
_deleteSelected() {
// 批量删除
const ids = this.selectIds
if (ids.length === 0) {
this.$Message.warning('请选择一条或多条数据!')
} else {
this._deleteByIds(ids, '确定删除 ' + ids.length + ' 条记录?')
}
},
_detailModal(id) {
this.currentComponent = 'FoodSampleGovernDetail'
this.$nextTick(function() {
this.$store.dispatch('FoodSample/getByGovernId', id).then(() => {
this.$refs.refModal._open(this.$store.state.FoodSample.governModel)
})
})
},
_editModal(edit, id) {
this.currentComponent = 'FoodSampleGovernEdit'
this.$nextTick(function() {
if (edit) {
this.$store.dispatch('FoodSample/getByGovernId', id).then(() => {
this.$refs.refModal._open(
this.$store.state.FoodSample.governModel,
this.contractId
)
})
} else {
this.$refs.refModal._open('', this.contractId)
}
})
},
_editLY(id) {
// 粮油的编辑
this.currentComponent = 'FoodSampleGovernLYEdit'
this.$nextTick(function() {
this.$store.dispatch('FoodSample/getByGovernId', id).then(() => {
this.$refs.refModal._open(
this.$store.state.FoodSample.governModel,
this.contractId
)
})
})
},
_search() {
this._page()
},
_searchParams() {
const data = this.$serialize('search-sample-govern')
return this.$extend(data, this.pageParams)
},
_resultChange(msg) {
if (this.$store.state.FoodSample.success) {
this._page()
this.$Message.success(msg)
}
},
_copy(sampleId, type) {
this.$refs.refModal._open(sampleId, type)
},
// 导入样品
_importSample() {
const data = {
importUrl: '/food/v1/sample/government/import_' + this.contractId,
downloadUrl: '/food/v1/excel/template/FoodSampleGovernment',
title: '导入'
}
this.$refs.refModal._open(data)
},
// 导入检测项目
_importItem() {
if (this.selectIds.length === 0) {
this.$Message.warning('请至少选中一条样品数据!')
} else {
this.$refs.refModal._open(this.selectIds, this.selectData[0])
}
},
_subpackageSample() {
if (this.selectData.length === 0) {
this.$Message.warning('请至少选中一条样品进行分包!')
return false
} else {
for (let i = 0; i < this.selectData.length; i++) {
if (this.selectData[i].jobOut === 1) {
this.$Message.warning(
'样品编号为' +
this.selectData[i].code +
'已经分包了,请选择未分包的样品!'
)
return false
}
}
this._subpackage(this.selectIds)
}
},
_importItemPackage() {
if (this.selectIds.length === 0) {
this.$Message.warning('请至少选中一条样品数据!')
} else {
this.$refs.refModal._open(this.selectIds, 'batch-rel-package-item')
}
},
_copyHisItem() {
if (this.selectIds.length === 0) {
this.$Message.warning('请至少选中一条样品数据!')
} else {
this.$refs.refModal._open(this.selectIds)
}
},
_itemDetail(id) {
this.$refs.foodItem._open(id)
},
_operationRecord(id) {
// 操作日志
this.$refs.recordModal._open(id)
},
// 单个填写检测值
_handleTestValueEdit: async function(id, testValue) {
if (testValue !== '' && undefined !== testValue) {
const data = {}
data.itemIds = id
data.testValue = testValue
const result = await meterItem.testValue(data)
if (result) {
this.$Message.success('保存成功')
await this._page()
} else {
this.$Message.error('保存失败')
}
}
}
}
}
</script>
<template>
<div>
<Modal v-model="showSubmitModal">
<p slot="header">{{modalTitle}}</p>
<div v-show="isLoad">
<Spin fix>
<Icon type="load-c" size=18 class="file-spin-icon-load"></Icon>
<div>正在上传,请稍后...</div>
</Spin>
</div>
<Alert type="warning" show-icon>请填写修改信息,例:xxx由xxx修改为xxx,多条填写时以‘;’分隔!</Alert>
<Input v-model="remark" :autosize="{minRows: 3,maxRows: 5}" @on-keyup="_blurChange"
type="textarea" placeholder="请输入内容"></Input>
<div style="margin-top:10px">
<Form :label-width="80" onsubmit="return false">
<Form-item label="报告名称:">
<Input v-model="reportName" @on-blur="_action" placeholder="请输入报告名称"/>
</Form-item>
</Form>
</div>
<div slot="footer" class="btn-width">
<label style="margin-bottom: 0">
<Upload
:action="action"
:on-success="_handelsuccess"
:before-upload="_beupload"
:on-progress="_handelprogress"
:data="dataObj"
:with-credentials="true"
:show-upload-list="false"
>
<Button @click="_cancel" style="margin-left: 8px">取消</Button>
<Button :disabled="isDisable" type="primary">上传</Button>
</Upload>
</label>
</div>
</Modal>
</div>
</template>
<script>
/**
* 上传报告-----报告台账上传报告
*/
import global from '../../../api/config'
export default {
components: {},
data() {
return {
ids: [], // 合同ids
modalTitle: '上传报告',
showSubmitModal: false,
isLoad: false,
action: '',
dataObj: {
file: ''
},
remark: '',
reportId: 0,
isDisable: true,
isReport: false, // 是否有过报告,
reportName: ''
}
},
methods: {
_open(reportId) {
this.showSubmitModal = true
this.isLoad = false
this.reportId = reportId
this.reportName = ''
this.remark = ''
},
_blurChange() {
if (this.remark !== '') {
this._action()
this.isDisable = false
} else {
this.isDisable = true
}
},
_action() {
this.action =
global.baseURL +
'/food/v1/sample_report/upload_report/' +
this.reportId +
'?reason=' +
this.remark +
'&reportName=' +
this.reportName
},
_beupload(file) {
this.dataObj.file = file.name
},
_handelprogress(event, file, fileList) {
this.isLoad = true
},
_handelsuccess(response, file, fileList) {
// 上传成功
if (response.success) {
this.isLoad = false
this.$Message.success('上传成功!')
this.$emit('on-result-change')
this.showSubmitModal = false
} else {
this.isLoad = false
this.$Message.error(response.msg)
}
},
_cancel() {
this.showSubmitModal = false
}
}
}
</script>
......@@ -46,13 +46,15 @@
</div>
</div>
<subSampleManage ref="subSampleManage"></subSampleManage>
<operationModal ref="operationModal"></operationModal>
</div>
</template>
<script>
import { meterEntrust, meterSubcontractor } from '../../../api'
import operationModal from '../../../components/operation/Operation'
import subSampleManage from './MeterSubSampleManage'
export default {
components: { subSampleManage },
components: { subSampleManage, operationModal },
data() {
return {
currentComponent: '',
......@@ -173,7 +175,7 @@ export default {
this.$refs.subSampleManage._open(data.id)
},
_record(id) {
this.$refs.refModal._open(id)
this.$refs.operationModal._open(id)
},
_tableResultChange(msg, data) {
switch (msg) {
......
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