Files
base/jero-web/src/views/system/modules/TenantForm.vue
T

173 lines
5.0 KiB
Java

<template>
<a-spin :spinning="confirmLoading">
<j-form-container :disabled="formDisabled">
<a-form-model ref="form" :model="model" slot="detail" :rules="validatorRules">
<a-row>
<a-col :span="24">
<a-form-model-item label="租户名称" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input v-model="model.name" placeholder="请输入租户名称"></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="租户编号" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="id">
<a-input-number style="width: 100%" :min="1" v-model="model.id" placeholder="请输入租户编号" :disabled="disabledId"></a-input-number>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="开始时间" :labelCol="labelCol" :wrapperCol="wrapperCol">
<j-date placeholder="请选择开始时间" v-model="model.beginDate" :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" style="width: 100%"/>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="结束时间" :labelCol="labelCol" :wrapperCol="wrapperCol">
<j-date placeholder="请选择结束时间" v-model="model.endDate" :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" style="width: 100%"/>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="状态" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-radio-group name="tenantStatus" v-model="model.status">
<a-radio :value="1">正常</a-radio>
<a-radio :value="0">冻结</a-radio>
</a-radio-group>
</a-form-model-item>
</a-col>
<a-col v-if="showFlowSubmitButton" :span="24" style="text-align: center">
<a-button @click="submitForm"> </a-button>
</a-col>
</a-row>
</a-form-model>
</j-form-container>
</a-spin>
</template>
<script>
import { httpAction, getAction } from '@/api/manage'
// import { validateDuplicateValue } from '@/utils/util'
import JFormContainer from '@/components/jero/JFormContainer'
import JDate from '@/components/jero/JDate'
export default {
name: 'TenantForm',
components: {
JFormContainer,
JDate
},
props: {
formData: {
type: Object,
default: () => {},
required: false
},
normal: {
type: Boolean,
default: false,
required: false
},
disabled: {
type: Boolean,
default: false,
required: false
}
},
data () {
return {
model: { status: 1 },
id: '',
labelCol: {
xs: { span: 24 },
sm: { span: 5 }
},
wrapperCol: {
xs: { span: 24 },
sm: { span: 16 }
},
confirmLoading: false,
validatorRules: {
id: [{ required: true, message: '请输入租户编号!' }]
},
url: {
add: '/sys/tenant/add',
edit: '/sys/tenant/edit',
queryById: '/sys/tenant/queryById'
}
}
},
computed: {
formDisabled () {
if (this.normal === false) {
return this.formData.disabled !== false
}
return this.disabled
},
disabledId () {
return !!this.id
},
showFlowSubmitButton () {
if (this.normal === false) {
return this.formData.disabled === false
} else {
return false
}
}
},
created () {
this.showFlowData()
},
methods: {
show (record) {
this.model = record ? Object.assign({}, record) : this.model
this.id = record ? record.id : ''
this.visible = true
},
showFlowData () {
if (this.normal === false) {
const params = { id: this.formData.dataId }
getAction(this.url.queryById, params).then((res) => {
if (res.success) {
this.edit(res.result)
}
})
}
},
submitForm () {
const that = this
// 触发表单验证
that.$refs.form.validate(valid => {
if (valid) {
that.confirmLoading = true
let httpurl = ''
const method = 'post'
if (!this.id) {
httpurl += this.url.add
// method = 'post'
} else {
httpurl += this.url.edit
// method = 'put'
}
httpAction(httpurl, this.model, method).then((res) => {
if (res.success) {
that.$message.success(res.message)
that.$emit('ok')
} else {
if (res.message === '该编号已存在!') {
this.model.id = ''
}
that.$message.warning(res.message)
}
}).finally(() => {
that.confirmLoading = false
})
} else {
return false
}
})
},
popupCallback (row) {
this.model = Object.assign(this.model, row)
}
}
}
</script>