Commit 2dea04e7 authored by 杨柠瑞's avatar 杨柠瑞

coding

parents 69a51d5e 579533ff
This diff is collapsed.
...@@ -28,6 +28,8 @@ ...@@ -28,6 +28,8 @@
<el-date-picker v-if="column.widgetType === 6 || column.type === 'datetime' || column.type === 'date'" <el-date-picker v-if="column.widgetType === 6 || column.type === 'datetime' || column.type === 'date'"
v-model="formModel[column.codeCamel]" v-model="formModel[column.codeCamel]"
:style="formStyle && formStyle.datePicker && formStyle.datePicker.style || {width: '65%'}" :style="formStyle && formStyle.datePicker && formStyle.datePicker.style || {width: '65%'}"
:ref="column.ref || ''"
:readonly="column.readonly"
:type="column.dateType || 'date'" :type="column.dateType || 'date'"
align="right" :disabled="column.disabled" align="right" :disabled="column.disabled"
@change="column.change && column.change($event)" @change="column.change && column.change($event)"
...@@ -36,6 +38,7 @@ ...@@ -36,6 +38,7 @@
</el-date-picker> </el-date-picker>
<!-- 3 下拉框 --> <!-- 3 下拉框 -->
<el-select v-else-if="column.widgetType === 2" <el-select v-else-if="column.widgetType === 2"
:ref="column.ref || ''"
v-model="formModel[column.codeCamel]" v-model="formModel[column.codeCamel]"
@change="column.change && column.change($event)" @change="column.change && column.change($event)"
:style="formStyle && formStyle.select && formStyle.select.style || {width: '65%'}" :style="formStyle && formStyle.select && formStyle.select.style || {width: '65%'}"
...@@ -51,6 +54,8 @@ ...@@ -51,6 +54,8 @@
</el-select> </el-select>
<!-- 4 文本域 --> <!-- 4 文本域 -->
<el-input v-else-if="column.widgetType === 4" <el-input v-else-if="column.widgetType === 4"
:ref="column.ref || ''"
:readonly="column.readonly"
:style="formStyle && formStyle.textarea && formStyle.textarea.style || {width: '65%'}" :style="formStyle && formStyle.textarea && formStyle.textarea.style || {width: '65%'}"
v-model="formModel[column.codeCamel]" v-model="formModel[column.codeCamel]"
type="textarea" :disabled="column.disabled" type="textarea" :disabled="column.disabled"
...@@ -61,11 +66,13 @@ ...@@ -61,11 +66,13 @@
<!-- 5 复选框 --> <!-- 5 复选框 -->
<el-checkbox v-else-if="column.widgetType === 3 && !column.options" <el-checkbox v-else-if="column.widgetType === 3 && !column.options"
v-model="formModel[column.codeCamel]" v-model="formModel[column.codeCamel]"
:ref="column.ref || ''"
:disabled="column.disabled" :disabled="column.disabled"
@change="column.change && column.change($event)" @change="column.change && column.change($event)"
true-label="1" false-label="0"></el-checkbox> true-label="1" false-label="0"></el-checkbox>
<el-checkbox-group v-else-if="column.widgetType === 3 && column.options" <el-checkbox-group v-else-if="column.widgetType === 3 && column.options"
v-model="formModel[column.codeCamel]" v-model="formModel[column.codeCamel]"
:ref="column.ref || ''"
:disabled="column.disabled" :disabled="column.disabled"
@change="column.change && column.change($event)"> @change="column.change && column.change($event)">
<el-checkbox v-for="option in column.options" <el-checkbox v-for="option in column.options"
...@@ -73,7 +80,7 @@ ...@@ -73,7 +80,7 @@
</el-checkbox-group> </el-checkbox-group>
<!-- 6 富文本 --> <!-- 6 富文本 -->
<quill-editor v-else-if="column.widgetType === 5" <quill-editor v-else-if="column.widgetType === 5"
ref="textEditor" :disabled="column.disabled" :ref="column.ref || ''" :disabled="column.disabled"
v-model="formModel[column.codeCamel]" v-model="formModel[column.codeCamel]"
:style="formStyle && formStyle.quillEditor && formStyle.quillEditor.style || {width:'65%'}" :style="formStyle && formStyle.quillEditor && formStyle.quillEditor.style || {width:'65%'}"
:options="editorOption" :options="editorOption"
...@@ -97,7 +104,7 @@ ...@@ -97,7 +104,7 @@
:on-remove="handleRemove" :on-remove="handleRemove"
:file-list="fileList" :file-list="fileList"
:multiple="column.multiple" :multiple="column.multiple"
ref="upload" :ref="column.ref || ''"
:on-success="uploadSuccess"> :on-success="uploadSuccess">
<el-button slot="trigger" size="small" type="primary" <el-button slot="trigger" size="small" type="primary"
:disabled="column.disabled">选取文件</el-button> :disabled="column.disabled">选取文件</el-button>
...@@ -107,7 +114,9 @@ ...@@ -107,7 +114,9 @@
:style="formStyle && formStyle.input && formStyle.input.style || {width:'65%'}" :style="formStyle && formStyle.input && formStyle.input.style || {width:'65%'}"
v-model="formModel[column.codeCamel]" v-model="formModel[column.codeCamel]"
:disabled="column.disabled" :disabled="column.disabled"
@change="column.change && column.change($event)"></el-input> :readonly="column.readonly"
:ref="column.ref || ''"
@change="column.change && column.change($event,formModel)"></el-input>
</el-form-item> </el-form-item>
<!--按钮--> <!--按钮-->
<el-form-item v-if="buttons && buttons.length > 0"> <el-form-item v-if="buttons && buttons.length > 0">
...@@ -172,6 +181,7 @@ ...@@ -172,6 +181,7 @@
* change属性可选,值为函数类型,表示input的change事件的执行方法,参数即为input输入内容 * change属性可选,值为函数类型,表示input的change事件的执行方法,参数即为input输入内容
* default属性可选(复选框不支持),设置默认值,取值规范参考form/index.vue * default属性可选(复选框不支持),设置默认值,取值规范参考form/index.vue
* hide属性可选,设置该表单字段是否显示,值为boolean * hide属性可选,设置该表单字段是否显示,值为boolean
* ref属性可选,用来获取当前表单dom节点
* widgetType属性可选,表示该字段要显示的表单类型(普通输入框、文本域、富文本、下拉框...),不传默认为普通input * widgetType属性可选,表示该字段要显示的表单类型(普通输入框、文本域、富文本、下拉框...),不传默认为普通input
* 取值1-8(1表示普通输入框,2表示下拉框,3表示复选框,4表示文本域,5表示富文本,6表示日期,7表示单选框,8表示文件上传), * 取值1-8(1表示普通输入框,2表示下拉框,3表示复选框,4表示文本域,5表示富文本,6表示日期,7表示单选框,8表示文件上传),
* 若表单类型为下拉框/复选框/单选框,还需传入options字段,值为数组(数组元素是下拉框/复选框/单选框的选项), * 若表单类型为下拉框/复选框/单选框,还需传入options字段,值为数组(数组元素是下拉框/复选框/单选框的选项),
...@@ -464,7 +474,7 @@ ...@@ -464,7 +474,7 @@
// 上传成功的回调函数 // 上传成功的回调函数
uploadSuccess(response, file, fileList) { uploadSuccess(response, file, fileList) {
const self = this const self = this
console.log('上传成功') // console.log('上传成功')
// console.log(response) // console.log(response)
// console.log('fileList', fileList) // console.log('fileList', fileList)
// console.log(self.fileList) // console.log(self.fileList)
...@@ -472,12 +482,13 @@ ...@@ -472,12 +482,13 @@
if (item.widgetType === 8) { if (item.widgetType === 8) {
_.forEach(self.formModel, function(value, key) { _.forEach(self.formModel, function(value, key) {
if (item.codeCamel === key) { if (item.codeCamel === key) {
self.formModel[key] = response.message || response.visitName // self.formModel[key] = response.message || response.visitName
self.formModel[key] = response.visitName + '/' + response.saveName
} }
}) })
} }
}) })
// console.log(404, self.formModel) console.log('formModel', self.formModel)
}, },
// inputChange(val) { // inputChange(val) {
// // console.log(event) // // console.log(event)
......
...@@ -171,9 +171,10 @@ ...@@ -171,9 +171,10 @@
this.tableId = 'b08d2220d2574bf2ac09ec4f470ed999' this.tableId = 'b08d2220d2574bf2ac09ec4f470ed999'
}, },
methods: { methods: {
inputChange(val) { inputChange(val, formModel) {
// console.log(event)
console.log(val) console.log(val)
console.log(formModel)
// formModel.email = val.length
}, },
processData(object, isCancel) { processData(object, isCancel) {
isCancel.cancelSubmit = false // 如果要取消提交,设为true isCancel.cancelSubmit = false // 如果要取消提交,设为true
......
...@@ -108,11 +108,11 @@ ...@@ -108,11 +108,11 @@
<el-table-column type="selection" width="55" v-if="isShowSelection"></el-table-column> <el-table-column type="selection" width="55" v-if="isShowSelection"></el-table-column>
<el-table-column v-for="(column,index) in showColumns" :key="index" align="center" :label="column.name" <el-table-column v-for="(column,index) in showColumns" :key="index" align="center" :label="column.name"
:prop="column.codeCamel" :sortable="column.isSort" :width="column.width" :show-overflow-tooltip="showOverflowTooltip"> :prop="column.codeCamel" :sortable="column.isSort" :width="column.width" :show-overflow-tooltip="showOverflowTooltip">
<template slot-scope="scope"> <template slot-scope="scope">
<span v-if="(scope.row[column.codeCamel] !== false && scope.row[column.codeCamel] !== true )&& !column.render">{{ scope.row[column.codeCamel] }}</span> <span v-if="(scope.row[column.codeCamel] !== false && scope.row[column.codeCamel] !== true )&& !column.render">{{ scope.row[column.codeCamel] }}</span>
<el-checkbox v-if="(scope.row[column.codeCamel] === false || scope.row[column.codeCamel] === true) && !column.render" v-model="scope.row[column.codeCamel]"></el-checkbox> <el-checkbox v-if="(scope.row[column.codeCamel] === false || scope.row[column.codeCamel] === true) && !column.render" v-model="scope.row[column.codeCamel]"></el-checkbox>
<span v-if='column.render' v-html="column.render(scope)"></span> <span v-if='column.render' v-html="column.render(scope)"></span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column fixed="right" label="操作" :width="operationWidth" v-if="isShowEditDataButton || isShowDeleteButton || definedOperation.length"> <el-table-column fixed="right" label="操作" :width="operationWidth" v-if="isShowEditDataButton || isShowDeleteButton || definedOperation.length">
<template slot-scope="scope"> <template slot-scope="scope">
...@@ -290,7 +290,7 @@ ...@@ -290,7 +290,7 @@
* "sortItem": "create_time", // 默认为create_time字段的desc排序 * "sortItem": "create_time", // 默认为create_time字段的desc排序
* "sortOrder": "desc", * "sortOrder": "desc",
* "isShowPagination": true, //默认显示分页 * "isShowPagination": true, //默认显示分页
i * "sShowSearch": true, //默认显示搜索按钮 * "isShowSearch": true, //默认显示搜索按钮
* "showRefresh": false, //默认不显示刷新按钮 * "showRefresh": false, //默认不显示刷新按钮
* "showDeleteButton": false, //默认不显示删除按钮 * "showDeleteButton": false, //默认不显示删除按钮
* "buttonGroup": false //默认不以按钮组的方式呈现button * "buttonGroup": false //默认不以按钮组的方式呈现button
......
...@@ -14,15 +14,22 @@ ...@@ -14,15 +14,22 @@
</el-col> </el-col>
</div> </div>
</el-row> --> </el-row> -->
<swiper :options="swiperOption" style="padding: 20px 30px 0"> <swiper :options="swiperOption" style="padding: 0 30px 0">
<swiper-slide v-for="(column,index) in schema['columns']" :key="index"> <swiper-slide v-for="(tab,index) in tabData" :key="index">
<el-tabs v-model="activeName" @tab-click="handleClick" type="border-card"> <el-tabs v-model="activeName" @tab-click="handleClick" type="border-card">
<el-tab-pane :label="column.name" name="first"> <!--<el-tab-pane :label="tab.title" name="first" style="min-height: 54px">-->
<ul style="list-style: none;margin: 0;padding: 0;"> <!--<ul style="list-style: none;margin: 0;padding: 0;">-->
<li>第1条数据</li> <!--<li v-for="data in tab.column" class="clearfix">-->
<li>第2条数据</li> <!--<span style="float: left;">{{data.title}}</span>-->
<li>第3条数据</li> <!--<span style="float: right;">{{data.createTime}}</span>-->
</ul> <!--</li>-->
<!--</ul>-->
<!--</el-tab-pane>-->
<el-tab-pane :label="tab.title" name="first" style="height: 440px">
<hm-complex-table :schema="schema[tab.tableName]"
:columns="tab.showUserColumns"
:options="tab.userOptions">
</hm-complex-table>
</el-tab-pane> </el-tab-pane>
</el-tabs> </el-tabs>
</swiper-slide> </swiper-slide>
...@@ -32,9 +39,10 @@ ...@@ -32,9 +39,10 @@
</template> </template>
<script> <script>
// import _ from 'lodash' import _ from 'lodash'
// import request from '@/utils/request' import request from '@/utils/request'
// import schema from '../../schemas/hm_org_schema' // import schema from '../haomo/schemas/hm_org_schema'
import HmComplexTable from '../tables/HmComplexTable.vue'
/** /**
* 毫末科技的选项卡组件. * 毫末科技的选项卡组件.
...@@ -47,7 +55,9 @@ ...@@ -47,7 +55,9 @@
// 集成其他组件 // 集成其他组件
extends: {}, extends: {},
// 使用其它组件 // 使用其它组件
components: {}, components: {
'hm-complex-table': HmComplexTable
},
// 混入公共对象 // 混入公共对象
mixins: [], mixins: [],
/** /**
...@@ -57,7 +67,11 @@ ...@@ -57,7 +67,11 @@
props: { props: {
schema: { schema: {
type: Object, type: Object,
required: true required: false
},
tabData: {
type: Array,
required: false
} }
}, },
data() { data() {
...@@ -73,18 +87,70 @@ ...@@ -73,18 +87,70 @@
nextEl: '.swiper-button-next', nextEl: '.swiper-button-next',
prevEl: '.swiper-button-prev' prevEl: '.swiper-button-prev'
} }
},
listQuery: {
pageNo: 1,
pageSize: 3,
sortItem: 'create_time',
sortOrder: 'desc',
filters: {}
} }
} }
}, },
created() { created() {
// this.validate() // this.validate()
// console.log(this.schema) // console.log(this.schema)
// this.getList()
}, },
methods: { methods: {
handleClick(tab, event) { handleClick(tab, event) {
console.log(tab, event) console.log(tab, event)
console.log(this.schema) console.log(this.schema)
},
// 获取数据
getList() {
const self = this
// 处理过滤条件
const params = JSON.parse(JSON.stringify(self.listQuery))
// if (self.includes) {
// params.includes = self.includes
// }
// if (self.refers) {
// params.refers = self.refers
// }
// self.schema.modelUnderscorePlural
_.each(self.tabData, function(item, i) {
request(item.table, {
params: params
}).then(resp => {
console.log(resp.data)
self.$set(item, 'column', resp.data)
})
})
setTimeout(function() { console.log(self.tabData) }, 3000)
// request('cc_meetings', {
// params: params
// }).then(resp => {
// // if (resp.data.length !== 0 && resp.data[0].superior !== undefined && resp.data[0].includes !== undefined &&
// // resp.data[0].refers !== undefined && resp.data[0].relates !== undefined) {
// // self.list = []
// // _.each(resp.data, function(item, index) {
// // self.list.push(item.superior)
// // })
// // } else {
// // self.list = resp.data
// // }
// // self.list = resp.data
// console.log(resp.data)
// // 数据库字段转化显示
// // if (self.options && self.options.changeValue) {
// // self.list = self.changeValue(self.list)
// // }
// })
} }
} }
} }
</script> </script>
......
...@@ -17,6 +17,8 @@ ...@@ -17,6 +17,8 @@
}, },
data() { data() {
return { return {
// 会议、通知通报、公文、会议请假、调班申请、议题征集申请
//
} }
}, },
computed: { computed: {
......
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