select
<template>
<div class="sysConfig">
<el-form :model="ruleForm" status-icon :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm">
<el-form-item label="平台同步下载企业">
<template>
<!--select修改值的变化是通过v-model(v-model="ruleForm.compId)来体现的"-->
<!--sysCompanies:是可以数组(里面是字典),可以通过数据库获取,可以是直接赋初始值-->
<el-select v-model="ruleForm.compId">
<el-option
v-for="item in sysCompanies"
:key="item.compName"
:label="item.compName"
:value="item.id">
</el-option>
</el-select>
</template>
</el-form-item>
<el-form-item label="平台同步主机地址" prop="platUrl">
<el-input v-model="ruleForm.platUrl" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="平台加密秘钥" prop="checkPass">
<el-input v-model="ruleForm.platEncryptKey" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="平台访问秘钥" prop="platVisitKey">
<el-input v-model.number="ruleForm.platVisitKey"></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="submitForm('ruleForm')">提交</el-button>
<el-button @click="resetForm('ruleForm')">重置</el-button>
</el-form-item>
</el-form>
</div>
</template>
<script lang="ts">
import {Component, Vue, Provide, Prop} from "vue-property-decorator";
@Component({components: {}})
export default class SysUploadLabel extends Vue {
//select中的值
@Provide() sysCompanies:any=[];
//用于传给后台的值
@Provide() ruleForm: {
platUrl: String,
platEncryptKey: String,
platVisitKey: String
compId:any
} = {
platUrl: '',
platEncryptKey: '',
platVisitKey: '',
compId:''
}
@Provide() rules = {
platUrl: [
{required: true, message: '请填写平台同步主机地址', trigger: 'blur'}
],
platEncryptKey: [
{required: true, message: '请填写平台加密秘钥', trigger: 'blur'}
],
platVisitKey: [
{required: true, message: '请填写平台访问秘钥', trigger: 'blur'}
]
}
submitForm(formName: string | number) {
(this.$refs[formName] as any).validate((valid: any) => {
if (valid) {
(this as any).$axios.updateSysConfig(this.ruleForm).then((res: any) => {
this.$message({
message: '修改成功',
type: 'success'
});
});
} else {
console.log('error submit!!');
return false;
}
});
}
resetForm(formName: string | number) {
this.loadData();
}
created() {
this.loadData();
}
loadData() {
(this as any).$axios.getSysConfig().then((res: any) => {
this.ruleForm.platUrl = res.data.platUrl
this.ruleForm.platVisitKey = res.data.platVisitKey
this.ruleForm.platEncryptKey = res.data.platEncryptKey
this.sysCompanies = res.data.sysCompanies
//赋初始值
this.ruleForm.compId = res.data.compId
});
}
}
</script>
<style scoped>
.sysConfig {
600px;
margin: 0 auto;
margin-top: 100px;
}
</style>
ForEach
this.sysCompanies.forEach((item: any)=>{
})
让input框只能输入数字(效果是输入字母,不会显示在input框中)
<el-input v-model="scope.row.postArea" v-if="scope.row.edit" oninput = "this.value=this.value.replace(/[^d]/g,'')"></el-input> //vue中使用需要加this
点击事件让标签隐藏
<tag v-if="a"></tag> //点击事件后,将a变成false