Commit e8e112af authored by 王康's avatar 王康

form

parent 7464f8a2
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
v-model="formModel[column.codeCamel]"></el-input>--> v-model="formModel[column.codeCamel]"></el-input>-->
<!-- 富文本 --> <!-- 富文本 -->
<quill-editor v-if="column.widgetType==='richText'" <quill-editor v-if="column.widgetType === 5"
ref="textEditor" ref="textEditor"
v-model="formModel[column.codeCamel]" v-model="formModel[column.codeCamel]"
:options="editorOption" :options="editorOption"
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
@ready="onEditorReady($event)"> @ready="onEditorReady($event)">
</quill-editor> </quill-editor>
<!-- 日期选择 --> <!-- 日期选择 -->
<el-date-picker v-else-if="column.type === 'datetime' || column.codeCamel === 'date'" <el-date-picker v-else-if="column.type === 'datetime' || column.type === 'date'"
v-model="formModel[column.codeCamel]" v-model="formModel[column.codeCamel]"
type="datetime" type="datetime"
align="right" align="right"
...@@ -31,7 +31,7 @@ ...@@ -31,7 +31,7 @@
:picker-options="pickerOptions"> :picker-options="pickerOptions">
</el-date-picker> </el-date-picker>
<!-- 下拉框 --> <!-- 下拉框 -->
<el-select v-else-if="column.widgetType === 'selectType'" v-model="formModel[column.codeCamel]"> <el-select v-else-if="column.widgetType === 2" v-model="formModel[column.codeCamel]">
<el-option v-for="item in selectOptions" <el-option v-for="item in selectOptions"
:key="item.value" :key="item.value"
:label="item.label" :label="item.label"
...@@ -39,13 +39,13 @@ ...@@ -39,13 +39,13 @@
</el-option> </el-option>
</el-select> </el-select>
<!-- 文本域 --> <!-- 文本域 -->
<el-input v-else-if="column.widgetType === 'textarea'" v-model="formModel[column.codeCamel]" <el-input v-else-if="column.widgetType === 4" v-model="formModel[column.codeCamel]"
type="textarea" type="textarea"
:autosize="{ minRows: 2, maxRows: 5}" :autosize="{ minRows: 2, maxRows: 5}"
:rows="2"> :rows="2">
</el-input> </el-input>
<!-- 复选框 --> <!-- 复选框 -->
<el-checkbox v-else-if="column.widgetType === 'checkbox'" v-model="formModel[column.codeCamel]"></el-checkbox> <el-checkbox v-else-if="column.widgetType === 3" v-model="formModel[column.codeCamel]"></el-checkbox>
<!-- 普通input --> <!-- 普通input -->
<el-input v-else v-model="formModel[column.codeCamel]"></el-input> <el-input v-else v-model="formModel[column.codeCamel]"></el-input>
</el-form-item> </el-form-item>
...@@ -95,7 +95,7 @@ ...@@ -95,7 +95,7 @@
required: true required: true
}, },
/** /**
* 指定要显示的字段。默认为根据schema得到的所有字段。 * 指定要显示的表单字段及类型。默认为根据schema得到的所有字段。
*/ */
columns: { columns: {
type: Array, type: Array,
...@@ -271,37 +271,31 @@ ...@@ -271,37 +271,31 @@
self.$set(tmp, 'code', tmp.code.toLowerCase()) self.$set(tmp, 'code', tmp.code.toLowerCase())
self.showUserColumns.push(tmp) self.showUserColumns.push(tmp)
}) })
// console.log(self.showUserColumns) } else { // 传了columns,则只显示传入的字段
} else { // columns,则只显示传入的字段
self.showUserColumns = JSON.parse(JSON.stringify(self.columns)) self.showUserColumns = JSON.parse(JSON.stringify(self.columns))
// console.log('1111111')
console.log(self.showUserColumns) console.log(self.showUserColumns)
// 将字符串对象进行替换处理 // 将字符串对象进行替换处理
_.each(self.showUserColumns, function(column, index) { _.each(self.showUserColumns, function(column, index) {
if (typeof column === 'string') { if (typeof column === 'object') {
// 生成一个新对象 // 生成一个新对象
// const tmp = _.keyBy(self.schema['columns'], 'code')[column.toUpperCase()] const tmp = _.keyBy(self.schema['columns'], 'codeCamel')[column.name]
const tmp = _.keyBy(self.schema['columns'], 'codeCamel')[column]
self.$set(tmp, 'code', tmp.code.toLowerCase()) self.$set(tmp, 'code', tmp.code.toLowerCase())
self.$set(tmp, 'widgetType', column.widgetType || 1)
self.$set(tmp, 'options', column.options)
self.$set(self.showUserColumns, index, tmp) self.$set(self.showUserColumns, index, tmp)
console.log(self.showUserColumns)
} }
}) })
// console.log('2222222')
// console.log(self.showUserColumns) // console.log(self.showUserColumns)
} }
// 提取v-model绑定的变量 // 提取v-model绑定的变量
_.each(self.showUserColumns, function(item) { _.each(self.showUserColumns, function(item) {
// self.formModel[item.codeCamel] = '' 这样写有问题
self.$set(self.formModel, item.codeCamel, '') self.$set(self.formModel, item.codeCamel, '')
}) })
// 修改请求地址
self.requestUrl = self.schema.modelUnderscore.slice(0, -1) + 's'
// console.log(self.formModel)
if (!request.defaults.baseURL) { if (!request.defaults.baseURL) {
request.defaults.baseURL = '/org/api' request.defaults.baseURL = '/org/api'
} }
console.log(request.defaults)
}, },
// 提交 // 提交
/** /**
...@@ -319,7 +313,7 @@ ...@@ -319,7 +313,7 @@
console.log('提交成功!') console.log('提交成功!')
// 存在tableId 则修改信息 // 存在tableId 则修改信息
if (self.tableId) { if (self.tableId) {
request(self.requestUrl + '/' + self.tableId + '/edit', { request(self.schema.modelUnderscorePlural + '/' + self.tableId + '/edit', {
method: 'post', method: 'post',
headers: { 'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8' }, headers: { 'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8' },
data: self.formModel, data: self.formModel,
...@@ -340,7 +334,7 @@ ...@@ -340,7 +334,7 @@
self.resetForm() self.resetForm()
}) })
} else { // 不存在tableId 则创建一条数据 } else { // 不存在tableId 则创建一条数据
request(self.requestUrl + '/new', { request(self.schema.modelUnderscorePlural + '/new', {
method: 'post', method: 'post',
headers: { 'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8' }, headers: { 'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8' },
data: self.formModel, data: self.formModel,
......
...@@ -20,7 +20,8 @@ ...@@ -20,7 +20,8 @@
data() { data() {
return { return {
// showUserColumns: ['username', 'loginid', 'password', 'mobile', 'email', 'createTime'] // showUserColumns: ['username', 'loginid', 'password', 'mobile', 'email', 'createTime']
showUserColumns: [] // widgetType值 1:普通input 2:下拉框 (如果是下拉框 再传一个options表示下拉框选项)3:复选框 4:文本域 5:富文本 6:日期
showUserColumns: [{ name: 'username', widgetType: 1 }, { name: 'securityLevel', widgetType: 5 }, { name: 'type', widgetType: 2, options: ['企业', '代理商'] }, { name: 'avatar', widgetType: 3 }, { name: 'departmentId', widgetType: 4 }, { name: 'createTime', widgetType: 6 }]
} }
}, },
computed: { computed: {
......
...@@ -2981,8 +2981,7 @@ const ModelSchema = { ...@@ -2981,8 +2981,7 @@ const ModelSchema = {
'codeCamelPlural': 'avatars', 'codeCamelPlural': 'avatars',
'codeUnderscore': 'avatar', 'codeUnderscore': 'avatar',
'codeUnderscorePlural': 'avatars', 'codeUnderscorePlural': 'avatars',
'type': 'string', 'type': 'string'
'widgetType': 'checkbox'
}, },
{ {
'id': 'o335', 'id': 'o335',
...@@ -3046,8 +3045,7 @@ const ModelSchema = { ...@@ -3046,8 +3045,7 @@ const ModelSchema = {
'codeCamelPlural': 'securityLevels', 'codeCamelPlural': 'securityLevels',
'codeUnderscore': 'security_level', 'codeUnderscore': 'security_level',
'codeUnderscorePlural': 'security_levels', 'codeUnderscorePlural': 'security_levels',
'type': 'number', 'type': 'number'
'widgetType': 'richText'
}, },
{ {
'id': 'o339', 'id': 'o339',
...@@ -3064,8 +3062,7 @@ const ModelSchema = { ...@@ -3064,8 +3062,7 @@ const ModelSchema = {
'codeCamelPlural': 'types', 'codeCamelPlural': 'types',
'codeUnderscore': 'type', 'codeUnderscore': 'type',
'codeUnderscorePlural': 'types', 'codeUnderscorePlural': 'types',
'type': 'number', 'type': 'number'
'widgetType': 'selectType'
}, },
{ {
'id': 'o340', 'id': 'o340',
...@@ -3082,8 +3079,7 @@ const ModelSchema = { ...@@ -3082,8 +3079,7 @@ const ModelSchema = {
'codeCamelPlural': 'departmentIds', 'codeCamelPlural': 'departmentIds',
'codeUnderscore': 'department_id', 'codeUnderscore': 'department_id',
'codeUnderscorePlural': 'department_ids', 'codeUnderscorePlural': 'department_ids',
'type': 'string', 'type': 'string'
'widgetType': 'textarea'
} }
] ]
}, },
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment