Commit 7df6d871 by lichengming

修改了资质管理

parent 225c3382
......@@ -23,5 +23,7 @@ export { default as workbench } from './meter/workbench/workbench'
* 计量检定
*/
export { default as meterSubcontractor } from './meter/meter-subcontractor'
export { default as meterAptitude } from './meter/meter-aptitude'
export { default as meterManage } from './meter/meter-manage'
export { default as meterEntrust } from './meter/meter-entrust'
export { default as lmsBaseDict } from './lims/lms-base-dict'
/**
* 工作台
*/
import http from '../http'
export default {
// page
page: data => http.post('meter/v1/standard/page', data).then(res => res),
getById: data => http.get('meter/v1/standard/' + data).then(res => res),
// 删除
deleteById: data =>
http.delete('meter/v1/standard/?ids=' + data).then(res => res),
// 保存
save: data => http.post('meter/v1/standard/', data).then(res => res),
// 编辑
edit: data =>
http.put('meter/v1/standard/' + data.id, data.obj).then(res => res)
}
/**
* 工作台
*/
import http from '../http'
export default {
// page
page: data => http.post('meter/v1/aptitude/page', data).then(res => res),
getById: data => http.get('meter/v1/aptitude/' + data).then(res => res),
// 删除
deleteById: data =>
http.delete('meter/v1/aptitude/?ids=' + data).then(res => res),
// 保存
save: data => http.post('meter/v1/aptitude/', data).then(res => res),
// 编辑
edit: data =>
http.put('meter/v1/aptitude/' + data.id, data.obj).then(res => res)
}
<!--下载模板导入-->
<template>
<div>
<Modal v-model="showModal" :mask-closable="false" class="zIndex-1100">
<p slot="header">{{modalTitle}}</p>
<Alert v-if="hideDownloadBtn===undefined" type="warning" show-icon>请下载导入模板并按照正确格式填写!</Alert>
<Alert v-if="msg === '资质项目管理导入'" type="warning" show-icon>此按钮可实现新增、更新资质项目的功能,不可新增或更新限量信息</Alert>
<Alert v-if="msg === '导入更新'" type="warning" show-icon>此功能可更新现有的资质项目、判定依据、限量信息</Alert>
<Alert v-if="showError" type="error" show-icon style="margin-top: 10px">{{errorMessage}}</Alert>
<Alert v-if="showSuccess" type="success" show-icon style="margin-top: 10px">{{successMessage}}</Alert>
<div v-show="isLoad">
<Spin>
<Icon type="load-c" size=18 class="file-spin-icon-load"></Icon>
<div>正在导入,请稍后...</div>
</Spin>
</div>
<div>
<Button @click="_download" v-if="hideDownloadBtn===undefined" type="ghost" size="large">下载模板</Button>
</div>
<div slot="footer" class="btn-width">
<Button @click="_cancel" type="ghost">取消</Button>
<label style="margin-bottom: 0">
<Upload
:action="importUrl"
:on-success="_handelsuccess"
:before-upload="_beupload"
:on-progress="_handelprogress"
:on-format-error="_formatError"
:data="dataObj"
:with-credentials="true"
:show-upload-list="false"
:format="format"
>
<Button :disabled="isDisabled" type="primary">导入</Button>
</Upload>
</label>
</div>
</Modal>
</div>
</template>
<script>
/**
* 导入并下载模板
*/
// import global from '../../api/config'
import global from '../../api/config'
export default {
components: {},
props: {
hideDownloadBtn: null
},
data() {
return {
msg: '',
modalTitle: '导入检测项目信息',
showModal: false,
isLoad: false,
isDisabled: false,
showError: false,
showSuccess: false,
dataObj: {
file: ''
},
errorMessage: '',
successMessage: '',
format: ['xlsx', 'xls'],
importUrl: '',
downloadUrl: '',
// 500的提示语
errStr: '很抱歉!无法处理您的操作,请检查您的操作步骤或者联系系统管理员!'
}
},
methods: {
_open(data, msg) {
this.isLoad = false
this.showModal = true
this.isDisabled = false
this.showError = false
this.showSuccess = false
this.modalTitle = data.title
this.importUrl = global.baseURL + data.importUrl
this.downloadUrl = data.downloadUrl
this.msg = msg
},
_download() {
// this.$Modal.confirm({
// title: '提示',
// content: '确定要下载模板?',
// onOk: () => {
//
// }
// });
window.open(global.baseURL + this.downloadUrl, '_blank')
},
_cancel() {
this.showModal = false
},
_beupload(file) {
this.dataObj.file = file.name
},
_handelprogress(event, file, fileList) {
this.isLoad = true
this.isDisabled = true
},
_handelsuccess(response, file, fileList) {
// 上传成功
if (response.success) {
this.isLoad = false
this.$Message.success('导入成功!')
this.$emit('on-result-change')
this.showModal = false
this.isDisabled = false
this.showError = false
this.showSuccess = true
this.successMessage = response.msg
} else {
this.isLoad = false
this.showSuccess = false
this.isDisabled = false
this.errorMessage = response.code === '500' ? this.errStr : response.msg
this.showError = true
// this.$Message.error(response.msg);
}
},
_formatError(file) {
this.$Notice.error({
title: '文件格式不正确',
duration: 10,
desc:
'文件 ' + file.name + ' 格式不正确,请上传格式为 .xlsx、xls 的文件!'
})
this.isLoad = false
}
}
}
</script>
......@@ -21,12 +21,12 @@
:cell-class-name="_tableCellClassName"
:row-class-name="_tableRowClassName"
:edit-config="isEdit !== undefined?editConfig:null"
size="mini"
:radio-config="isRadio !== undefined?radioConfig:null"
border
:row-key="true"
stripe
:tooltip-config="{enterable:true}"
size="mini"
border
stripe
show-overflow
show-header-overflow
>
......@@ -140,6 +140,10 @@ export default {
this._loadData(newVal)
}
},
mounted() {
console.log('按钮')
console.log(this.iconMsg)
},
methods: {
_loadData(data) {
// 阻断 vue 对大数组的双向绑定,大数据性能翻倍提升
......
<template>
<div>
123456
<!--内容-->
<div class="layout-content-padding">
<div class="layout-content-main">
<Row>
<!--查询-->
<Col span="24" style="margin-top:10px">
<Form :d="formId" :label-width="90" v-show="searchOpen" inline onsubmit="return false">
<label class="label-sign"></label>
<Form-item class="search-item" label="检定依据:" style="margin-left: -20px">
<Input @on-enter="_formSearch" v-model="formObj.code" name="judgeBasis" placeholder="请输入检定依据" clearable/>
</Form-item>
<Form-item class="search-item" label="检定依据名称:">
<Input @on-enter="_formSearch" v-model="formObj.basis" name="judgeBasisName" placeholder="请输入检定依据名称" clearable/>
</Form-item>
<Form-item class="search-btn">
<Button @click="_formSearch" type="primary">搜索</Button>
</Form-item>
</Form>
</Col>
<!--操作-->
<Col span="24">
<btn-list :msg="btn" :open="searchOpen" :showSearchBtn="true" @on-result-change="_btnClick"
class="contHide"></btn-list>
</Col>
<!-- 表格 -->
<Col span="24">
<PTVXETable
ref="pageTable"
:form-id="formId"
:tableHeight="tableHeight"
:getPage="getPage"
:iconMsg="iconMsg"
@on-result-change="_tableResultChange">
<vxe-table-column
v-for="item in pageColumns"
:key="item.key"
:field="item.key"
:title="item.title"
:width="item.width"
:min-width="200"
:fixed="item.fixed?item.fixed:undefined"
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>
</div>
</div>
<!-- 添加、编辑 -->
<MeterAptitudeManageEdit ref="editModal" @on-result-change="_page"></MeterAptitudeManageEdit>
</div>
</template>
<script>
import { meterManage } from '../../../api'
import MeterAptitudeManageEdit from './MeterAptitudeManageEdit.vue'
export default {
name: 'MeterAptitudeManage'
name: 'MeterAptitudeManage',
components: {
MeterAptitudeManageEdit
},
data() {
return {
formId: 'meterAptitudeManageFormId',
pageColumns: [
{ title: '检定依据', key: 'code', width: 160 },
{ title: '检定依据名称', key: 'basis' },
{ title: '检定周期', key: 'cycle' },
{ title: '授权仪器名称', key: 'name' },
// {title: '限制范围或说明', key: 'limitDescription'},
{ title: '价格', key: 'price' }
],
btn: [
{ type: 'success', id: '', name: '添加' },
{ type: 'error', id: '', name: '删除' },
{ type: '', id: '', name: '导入' },
{ type: '', id: '', name: '导出' }
],
iconMsg: [
{ type: 'ios-clock', id: '', name: '编辑' },
{ type: 'ios-clock', id: '', name: '删除' }
],
formObj: {
basis: undefined,
code: undefined
},
searchOpen: true,
selectIds: [],
getPage: {},
typeData: []
}
},
computed: {
tableHeight: function() {
if (this.searchOpen) {
return this.$tableHeight('search')
} else {
return this.$tableHeight('noSearch')
}
}
},
mounted() {
this._page()
},
methods: {
_btnClick(msg) {
switch (msg) {
case '添加':
this._editModal(false)
break
case '删除':
this._deleteSelected()
break
case '导入':
this._import()
break
case '导出':
this._export()
break
case 'search':
this.searchOpen = !this.searchOpen
break
}
},
_iconClick(res, data) {
switch (res) {
case '编辑':
this._editModal(true, data.id)
break
case '删除':
this._deleteById(data.id)
break
case '操作日志':
this._record(data.id)
break
}
},
_page: async function() {
console.log(9522123)
// this.$refs.pageTable._page('search-form-package', 'FoodJudgeBasis/page')
Object.assign(this.formObj, this.$refs.pageTable._searchParams())
console.log('this.formObj', this.formObj)
const result = await meterManage.page(this.formObj)
if (result) {
console.log(55555)
console.log(result)
this.getPage = result
console.log(123456789)
console.log(this.getPage)
}
},
_formSearch() {
this.$refs.pageTable._pageChange(1)
},
_tableResultChange(msg, data) {
switch (msg) {
case 'page':
this.getPage = this.$store.state.FoodJudgeBasis.page
break
case 'selectIds':
this.selectIds = data
break
case 'iconClick':
this._iconClick(data.name, data.rowData)
break
case 'changeSize':
this._page()
break
}
},
// 删除
_deleteByIds(ids, content) {
this.$Modal.confirm({
title: '提示',
content: content || '确定删除该记录?',
onOk: () => {
this._delete(ids)
}
})
},
_delete: async function(ids) {
const result = await meterManage.deleteById(ids)
if (result) {
this._formSearch()
this.$Message.success('删除成功!')
}
},
_deleteById(id) {
// 删除一条记录
this._deleteByIds([id])
},
_deleteSelected() {
// 批量删除
const ids = this.selectIds
if (ids.length === 0) {
this.$Message.warning('请选择一条或多条数据!')
} else {
this._deleteByIds(ids, '确定删除这 ' + ids.length + ' 条记录?')
}
},
// 编辑&添加
_editModal(edit, id) {
if (edit) {
this._getById(id)
// 编辑
// this.$store.dispatch('FoodJudgeBasis/getById', id).then(() => {
// this.$refs.editModal._open(this.$store.state.FoodJudgeBasis.model)
// })
} else {
// 添加
this.$refs.editModal._open()
}
},
_getById: async function(id) {
const result = await meterManage.getById(id)
if (result) {
this.$refs.editModal._open(result)
}
},
// 导入
_import() {
const data = {
importUrl:
'/food/v1/food_aptitude_judge_basis/food_aptitude_judge_import',
downloadUrl: '/food/v1/excel/template/FoodAptitudeJudgeBasis',
title: '导入检验方法管理'
}
this.$refs.sampleModal._open(data)
},
// 导出
_export() {
console.log('.this.selectIds', this.selectIds)
if (this.selectIds.length === 0) {
this.$Message.warning('请选择需要导出的数据')
} else {
const content = '确定导出 ' + this.selectIds.length + ' 条记录?'
this.$Modal.confirm({
title: '提示',
content: content,
onOk: () => {
// eslint-disable-next-line no-undef
http.open(
'/food/v1/food_aptitude_judge_basis/food_aptitude_judge_export?ids=' +
this.selectIds
)
}
})
}
}
}
}
</script>
......
<template>
<div>
<Modal v-model="showModal" :mask-closable="false" width="600">
<p slot="header">{{modalTitle}}</p>
<div>
<Form id="edit-form" ref="formObj" :model="formObj" :rules="ruleValidate" :label-width="100">
<Form-item label="检定依据" prop="code">
<!-- <autoComplete :value="formObj.judgeBasis" :downData="judgeBasisData" @on-result-change="_judgeBasisChange" name="judgeBasis"-->
<!-- show-key="stdNum" placeholder="请输入或选择判定依据" focus-->
<!-- ></autoComplete>-->
<Input v-model="formObj.code" @on-result-change="_judgeBasisChange" name="code" placeholder="请输入或选择判定依据" />
</Form-item>
<Form-item label="检定依据名称" prop="basis">
<Input v-model="formObj.basis" name="basis" placeholder="请输入判定依据名称" />
</Form-item>
<Form-item label="检定周期 " prop="cycle">
<!-- <Input :rows="3" v-model="formObj.remark" placeholder="请输入备注" type="textarea" name="remark"/>-->
<InputNumber :rows="3" v-model="formObj.cycle" name="cycle" style="width: 468px;"/>
</Form-item>
<Form-item label="授权仪器名称 " prop="name">
<Input v-model="formObj.name" name="name" placeholder="请输入授权仪器名称" />
</Form-item>
<Form-item label="价格" prop="price">
<InputNumber v-model="formObj.price" name="price" placeholder="请输入价格" style="width: 468px;"/>
</Form-item>
<Form-item label="测量范围 " prop="extent">
<Input v-model="formObj.extent" name="extent" placeholder="请输入测量范围" />
</Form-item>
<Form-item label="准确度等级" prop="grade">
<Input v-model="formObj.grade" name="grade" placeholder="请输入准确度等级" />
</Form-item>
<input v-model="formObj.stdId" type="hidden" name="stdId">
</Form>
</div>
<div slot="footer">
<ModalFooter ref="footerModal" @on-result-change="_footerResult" :footer="footerList"></ModalFooter>
</div>
</Modal>
</div>
</template>
<script>
/**
* 添加编辑环境检测项目包
*/
// import ModalFooter from '../../../../components/base/ModalFooter'
// import autoComplete from '../../../../components/base/AutoCompletes'
import ModalFooter from '../../../components/base/modalFooter'
// import autoComplete from '../../../components/base/AutoCompletes'
import { meterManage } from '../../../api'
export default {
components: {
ModalFooter
// autoComplete
},
data() {
// const validateJudgeBasis = (rule, value, callback) => {
// if (this.formObj.code === '') {
// callback(new Error('判定依据不能为空!'))
// } else if (this.formObj.stdId === '') {
// this.formObj.code = ''
// callback(new Error('请选择已维护过的判定依据!'))
// } else {
// callback()
// }
// }
return {
id: '',
modalTitle: '',
formObj: {
basis: '',
name: '',
code: '',
cycle: 0,
price: 0,
stdId: '',
extent: '',
grade: ''
},
showModal: false,
aptitudeData: [],
ruleValidate: {
extent: [
{ required: true, message: '测量范围不能为空', trigger: 'blur' }
],
name: [
{ required: true, message: '授权仪器名称不能为空', trigger: 'blur' }
],
cycle: [
{
required: true,
type: 'number',
message: '检定周期不能为空',
trigger: 'blur'
}
]
},
footerList: [
{ name: '取消', type: '' },
{ name: '保存', type: 'primary' }
],
typeData: [],
judgeBasisData: []
}
},
methods: {
_save: async function(data) {
const result = await meterManage.save(data)
console.log(result)
if (result) {
this._resultChange('添加成功!')
}
},
_edit: async function(data) {
const result = await meterManage.edit(data)
if (result) {
this._resultChange('编辑成功!')
}
},
_open(formObj) {
this._getJudgeBasisList()
this.$refs.formObj.resetFields()
if (this.$string(formObj).isEmpty()) {
this.id = ''
this.modalTitle = '添加判定依据'
} else {
this.formObj = formObj
this.id = formObj.id
this.modalTitle = '编辑判定依据'
}
this.showModal = true
},
_typeChange(msg, data) {
switch (msg) {
case 'select':
this.formObj.testType = data.name
break
}
},
_ok() {
this.$refs.formObj.validate(valid => {
if (valid) {
const data = this.$serialize('edit-form')
if (this.$string(this.id).isEmpty()) {
// 添加
this._save(data)
} else {
// 编辑
this._edit({ id: this.formObj.id, obj: data })
}
// if (this.$string(this.id).isEmpty()) {
// // 添加
// this.$store.dispatch('FoodJudgeBasis/add', data).then(() => {
// this._resultChange('添加成功!')
// })
// } else {
// // 编辑
// this.$store
// .dispatch('FoodJudgeBasis/edit', { id: this.id, obj: data })
// .then(() => {
// this._resultChange('编辑成功!')
// })
// }
} else {
this.$refs.footerModal._hideLoading()
this.$Message.error('表单验证失败!')
}
})
},
_footerResult(name) {
switch (name) {
case '取消':
this._cancel()
break
case '保存':
this._ok()
break
}
},
_cancel() {
this.$refs.footerModal._hideLoading()
this.showModal = false
},
_resultChange(msg) {
this.showModal = false
this.$refs.footerModal._hideLoading()
this.$Message.success(msg)
this.$emit('on-result-change')
this.$refs.footerModal._hideLoading()
},
// 关联
_getJudgeBasisList(data) {
const obj = { classify: 0 }
if (data) {
obj.stdNum = data
}
// this.$store.dispatch('StandardInfo/list', obj).then(() => {
// this.judgeBasisData = this.$store.state.StandardInfo.list
// })
},
_judgeBasisChange(msg, data) {
switch (msg) {
case 'select':
this.formObj.stdId = data.id
this.formObj.code = data.stdNum
this.formObj.name = data.name
this.$refs.formObj.validateField('code')
break
case 'query':
this.formObj.stdId = ''
this.formObj.code = data.stdNum
this.formObj.name = ''
this._getJudgeBasisList(data.stdNum)
break
case 'focus':
this._getJudgeBasisList()
break
case 'blur':
if (this.formObj.stdId === '') {
this.formObj.code = ''
this._getJudgeBasisList()
}
this.$refs.formObj.validateField('code')
}
}
}
}
</script>
......@@ -6,13 +6,13 @@
<Row>
<!--查询-->
<Col span="24" style="margin-top:10px">
<Form id="search-form-package" :label-width="90" v-show="searchOpen" inline onsubmit="return false">
<Form :d="formId" :label-width="90" v-show="searchOpen" inline onsubmit="return false">
<label class="label-sign"></label>
<Form-item class="search-item" label="判定依据:" style="margin-left: -20px">
<Input @on-enter="_formSearch" name="judgeBasis" placeholder="请输入判定依据" clearable/>
<Input @on-enter="_formSearch" v-model="formObj.code" name="judgeBasis" placeholder="请输入判定依据" clearable/>
</Form-item>
<Form-item class="search-item" label="判定依据名称:">
<Input @on-enter="_formSearch" name="judgeBasisName" placeholder="请输入判定依据名称" clearable/>
<Input @on-enter="_formSearch" v-model="formObj.name" name="judgeBasisName" placeholder="请输入判定依据名称" clearable/>
</Form-item>
<Form-item class="search-btn">
<Button @click="_formSearch" type="primary">搜索</Button>
......@@ -28,6 +28,7 @@
<Col span="24">
<PTVXETable
ref="pageTable"
:form-id="formId"
:tableHeight="tableHeight"
:getPage="getPage"
:iconMsg="iconMsg"
......@@ -53,20 +54,23 @@
</div>
</div>
<!-- 添加、编辑 -->
<!-- <JudgmentEdit ref="editModal" @on-result-change="_page"></JudgmentEdit>-->
<MeterAptitudeStandardEdit ref="editModal" @on-result-change="_page"></MeterAptitudeStandardEdit>
<!--导入资质项目-->
<!-- <DownloadTemplateImport ref="sampleModal" @on-result-change="_page"></DownloadTemplateImport>-->
</div>
</template>
<script>
import { meterAptitude } from '../../../api'
import MeterAptitudeStandardEdit from './MeterAptitudeStandardEdit'
export default {
name: 'MeterAptitudeStandard',
components: { MeterAptitudeStandardEdit },
data() {
return {
formId: 'meterAptitudeFormId',
pageColumns: [
{ title: '判定依据', key: 'judgeBasis', width: 160 },
{ title: '判定依据名称', key: 'judgeBasisName' },
{ title: '检测依据', key: 'code', width: 160 },
{ title: '检测依据名称', key: 'name' },
// {title: '限制范围或说明', key: 'limitDescription'},
{ title: '登记时间', key: 'ctime', dateTime: true, width: 140 },
{ title: '备注', key: 'remark' }
......@@ -78,9 +82,13 @@ export default {
{ type: '', id: '', name: '导出' }
],
iconMsg: [
{ type: 'compose', id: '', name: '编辑' },
{ type: 'trash-a', id: '', name: '删除' }
{ type: 'ios-clock', id: '', name: '编辑' },
{ type: 'ios-clock', id: '', name: '删除' }
],
formObj: {
name: undefined,
code: undefined
},
searchOpen: true,
selectIds: [],
getPage: {},
......@@ -96,6 +104,9 @@ export default {
}
}
},
mounted() {
this._page()
},
methods: {
_btnClick(msg) {
switch (msg) {
......@@ -129,8 +140,19 @@ export default {
break
}
},
_page() {
this.$refs.pageTable._page('search-form-package', 'FoodJudgeBasis/page')
_page: async function() {
console.log(9522123)
// this.$refs.pageTable._page('search-form-package', 'FoodJudgeBasis/page')
Object.assign(this.formObj, this.$refs.pageTable._searchParams())
console.log('this.formObj', this.formObj)
const result = await meterAptitude.page(this.formObj)
if (result) {
console.log(55555)
console.log(result)
this.getPage = result
console.log(123456789)
console.log(this.getPage)
}
},
_formSearch() {
this.$refs.pageTable._pageChange(1)
......@@ -155,23 +177,19 @@ export default {
_deleteByIds(ids, content) {
this.$Modal.confirm({
title: '提示',
loading: true,
content: content || '确定删除该记录?',
onOk: () => {
this.$store
.dispatch('FoodJudgeBasis/deleteByIdsMore', { ids: ids.join(',') })
.then(() => {
if (this.$store.state.FoodJudgeBasis.success) {
this._page()
this.$Message.success('删除成功!')
this.$Modal.remove()
} else {
this.$Modal.remove()
}
})
this._delete(ids)
}
})
},
_delete: async function(ids) {
const result = await meterAptitude.deleteById(ids)
if (result) {
this._formSearch()
this.$Message.success('删除成功!')
}
},
_deleteById(id) {
// 删除一条记录
this._deleteByIds([id])
......@@ -188,15 +206,23 @@ export default {
// 编辑&添加
_editModal(edit, id) {
if (edit) {
this._getById(id)
// 编辑
this.$store.dispatch('FoodJudgeBasis/getById', id).then(() => {
this.$refs.editModal._open(this.$store.state.FoodJudgeBasis.model)
})
// this.$store.dispatch('FoodJudgeBasis/getById', id).then(() => {
// this.$refs.editModal._open(this.$store.state.FoodJudgeBasis.model)
// })
} else {
// 添加
this.$refs.editModal._open()
}
},
_getById: async function(id) {
const result = await meterAptitude.getById(id)
if (result) {
this.$refs.editModal._open(result)
}
},
// 导入
_import() {
const data = {
......
<template>
<div>
<Modal v-model="showModal" :mask-closable="false" width="600">
<p slot="header">{{modalTitle}}</p>
<div>
<Form id="edit-form" ref="formObj" :model="formObj" :rules="ruleValidate" :label-width="100">
<Form-item label="判定依据" prop="code">
<!-- <autoComplete :value="formObj.judgeBasis" :downData="judgeBasisData" @on-result-change="_judgeBasisChange" name="judgeBasis"-->
<!-- show-key="stdNum" placeholder="请输入或选择判定依据" focus-->
<!-- ></autoComplete>-->
<Input v-model="formObj.code" @on-result-change="_judgeBasisChange" name="code" placeholder="请输入或选择判定依据" />
</Form-item>
<Form-item label="判定依据名称" prop="basis">
<Input v-model="formObj.name" name="name" placeholder="请输入判定依据名称" />
</Form-item>
<Form-item label="备注" prop="remark">
<Input :rows="3" v-model="formObj.remark" placeholder="请输入备注" type="textarea" name="remark"/>
</Form-item>
<input v-model="formObj.stdId" type="hidden" name="stdId">
</Form>
</div>
<div slot="footer">
<ModalFooter ref="footerModal" @on-result-change="_footerResult" :footer="footerList"></ModalFooter>
</div>
</Modal>
</div>
</template>
<script>
/**
* 添加编辑环境检测项目包
*/
// import ModalFooter from '../../../../components/base/ModalFooter'
// import autoComplete from '../../../../components/base/AutoCompletes'
import ModalFooter from '../../../components/base/modalFooter'
// import autoComplete from '../../../components/base/AutoCompletes'
import { meterAptitude } from '../../../api'
export default {
components: {
ModalFooter
// autoComplete
},
data() {
// const validateJudgeBasis = (rule, value, callback) => {
// if (this.formObj.code === '') {
// callback(new Error('判定依据不能为空!'))
// } else if (this.formObj.stdId === '') {
// this.formObj.code = ''
// callback(new Error('请选择已维护过的判定依据!'))
// } else {
// callback()
// }
// }
return {
id: '',
modalTitle: '',
formObj: {
name: '',
code: '',
remark: '',
stdId: ''
},
showModal: false,
aptitudeData: [],
ruleValidate: {
testType: [
{ required: true, message: '类别不能为空', trigger: 'blur' }
],
code: [
// { required: true, validator: validateJudgeBasis, trigger: 'blur' }
]
},
footerList: [
{ name: '取消', type: '' },
{ name: '保存', type: 'primary' }
],
typeData: [],
judgeBasisData: []
}
},
methods: {
_save: async function(data) {
const result = await meterAptitude.save(data)
console.log(result)
if (result) {
this._resultChange('添加成功!')
}
},
_edit: async function(data) {
const result = await meterAptitude.edit(data)
if (result) {
this._resultChange('编辑成功!')
}
},
_open(formObj) {
this._getJudgeBasisList()
this.$refs.formObj.resetFields()
if (this.$string(formObj).isEmpty()) {
this.id = ''
this.modalTitle = '添加判定依据'
} else {
this.formObj = formObj
this.id = formObj.id
this.modalTitle = '编辑判定依据'
}
this.showModal = true
},
_typeChange(msg, data) {
switch (msg) {
case 'select':
this.formObj.testType = data.name
break
}
},
_ok() {
this.$refs.formObj.validate(valid => {
if (valid) {
const data = this.$serialize('edit-form')
if (this.$string(this.id).isEmpty()) {
// 添加
this._save(data)
} else {
// 编辑
this._edit({ id: this.formObj.id, obj: data })
}
// if (this.$string(this.id).isEmpty()) {
// // 添加
// this.$store.dispatch('FoodJudgeBasis/add', data).then(() => {
// this._resultChange('添加成功!')
// })
// } else {
// // 编辑
// this.$store
// .dispatch('FoodJudgeBasis/edit', { id: this.id, obj: data })
// .then(() => {
// this._resultChange('编辑成功!')
// })
// }
} else {
this.$refs.footerModal._hideLoading()
this.$Message.error('表单验证失败!')
}
})
},
_footerResult(name) {
switch (name) {
case '取消':
this._cancel()
break
case '保存':
this._ok()
break
}
},
_cancel() {
this.$refs.footerModal._hideLoading()
this.showModal = false
},
_resultChange(msg) {
this.showModal = false
this.$refs.footerModal._hideLoading()
this.$Message.success(msg)
this.$emit('on-result-change')
this.$refs.footerModal._hideLoading()
},
// 关联
_getJudgeBasisList(data) {
const obj = { classify: 0 }
if (data) {
obj.stdNum = data
}
// this.$store.dispatch('StandardInfo/list', obj).then(() => {
// this.judgeBasisData = this.$store.state.StandardInfo.list
// })
},
_judgeBasisChange(msg, data) {
switch (msg) {
case 'select':
this.formObj.stdId = data.id
this.formObj.code = data.stdNum
this.formObj.name = data.name
this.$refs.formObj.validateField('code')
break
case 'query':
this.formObj.stdId = ''
this.formObj.code = data.stdNum
this.formObj.name = ''
this._getJudgeBasisList(data.stdNum)
break
case 'focus':
this._getJudgeBasisList()
break
case 'blur':
if (this.formObj.stdId === '') {
this.formObj.code = ''
this._getJudgeBasisList()
}
this.$refs.formObj.validateField('code')
}
}
}
}
</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