335 lines
9.9 KiB
Java
335 lines
9.9 KiB
Java
<template>
|
||
<div class='diolag-area'>
|
||
<a-spin :spinning='spinLoading'>
|
||
<a-form-model
|
||
class='tag-module'
|
||
ref='ruleForm'
|
||
:model='form'
|
||
:rules='rules'
|
||
:label-col='labelCol'
|
||
:wrapper-col='wrapperCol'
|
||
>
|
||
<a-row :gutter='24'>
|
||
<a-col :span='9'>
|
||
<a-form-model-item ref='region' :label="$t('NiONumber')" prop='region'>
|
||
<a-input
|
||
v-model='form.nioNumber' :placeholder="$t('pleaseEnter')+$t('NiONumber')" />
|
||
</a-form-model-item>
|
||
</a-col>
|
||
<a-col :span='9'>
|
||
<a-form-model-item ref='paramsTemplateName' :label="$t('ParameterName')" prop='paramsTemplateName'>
|
||
<a-input
|
||
v-model='form.paramsName' :placeholder="$t('pleaseEnter')+$t('ParameterName')" />
|
||
</a-form-model-item>
|
||
</a-col>
|
||
<a-col :span='6'>
|
||
<a-button class='box-button' type='primary' @click='searchQuery'>{{ $t('query') }}</a-button>
|
||
<a-button class='box-button' style='margin-left: 8px' @click='searchReset'>{{ $t('reset') }}</a-button>
|
||
</a-col>
|
||
</a-row>
|
||
<a-row :gutter='24'>
|
||
<a-col :span='9'>
|
||
<a-form-model-item ref='region' :label="$t('areaOfResponsibility')" prop='region'>
|
||
<a-form-model-item class='itemModel' prop='region'>
|
||
<j-dict-select-tag class='box-input' v-model='form.dutyTerritory'
|
||
:placeholder="$t('PleaseSelect')+$t('areaOfResponsibility')"
|
||
:type="'select'"
|
||
:triggerChange='false' :dictCode="'duty_territory'" />
|
||
</a-form-model-item>
|
||
</a-form-model-item>
|
||
</a-col>
|
||
<a-col :span='9'>
|
||
</a-col>
|
||
</a-row>
|
||
</a-form-model>
|
||
</a-spin>
|
||
<a-table
|
||
class='table-area'
|
||
ref='table'
|
||
size='middle'
|
||
rowKey='id'
|
||
:columns='columns'
|
||
:dataSource='areaTable'
|
||
:pagination='false'
|
||
:loading='loading'
|
||
:scroll='{x: 600}'
|
||
:rowSelection='{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}'
|
||
@change='handleTableChange'>
|
||
<a slot='name' slot-scope='text'>{{ text }}</a>
|
||
<span slot='action' slot-scope='text, record'>
|
||
<a class='action-edit' @click='editArea(record.id)' v-has="'area:edit'">{{ $t('edit') }}</a>
|
||
<a style='color:red' href='javascript:;' @click=' deleteArea(record.id)'
|
||
v-has="'area:delete'">{{ $t('delete') }}</a>
|
||
</span>
|
||
</a-table>
|
||
<div class='drawer-bootom-button'>
|
||
<a-button style='margin-right: .8rem' @click='handleCancel'>{{ $t('cancel') }}</a-button>
|
||
<a-button @click='handleSubmit' type='primary' :loading='confirmLoading'>{{ $t('submit') }}</a-button>
|
||
</div>
|
||
</div>
|
||
</template>
|
||
|
||
<script>
|
||
import { putAction, postAction, getAction, deleteAction } from '@/api/manage'
|
||
|
||
export default {
|
||
name: 'diolagArea',
|
||
components: {},
|
||
data() {
|
||
return {
|
||
title: this.$t('add'),
|
||
total: 0,
|
||
selectedRowKeysDate: {},
|
||
loading: false,
|
||
editId: '',
|
||
columns: [
|
||
{
|
||
title: this.$t('NiONumber'),
|
||
dataIndex: 'nioNumber',
|
||
align: 'center',
|
||
ellipsis: true
|
||
},
|
||
{
|
||
title: this.$t('ParameterName'),
|
||
align: 'center',
|
||
dataIndex: 'paramsName',
|
||
ellipsis: true
|
||
},
|
||
{
|
||
title: this.$t('areaOfResponsibility'),
|
||
dataIndex: 'dutyTerritory',
|
||
align: 'center',
|
||
ellipsis: true
|
||
}
|
||
],
|
||
newVisible: false,
|
||
labelCol: {
|
||
xs: { span: 24 },
|
||
sm: { span: 7 }
|
||
},
|
||
wrapperCol: {
|
||
xs: { span: 24 },
|
||
sm: { span: 14 }
|
||
},
|
||
form: {},
|
||
rules: {
|
||
// templatetitle: [
|
||
// { required: true, message: this.$t('enterTitle'), trigger: 'blur' }
|
||
// ]
|
||
},
|
||
areaTable: [],
|
||
flag: false, //表单提交标识
|
||
spinLoading: false,
|
||
confirmLoading: false,
|
||
templatetitle: '',
|
||
selectedRowKeys: [],
|
||
}
|
||
},
|
||
props: {
|
||
paramsManifest: {
|
||
type: Object,
|
||
default: {},
|
||
require: true
|
||
}
|
||
},
|
||
mounted() {
|
||
this.loadData()
|
||
},
|
||
methods: {
|
||
loadData() {
|
||
this.loading = true
|
||
let _tt = {
|
||
paramsManifestId: this.paramsManifest.id,
|
||
paramsTemplateId: this.paramsManifest.paramsTemplateId,
|
||
paramsTemplatePublishVersion: this.paramsManifest.paramsTemplatePublishVersion
|
||
}
|
||
let params = {
|
||
...this.form,
|
||
..._tt
|
||
}
|
||
getAction(`params/collectManifest/paramsInfoList`, params).then(res => {
|
||
if (res.success) {
|
||
this.areaTable = [...res.result]
|
||
}
|
||
}).finally(() => {
|
||
this.loading = false
|
||
})
|
||
},
|
||
searchQuery() {
|
||
this.loadData()
|
||
},
|
||
searchReset() {
|
||
this.form = {}
|
||
this.loadData()
|
||
},
|
||
handleCancel() {
|
||
this.$emit('areaVisible', false)
|
||
},
|
||
onSelectChange(selectedRowKeys, selectedRowKeysDate) {
|
||
this.selectedRowKeysDate = selectedRowKeysDate
|
||
this.selectedRowKeys = selectedRowKeys
|
||
this.$emit('addselectedRowKeys',this.selectedRowKeys)
|
||
},
|
||
handleTableChange(val) {
|
||
},
|
||
showModal() {
|
||
this.title = this.$t('add')
|
||
this.newVisible = true
|
||
this.form = {}
|
||
},
|
||
//新增
|
||
handleSubmit() {
|
||
if (this.selectedRowKeys.length == 0) {
|
||
this.$message.warning(this.$t('pleaseSelectData'))
|
||
} else if (this.selectedRowKeys.length > 1) {
|
||
this.$message.warning(this.$t('OnlyOneSelected'))
|
||
} else {
|
||
this.$refs.ruleForm.validate(valid => {
|
||
if (valid) {
|
||
this.flag = true
|
||
this.spinLoading = true
|
||
// 新增編輯之前 判断 标题唯一
|
||
getAction(`params/manifest/verifyTitle?projectId=${this.$route.query.id}
|
||
&title=${this.templatetitle}`, {})
|
||
.then(res => {
|
||
if (res.success) {
|
||
let postDate = {
|
||
title: this.templatetitle,
|
||
paramsTemplateId: this.rowId || this.selectedRowKeysDate[0].id,
|
||
paramsTemplatePublishVersion: this.version || this.selectedRowKeysDate[0].version,
|
||
projectId: this.projectId
|
||
}
|
||
if (this.rowId) {
|
||
//编辑
|
||
postAction(`params/manifest/edit`, postDate).then(res => {
|
||
if (res.success) {
|
||
this.newVisible = false
|
||
this.$emit('areaVisible', false)
|
||
this.$message.success(this.$t('OperationSuccessful'))
|
||
} else {
|
||
this.$message.warning(res.message)
|
||
}
|
||
}
|
||
).finally(() => {
|
||
this.flag = false
|
||
this.spinLoading = false
|
||
this.newVisible = false
|
||
})
|
||
} else {
|
||
//新增
|
||
postAction(`params/manifest/add`, postDate).then(res => {
|
||
if (res.success) {
|
||
this.newVisible = false
|
||
this.$emit('areaVisible', false)
|
||
this.$message.success(this.$t('OperationSuccessful'))
|
||
} else {
|
||
this.$message.warning(res.message)
|
||
}
|
||
}
|
||
).finally(() => {
|
||
this.flag = false
|
||
this.spinLoading = false
|
||
this.newVisible = false
|
||
})
|
||
}
|
||
} else {
|
||
this.$message.warning(res.message)
|
||
}
|
||
}).finally(() => {
|
||
this.loading = false
|
||
})
|
||
} else {
|
||
return false
|
||
}
|
||
})
|
||
}
|
||
},
|
||
cancelModel() {
|
||
this.newVisible = false
|
||
this.$refs.ruleForm.resetFields()
|
||
},
|
||
//删除按钮
|
||
deleteArea(val) {
|
||
this.$confirm({
|
||
title: this.$t('confirmDeletion'),
|
||
content: '',
|
||
onOk:
|
||
async () => {
|
||
getAction(`tag/onlCgformArea/delete`, { id: val }).then((res) => {
|
||
if (res.success) {
|
||
this.$message.success(this.$t('OperationSuccessful'))
|
||
if (this.areaTable.length == 1 && this.queryParams.pageNo != 1) {
|
||
this.queryParams.pageNo = this.queryParams.pageNo - 1
|
||
}
|
||
this.loadData()
|
||
} else {
|
||
// this.$message.warning(res.message)
|
||
if (res.message == '该展示区域有关联数据,无法删除!') {
|
||
this.$message.warning(this.$t('noDelete'))
|
||
} else {
|
||
this.$message.warning(this.$t('operationFailed'))
|
||
}
|
||
}
|
||
})
|
||
}
|
||
})
|
||
},
|
||
//编辑按钮
|
||
editArea(val) {
|
||
this.title = this.$t('edit')
|
||
this.newVisible = true
|
||
let params = {
|
||
id: val
|
||
}
|
||
getAction(`tag/onlCgformArea/queryById`, params).then((res) => {
|
||
if (res.success) {
|
||
this.form = { ...res.result }
|
||
// this.$emit('updateOk',res.result)
|
||
|
||
}
|
||
})
|
||
}
|
||
},
|
||
watch: {
|
||
paramsManifest(val) {
|
||
this.loadData()
|
||
},
|
||
}
|
||
|
||
}
|
||
</script>
|
||
|
||
<style lang='less' scoped>
|
||
@import '~@assets/less/common.less';
|
||
|
||
.diolag-area {
|
||
.table-area {
|
||
margin: 20px 0;
|
||
|
||
.action-edit {
|
||
margin-right: 10px;
|
||
}
|
||
}
|
||
|
||
.table-del {
|
||
color: red;
|
||
}
|
||
}
|
||
.drawer-bootom-button{
|
||
display: flex;
|
||
justify-content: center;
|
||
}
|
||
</style>
|
||
<style lang='less'>
|
||
.area-module {
|
||
.ant-modal-wrap {
|
||
.ant-modal {
|
||
.ant-modal-content {
|
||
.ant-modal-footer {
|
||
text-align: center;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
</style> |