提交 07a76974 authored 作者: GOD_ZYX's avatar GOD_ZYX

update

上级 ab1be83f
...@@ -37,18 +37,25 @@ export default { ...@@ -37,18 +37,25 @@ export default {
showProgress: true, showProgress: true,
progress: 0, progress: 0,
get: { get: {
action: '/zws/v1/enrollment/profiles?project_id=1001', action: '/zws/v1/enrollment/profiles?project_id=1000',
callback(data) { callback(data) {
data.date_of_starting_to_work = data.date_of_starting_to_work =
data.date_of_starting_to_work + '' data.date_of_starting_to_work + ''
data.city_select_str = '' let arr = []
arr[0] = data.address_province
arr[1] = data.address_city
data.city_select_str = arr.join('-')
console.log(1)
return data return data
} }
}, },
update: { update: {
action: '/zws/v1/enrollment/profiles', action: '/zws/v1/enrollment/profiles',
data: { project_id: 1001 }, data: { project_id: 1000 },
callback(data) { callback(data) {
let arr = data.city_select_str.split('-')
data.address_province = arr[0]
data.address_city = arr[1]
return data return data
} }
}, },
...@@ -151,7 +158,6 @@ export default { ...@@ -151,7 +158,6 @@ export default {
'label': '现居住城市', 'label': '现居住城市',
'label-width': '160px', 'label-width': '160px',
'required': true, 'required': true,
'disabled': false,
'model': 'city_select_str', 'model': 'city_select_str',
'separator': '-', 'separator': '-',
'model-width': '', 'model-width': '',
...@@ -326,7 +332,55 @@ export default { ...@@ -326,7 +332,55 @@ export default {
{ {
id: '0-4', id: '0-4',
title: '学习目的', title: '学习目的',
progress: 0 showProgress: true,
progress: 0,
get: {
action: '/zws/v1/enrollment/answers?project_id=1000',
callback(data) {
let _data = {}
data.forEach((item, i) => {
_data['qid' + (i + 1)] = item.qid
_data['learn_target_0' + (i + 1)] = item.answer
})
return _data
}
},
update: {
action: '/zws/v1/enrollment/answers/batch-upload',
data: { project_id: 1000 },
callback(data) {
let _data = { records: [] }
_data.records.push({ qid: data.qid1, answer: data.learn_target_01 })
_data.records.push({ qid: data.qid2, answer: data.learn_target_02 })
return _data
}
},
form: {
options: {
},
items: [
/* 您为什么要申请索菲亚大学金融方向工商管理硕士项目?(60字以上,1000字以内) */
{
'type': 'textarea-form',
'label': '您为什么要申请索菲亚大学金融方向工商管理硕士项目?(60字以上,1000字以内)',
'labelWidth': 'auto',
'required': true,
'model': 'learn_target_01',
'model-width': '100%',
'placeholder': '您为什么要申请索菲亚大学金融方向工商管理硕士项目?(60字以上,1000字以内)'
},
/* 您的短期和长期职业发展目标是什么?您打算如何达成此愿景?(60字以上,1000字以内) */
{
'type': 'textarea-form',
'label': '您的短期和长期职业发展目标是什么?您打算如何达成此愿景?(60字以上,1000字以内)',
'labelWidth': 'auto',
'required': true,
'model': 'learn_target_02',
'model-width': '100%',
'placeholder': '您的短期和长期职业发展目标是什么?您打算如何达成此愿景?(60字以上,1000字以内)'
}
]
}
}, },
{ {
id: '0-5', id: '0-5',
......
import Vue from 'vue' import Vue from 'vue'
import App from './App.vue' // import App from './App.vue'
// import App from './App-sofia.vue' import App from './App-sofia.vue'
import VueForm from '../src/index' import VueForm from '../src/index'
Vue.use(VueForm) Vue.use(VueForm)
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
:size="item.size" :size="item.size"
> >
<template v-for="(select, index) in selects"> <template v-for="(select, index) in selects">
<el-select v-bind:key="index" :style="{ 'width': item.labelWidth || item['model-width'] || '100px', 'float': 'left', 'marginRight': '10px' }" <el-select v-bind:key="index" :style="{ 'width': item.modelWidth || item['model-width'] || '100px', 'float': 'left', 'marginRight': '10px' }"
v-bind="item['attrs' + index]" v-bind="item['attrs' + index]"
v-on="$listeners" v-on="$listeners"
v-model="select['model']" v-model="select['model']"
...@@ -54,10 +54,12 @@ export default { ...@@ -54,10 +54,12 @@ export default {
}, },
data () { data () {
return { return {
str: '', // 记录一下
selects: [] // 动态添加,当前显示的选择框个数 selects: [] // 动态添加,当前显示的选择框个数
} }
}, },
mounted () { mounted () {
if (this.str === '') {
/* 按照配置项,解析返回数据 */ /* 按照配置项,解析返回数据 */
let _data = this.formData[this.item.model] let _data = this.formData[this.item.model]
let arr = [] let arr = []
...@@ -70,6 +72,7 @@ export default { ...@@ -70,6 +72,7 @@ export default {
for (let i = 0; i <= arr.length; i++) { for (let i = 0; i <= arr.length; i++) {
this.isSelectChange(i, arr[i + 1] || '') this.isSelectChange(i, arr[i + 1] || '')
} }
}
}, },
methods: { methods: {
/* 解析地址 */ /* 解析地址 */
...@@ -87,13 +90,17 @@ export default { ...@@ -87,13 +90,17 @@ export default {
/* 是否选择 */ /* 是否选择 */
isSelectChange (index, val) { isSelectChange (index, val) {
let json = address let json = address
for (let i = 0; i <= index; i++) { let i = 0
for (; i <= index; i++) {
/* 当前选中的 value值 */ /* 当前选中的 value值 */
let tempVal = this.selects[i].model let tempVal = this.selects[i] && this.selects[i].model
if (tempVal && json[tempVal] && json[tempVal].name) { if (tempVal && json[tempVal] && json[tempVal].name) {
json = json[tempVal] json = json[tempVal]
} else {
break
} }
} }
if (i <= index) { return }
/* 删除后续selects数据 */ /* 删除后续selects数据 */
for (let j = index + 1; j < this.selects.length;) { for (let j = index + 1; j < this.selects.length;) {
this.selects.splice(j) this.selects.splice(j)
...@@ -107,7 +114,31 @@ export default { ...@@ -107,7 +114,31 @@ export default {
for (let k = 0; k < this.selects.length; k++) { for (let k = 0; k < this.selects.length; k++) {
arr.push(this.selects[k].model) arr.push(this.selects[k].model)
} }
this.formData[this.item.model] = arr.join(this.item.separator) this.formData[this.item.model] = this.str = arr.join(this.item.separator)
}
},
watch: {
formData: {
immediate: true,
deep: true,
handler (value) {
/* 单独处理 - ajax结果在组件渲染之后 */
if (value[this.item.model] && this.str === '' && value[this.item.model] !== this.str) {
this.str = value[this.item.model]
let _data = this.str
this.selects = []
let arr = []
if (_data) {
arr = _data.split(this.item.separator)
}
/* 回显 */
this.analysisAddress(address, 0, arr[0] || '')
/* 第一个选项为空 */
for (let i = 0; i <= arr.length; i++) {
this.isSelectChange(i, arr[i + 1] || '')
}
}
}
} }
} }
} }
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
:rules="item.rules || []" :rules="item.rules || []"
:size="item.size" :size="item.size"
> >
<el-date-picker :style="{ width: item.labelWidth || item['model-width'] || '100%' }" <el-date-picker :style="{ width: item.modelWidth || item['model-width'] || '100%' }"
:type="item.elemType || 'date'" :type="item.elemType || 'date'"
v-bind="item.attrs" v-bind="item.attrs"
v-on="$listeners" v-on="$listeners"
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
:rules="item.rules || []" :rules="item.rules || []"
:size="item.size" :size="item.size"
> >
<el-date-picker :style="{ width: item.labelWidth || item['model-width'] || '100%' }" <el-date-picker :style="{ width: item.modelWidth || item['model-width'] || '100%' }"
:type="item.elemType || 'daterange'" :type="item.elemType || 'daterange'"
v-bind="item.attrs" v-bind="item.attrs"
v-on="$listeners" v-on="$listeners"
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
:rules="item.rules || []" :rules="item.rules || []"
:size="item.size" :size="item.size"
> >
<el-input :style="{ width: item.labelWidth || item['model-width'] || '100%' }" <el-input :style="{ width: item.modelWidth || item['model-width'] || '100%' }"
v-bind="item.attrs || {}" v-bind="item.attrs || {}"
v-on="$listeners" v-on="$listeners"
v-model="formData[item.model]" v-model="formData[item.model]"
......
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
v-bind="item.attrs" v-bind="item.attrs"
v-on="$listeners" v-on="$listeners"
v-model="formData[item.model]" v-model="formData[item.model]"
:style="{ width: item.labelWidth || item['model-width'] || '100%' }" :style="{ width: item.modelWidth || item['model-width'] || '100%' }"
:disabled="item.disabled || false" :disabled="item.disabled || false"
> >
<el-radio <el-radio
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
:rules="item.rules || []" :rules="item.rules || []"
:size="item.size" :size="item.size"
> >
<el-select :style="{ width: item.labelWidth || item['model-width'] || '100%' }" <el-select :style="{ width: item.modelWidth || item['model-width'] || '100%' }"
v-bind="item.attrs" v-bind="item.attrs"
v-on="$listeners" v-on="$listeners"
v-model="formData[item.model]" v-model="formData[item.model]"
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
:rules="item.rules || []" :rules="item.rules || []"
:size="item.size" :size="item.size"
> >
<el-input :style="{ width: item.labelWidth || item['model-width'] || '100%' }" <el-input :style="{ width: item.modelWidth || item['model-width'] || '100%' }"
type="textarea" type="textarea"
:rows="item.rows || 3" :rows="item.rows || 3"
v-bind="item.attrs || {}" v-bind="item.attrs || {}"
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论