|
@@ -74,21 +74,32 @@
|
|
|
:visible.sync="visible"
|
|
|
@close="cancel">
|
|
|
<el-form :model="form" ref="form" @keyup.enter.native="formSubmit()" label-width="80px">
|
|
|
- <el-form-item label="牧场名称" prop="name">
|
|
|
+ <el-form-item label="牧场名称">
|
|
|
<el-input v-model="form.name" placeholder="牧场名称"></el-input>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="管理员" prop="manager">
|
|
|
+ <el-form-item label="管理员">
|
|
|
<el-input v-model="form.manager" placeholder="牧场管理员"></el-input>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="地址" prop="location">
|
|
|
- <el-input v-model="form.location" placeholder="地址"></el-input>
|
|
|
+ <el-form-item label="省市区">
|
|
|
+ <el-cascader
|
|
|
+ size="large"
|
|
|
+ :options="options"
|
|
|
+ v-model="selectedOptions"
|
|
|
+ @change="getlocation"
|
|
|
+ placeholder="请选择省市区"
|
|
|
+ style="width: 100%">
|
|
|
+ </el-cascader>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="具体地址">
|
|
|
+ <el-input v-model="form.location2" placeholder="地址"></el-input>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="日期" prop="buildTime">
|
|
|
<el-date-picker
|
|
|
v-model="form.buildTime"
|
|
|
type="date"
|
|
|
value-format="yyyy-MM-dd"
|
|
|
- placeholder="选择日期">
|
|
|
+ placeholder="选择日期"
|
|
|
+ style="width: 100%">
|
|
|
</el-date-picker>
|
|
|
</el-form-item>
|
|
|
</el-form>
|
|
@@ -100,6 +111,7 @@
|
|
|
</div>
|
|
|
</template>
|
|
|
<script>
|
|
|
+import { regionData, CodeToText } from "element-china-area-data"
|
|
|
export default {
|
|
|
data () {
|
|
|
return {
|
|
@@ -123,11 +135,14 @@ export default {
|
|
|
visible: false,
|
|
|
form: {
|
|
|
id: '',
|
|
|
- location: '',
|
|
|
+ location1: '',
|
|
|
+ location2: '',
|
|
|
manager: '',
|
|
|
name: '',
|
|
|
buildTime: ''
|
|
|
- }
|
|
|
+ },
|
|
|
+ options: regionData,
|
|
|
+ selectedOptions: []
|
|
|
}
|
|
|
},
|
|
|
created () {
|
|
@@ -162,6 +177,16 @@ export default {
|
|
|
this.pageIndex = 1
|
|
|
this.getDataList()
|
|
|
},
|
|
|
+ // 获取地址
|
|
|
+ getlocation () {
|
|
|
+ var loc = "";
|
|
|
+ this.form.location1 = ''
|
|
|
+ for (let i = 0; i < this.selectedOptions.length; i++) {
|
|
|
+ loc += CodeToText[this.selectedOptions[i]];
|
|
|
+ this.form.location1 += this.selectedOptions[i] + ','
|
|
|
+ }
|
|
|
+ console.log('当前地址为' + loc);
|
|
|
+ },
|
|
|
// 当前页
|
|
|
currentChangeHandle (val) {
|
|
|
this.pageIndex = val
|
|
@@ -229,6 +254,10 @@ export default {
|
|
|
if (!this.confirmComplete()) {
|
|
|
return
|
|
|
}
|
|
|
+ // 输入长度是否合法
|
|
|
+ if (!this.confirmLength()) {
|
|
|
+ return
|
|
|
+ }
|
|
|
// 输入是否合法
|
|
|
if (!this.confirmInput()) {
|
|
|
return
|
|
@@ -263,6 +292,10 @@ export default {
|
|
|
if (!this.confirmComplete(1)) {
|
|
|
return
|
|
|
}
|
|
|
+ // 输入长度是否合法
|
|
|
+ if (!this.confirmLength()) {
|
|
|
+ return
|
|
|
+ }
|
|
|
// 输入是否合法
|
|
|
if (!this.confirmInput()) {
|
|
|
return
|
|
@@ -306,6 +339,7 @@ export default {
|
|
|
},
|
|
|
// 校验输入是否完整
|
|
|
validComplete (val) {
|
|
|
+ this.form.location = this.form.location1 + this.form.location2
|
|
|
val && (delete this.form.id, delete this.form.deleted, delete this.form.gmtCreate, delete this.form.gmtModified)
|
|
|
for (let i in this.form) {
|
|
|
if (!this.form[i].toString()) {
|
|
@@ -316,10 +350,11 @@ export default {
|
|
|
},
|
|
|
// 如不完整,则提示
|
|
|
confirmComplete (val) {
|
|
|
+ console.log(this.form);
|
|
|
if (this.validComplete(val)) {
|
|
|
return true
|
|
|
}
|
|
|
- this.$confirm(`请输入完整`, '提示', {
|
|
|
+ this.$confirm(`所有项均为必填项`, '提示', {
|
|
|
confirmButtonText: '确定',
|
|
|
cancelButtonText: '取消',
|
|
|
type: 'warning'
|
|
@@ -338,7 +373,15 @@ export default {
|
|
|
if (reg.test(this.form.manager)) {
|
|
|
return false
|
|
|
}
|
|
|
- if (reg.test(this.form.location)) {
|
|
|
+ // TODO:牧场管理-新增-地址的正则表达式
|
|
|
+ // 只允许中文、字母、标点输入
|
|
|
+ // if (reg.test(this.form.location)) {
|
|
|
+ // return false
|
|
|
+ // }
|
|
|
+ console.log(this.form.location2);
|
|
|
+ const reg1 = /[^\a-\z\A-\Z\u4E00-\u9FA5\!\!]/g
|
|
|
+ console.log(reg1.test(this.form.location2));
|
|
|
+ if (reg1.test(this.form.location2)) {
|
|
|
return false
|
|
|
}
|
|
|
return true
|
|
@@ -356,6 +399,30 @@ export default {
|
|
|
console.log('输入不合法');
|
|
|
}).catch(() => {})
|
|
|
return false
|
|
|
+ },
|
|
|
+ // 长度校验
|
|
|
+ validLength () {
|
|
|
+ if (this.form.name.length > 50) {
|
|
|
+ return false
|
|
|
+ }
|
|
|
+ if (this.form.manager.length > 5) {
|
|
|
+ return false
|
|
|
+ }
|
|
|
+ return true
|
|
|
+ },
|
|
|
+ // 如长度不合法,则提示
|
|
|
+ confirmLength () {
|
|
|
+ if (this.validLength()) {
|
|
|
+ return true
|
|
|
+ }
|
|
|
+ this.$confirm(`牧场名称长度限制50,管理员姓名长度限制5`, '提示', {
|
|
|
+ confirmButtonText: '确定',
|
|
|
+ cancelButtonText: '取消',
|
|
|
+ type: 'warning'
|
|
|
+ }).then(() => {
|
|
|
+ console.log('输入不合法');
|
|
|
+ }).catch(() => {})
|
|
|
+ return false
|
|
|
}
|
|
|
}
|
|
|
}
|