Commit 65ad985d authored by 何虹's avatar 何虹 💬

升级UI包

parent 687e9618
...@@ -22,11 +22,11 @@ ...@@ -22,11 +22,11 @@
"echarts": "^4.7.0", "echarts": "^4.7.0",
"element-ui": "^2.15.0", "element-ui": "^2.15.0",
"file-saver": "^2.0.5", "file-saver": "^2.0.5",
"hs-util-js": "^1.0.23", "hs-util-js": "^1.0.33",
"i": "^0.3.6", "i": "^0.3.6",
"jsoneditor": "^8.6.5", "jsoneditor": "^8.6.5",
"lodash": "^4.17.15", "lodash": "^4.17.15",
"mathjs": "^9.0.0", "mathjs": "8.0.1",
"moment": "^2.24.0", "moment": "^2.24.0",
"script-loader": "^0.7.2", "script-loader": "^0.7.2",
"sortablejs": "^1.12.0", "sortablejs": "^1.12.0",
...@@ -35,9 +35,12 @@ ...@@ -35,9 +35,12 @@
"vue-codemirror": "^4.0.6", "vue-codemirror": "^4.0.6",
"vue-qr": "^2.3.0", "vue-qr": "^2.3.0",
"vue-video-player": "^5.0.2", "vue-video-player": "^5.0.2",
"xlsx": "^0.16.9" "xlsx": "^0.16.9",
"vue-contextmenujs": "^1.3.13"
}, },
"devDependencies": { "devDependencies": {
"node-sass": "^4.12.0",
"sass-loader": "^7.3.1",
"babel-preset-es2015": "^6.24.1", "babel-preset-es2015": "^6.24.1",
"url-loader": "^4.1.1", "url-loader": "^4.1.1",
"style-loader": "^2.0.0", "style-loader": "^2.0.0",
......
...@@ -10,9 +10,6 @@ ...@@ -10,9 +10,6 @@
:close-on-click-modal='false'> :close-on-click-modal='false'>
<div class="toopBox1"> <div class="toopBox1">
<el-button-group > <el-button-group >
<el-button @click='print'>
输入
</el-button>
<el-button @click="addPropViSayncTop()" size='mini' type="primary" icon="el-icon-plus"></el-button> <el-button @click="addPropViSayncTop()" size='mini' type="primary" icon="el-icon-plus"></el-button>
<el-button @click='deleteAll' size='mini' type="primary" icon="el-icon-delete"></el-button> <el-button @click='deleteAll' size='mini' type="primary" icon="el-icon-delete"></el-button>
<el-button @click='upStupe' size='mini' type="primary" icon="el-icon-arrow-left">上移</el-button> <el-button @click='upStupe' size='mini' type="primary" icon="el-icon-arrow-left">上移</el-button>
...@@ -266,27 +263,27 @@ export default { ...@@ -266,27 +263,27 @@ export default {
}, },
{ {
value: 'hsDatePicker', value: 'hsDatePicker',
label: '16配置日期选择器', label: '16配置日期选择器',
isRequireControlName: true isRequireControlName: true
}, },
{ {
value: 'hsPopoverTextarea', value: 'hsTimePicker',
label: '17多行文本弹出', label: '17配置时间选择器',
isRequireControlName: true isRequireControlName: true
}, },
{ {
value: 'hsRadio', value: 'hsPopoverTextarea',
label: '18可配置单选', label: '18多行文本弹出',
isRequireControlName: true isRequireControlName: true
}, },
{ {
value: 'hsTabs', value: 'hsRadio',
label: '19标签页', label: '19可配置单选',
isRequireControlName: true isRequireControlName: true
}, },
{ {
value: 'hsDateTimePicker', value: 'hsTabs',
label: '20时间范围选择器', label: '20标签页',
isRequireControlName: true isRequireControlName: true
}, },
{ {
......
This diff is collapsed.
This diff is collapsed.
...@@ -1125,7 +1125,7 @@ const hsDivider = { ...@@ -1125,7 +1125,7 @@ const hsDivider = {
} }
const hsDatePicker = { const hsDatePicker = {
config: { config: {
'title': '标题', 'title': '',
'type': 'daterange', 'type': 'daterange',
'valueFormat': 'yyyy-MM-dd', 'valueFormat': 'yyyy-MM-dd',
'rangeSeparator': '至', 'rangeSeparator': '至',
...@@ -2486,6 +2486,25 @@ const hsInputSelect = { ...@@ -2486,6 +2486,25 @@ const hsInputSelect = {
} }
] ]
} }
const hsPageConfigQueryBi = {
config: {
restful_appcode: '',
'isInitMenuParam': false, // 是否初始化menuParam
'pageMode': true,
'version': '2.0',
'ui': {
},
'entity': {
}
},
data: []
}
const hsButton = {
config: {
label: '测试'
}
}
const mockData = { const mockData = {
hsLineBar: initLineBar, hsLineBar: initLineBar,
hsPie: initPie, hsPie: initPie,
...@@ -2548,6 +2567,8 @@ const mockData = { ...@@ -2548,6 +2567,8 @@ const mockData = {
hsDragList, hsDragList,
hsPageConfigDragList, hsPageConfigDragList,
hsInputSelect, hsInputSelect,
hsTabsTable hsTabsTable,
hsPageConfigQueryBi,
hsButton
} }
export default mockData export default mockData
...@@ -2,10 +2,10 @@ ...@@ -2,10 +2,10 @@
<el-dialog <el-dialog
top='10px' top='10px'
class="innerDialogBox" class="innerDialogBox"
:visible.sync="dialogVisible" :visible.sync="innerDialogVisible"
width="100%" width="100%"
@open='openDialog' @open='openDialog'
title='表格配置' title='表格设置(开发,不允许有属性相同的列)'
:append-to-body='true' :append-to-body='true'
:close-on-click-modal='false' :close-on-click-modal='false'
> >
...@@ -180,8 +180,14 @@ ...@@ -180,8 +180,14 @@
label='隐藏' label='隐藏'
> >
<template slot-scope="scope"> <template slot-scope="scope">
<el-switch v-model="scope.row.isHide"> <el-switch
v-if='isBoolean(scope.row.isHide)'
v-model="scope.row.isHide"
>
</el-switch> </el-switch>
<span v-else>
{{'action:'+scope.row.isHide}}
</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
...@@ -211,8 +217,14 @@ ...@@ -211,8 +217,14 @@
width='70' width='70'
> >
<template slot-scope="scope"> <template slot-scope="scope">
<el-switch v-model="scope.row.isDisabled"> <el-switch
v-if='isBoolean(scope.row.isDisabled)'
v-model="scope.row.isDisabled"
>
</el-switch> </el-switch>
<span v-else>
{{'action:'+scope.row.isDisabled}}
</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
...@@ -221,8 +233,14 @@ ...@@ -221,8 +233,14 @@
width='70' width='70'
> >
<template slot-scope="scope"> <template slot-scope="scope">
<el-switch v-model="scope.row.isRequired"> <el-switch
v-if='isBoolean(scope.row.isRequired)'
v-model="scope.row.isRequired"
>
</el-switch> </el-switch>
<span v-else>
{{'action:'+scope.row.isRequired}}
</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
...@@ -274,6 +292,7 @@ ...@@ -274,6 +292,7 @@
@click="tanTableHeaderAsync" @click="tanTableHeaderAsync"
>确 定</el-button> >确 定</el-button>
<el-button <el-button
v-show="false"
size='mini' size='mini'
type="success" type="success"
@click="generateTheHeaderBefore" @click="generateTheHeaderBefore"
...@@ -286,7 +305,7 @@ ...@@ -286,7 +305,7 @@
<el-button <el-button
size='mini' size='mini'
type="info" type="info"
@click="dialogVisible = false" @click="innerDialogVisible = false"
>取 消</el-button> >取 消</el-button>
</div> </div>
<tbaleColumStyleSet <tbaleColumStyleSet
...@@ -304,47 +323,45 @@ import tbaleColumStyleSet from './tbaleColumStyleSet' ...@@ -304,47 +323,45 @@ import tbaleColumStyleSet from './tbaleColumStyleSet'
export default { export default {
components: { tbaleColumStyleSet }, components: { tbaleColumStyleSet },
props: { props: {
value: Boolean, visible: Boolean,
tableDataColums: {
default() {
return []
}
},
mockSourceData: { mockSourceData: {
default() { default() {
return [] return []
} }
}, },
allSourceData: { isSubmitSuccessFlage: {},
default() { elInfo: {},
return { data: {},
config: {}, config: Object
data: [] },
} computed: {
innerDialogVisible: {
get() {
return this.visible
},
set(val) {
this.$emit('update:visible', val)
} }
}, },
isSubmitSuccessFlage: {}, tableDataColums: {
elInfo: {} get() {
const list = this.tableDataColums_inner || this.config.columnsConfig || []
return list
}
}
}, },
watch: { watch: {
value(val) {
this.dialogVisible = val
},
dialogVisible(val) {
this.$emit('input', val)
},
isSubmitSuccessFlage(val) { isSubmitSuccessFlage(val) {
if (val === 'columnStyleSet') { if (val === 'columnStyleSet') {
this.dialogVisibleTbaleColumStyle = false this.dialogVisibleTbaleColumStyle = false
} else { } else {
this.dialogVisible = false this.innerDialogVisible = false
} }
} }
}, },
data() { data() {
return { return {
dialogVisibleTbaleColumStyle: false, dialogVisibleTbaleColumStyle: false,
dialogVisible: false,
optionsType: [ optionsType: [
{ {
value: 'checkBox', value: 'checkBox',
...@@ -400,10 +417,18 @@ export default { ...@@ -400,10 +417,18 @@ export default {
value: 'elDatePicker', value: 'elDatePicker',
label: '6日期范围' label: '6日期范围'
}, },
{
value: 'hsDatePicker',
label: '6-1可配置日期'
},
{ {
value: 'elDatePickerDatetime', value: 'elDatePickerDatetime',
label: '7日期时间' label: '7日期时间'
}, },
{
value: 'hsTimePicker',
label: '7-2可配置时间'
},
{ {
value: 'hsComputed', value: 'hsComputed',
label: '8计算文本', label: '8计算文本',
...@@ -450,19 +475,27 @@ export default { ...@@ -450,19 +475,27 @@ export default {
// isRequireControlName: true // isRequireControlName: true
// } // }
], ],
tableDataColumsCopy: [] tableDataColums_inner: null,
controlConfig: null
} }
}, },
methods: { methods: {
openDialog() {}, isBoolean(value) {
initConfig(data) { const type = typeof value
for (const index in data) { return type === 'boolean' || value === '' || type === 'undefined'
const item = data[index] },
if (!item.uuidv1) { async openDialog() {
item.uuidv1 = uuidv1() const res = await this.getPageInfo()
} const data = res.data
if (data && data.length) { // 说明后端有存储
this.controlConfig = data[0]
const json_config = JSON.parse(this.controlConfig.json_config)
this.tableDataColums_inner = json_config.columnsConfig
} else {
this.controlConfig = null
this.tableDataColums_inner = null
} }
this.tableDataColumsCopy = _.cloneDeep(data) console.log(this.tableDataColums_inner)
}, },
addPropViSayncTop() { addPropViSayncTop() {
this.tableDataColums.push({}) this.tableDataColums.push({})
...@@ -554,7 +587,8 @@ export default { ...@@ -554,7 +587,8 @@ export default {
this.downSite(this.tableDataColums, index) this.downSite(this.tableDataColums, index)
}, },
generateTheHeaderBefore() { generateTheHeaderBefore() {
const editor2Data = this.allSourceData && this.allSourceData.data const editor2Data = this.data
if ( if (
(Array.isArray(editor2Data) && !editor2Data.length) || (Array.isArray(editor2Data) && !editor2Data.length) ||
(editor2Data.table && !editor2Data.table.length) (editor2Data.table && !editor2Data.table.length)
...@@ -713,6 +747,8 @@ export default { ...@@ -713,6 +747,8 @@ export default {
if (itemOptionType && !itemOptionType.isRequireControlName) { if (itemOptionType && !itemOptionType.isRequireControlName) {
delete item.elInfo delete item.elInfo
delete item.control_name delete item.control_name
delete item.config
delete item.data
} }
if ( if (
itemOptionType && itemOptionType &&
...@@ -722,23 +758,7 @@ export default { ...@@ -722,23 +758,7 @@ export default {
item.control_name = uuidv1() item.control_name = uuidv1()
} }
} }
this.$emit('submit', columnsConfig, flage) this.submitTableColums(columnsConfig)
},
addOldProp(columnsConfig) {
const olist = this.tableDataColumsCopy.filter(item =>
item.showType.startsWith('hs')
)
const newlist = columnsConfig.filter(
item => item.uuidv1 && item.showType.startsWith('hs')
)
newlist.forEach(item => {
const otarget = olist.find(oitem => item.uuidv1 === oitem.uuidv1)
if (otarget && otarget.prop !== item.prop) {
item.old_control_name = otarget.prop
} else if (otarget && otarget.prop === item.prop) {
delete item.old_control_name
}
})
}, },
tansFormAsyncProps(list) { tansFormAsyncProps(list) {
const rasyncProps = _(list) const rasyncProps = _(list)
...@@ -784,6 +804,46 @@ export default { ...@@ -784,6 +804,46 @@ export default {
this.tableDataColums[this.editIndex].columnStyle = data this.tableDataColums[this.editIndex].columnStyle = data
this.dialogVisibleTbaleColumStyle = false this.dialogVisibleTbaleColumStyle = false
this.tanTableHeaderAsync('columnStyleSet') this.tanTableHeaderAsync('columnStyleSet')
},
getPageInfo(info = this.elInfo) {
const data = {
controlName: info.position,
userId: -1,
configType: -1
}
return this.$attrs.webChartConfigQuery(data)
},
async submitTableColums(data) {
let paramsData = {}
if (!this.controlConfig) {
paramsData.json_config = JSON.stringify(this.config || {})
paramsData.json_data = JSON.stringify(this.data || [])
paramsData.is_mock = 1
paramsData.query_sql = ''
} else if (this.controlConfig) {
paramsData = this.controlConfig
}
const { query_sql, json_config, json_data, is_mock } = paramsData
const json_config_ = JSON.parse(json_config)
data.forEach(item => {
delete item.config
delete item.data
})
json_config_.columnsConfig = data
const dataw = {
controlName: this.elInfo.position,
config: json_config_,
data: JSON.parse(json_data),
querySql: query_sql,
mockData: is_mock ? 1 : 0,
userId: -1,
configType: -1
}
this.$attrs.webChartConfigSave(dataw).then(res => {
this.$emit('saveSuccess', json_config_)
this.$message.success('设置成功!')
this.innerDialogVisible = false
})
} }
} }
} }
......
This diff is collapsed.
...@@ -287,7 +287,7 @@ export default { ...@@ -287,7 +287,7 @@ export default {
tableName: 'pbWebDyncCode', tableName: 'pbWebDyncCode',
parms: {} parms: {}
} }
this.$attrs.$httpClient.RestFulModule.deleteList(parms).then(res => { this.$attrs.httpClient.RestFulModule.deleteList(parms).then(res => {
const str = '删除成功' const str = '删除成功'
this.$message.success(str) this.$message.success(str)
this.queryTableData() this.queryTableData()
......
...@@ -215,7 +215,6 @@ export default { ...@@ -215,7 +215,6 @@ export default {
if (user_info) { if (user_info) {
const user_info_json = JSON.parse(user_info) const user_info_json = JSON.parse(user_info)
const { is_admin } = user_info_json const { is_admin } = user_info_json
if (!is_admin || is_admin === 0) { if (!is_admin || is_admin === 0) {
// 不是管理员的情况下隐藏页面设置和action设置 // 不是管理员的情况下隐藏页面设置和action设置
tempList = tempList.filter( tempList = tempList.filter(
...@@ -224,7 +223,7 @@ export default { ...@@ -224,7 +223,7 @@ export default {
) )
} }
} else { } else {
if (self !== top) { if (self !== top && location.hostname !== '0.0.0.0') {
tempList = tempList.filter( tempList = tempList.filter(
item => item =>
item.click !== '$setAction' && item.click !== '$setPageConfig' item.click !== '$setAction' && item.click !== '$setPageConfig'
......
...@@ -105,4 +105,10 @@ export default { ...@@ -105,4 +105,10 @@ export default {
} }
} }
} }
</script> </script>
\ No newline at end of file <style scoped>
.targetItem{
width: 100%;
height: 100%;
}
</style>
\ No newline at end of file
...@@ -41,18 +41,26 @@ export default { ...@@ -41,18 +41,26 @@ export default {
this.elId = uuidv1() // 获取随机id this.elId = uuidv1() // 获取随机id
} }
}, },
boxEventMouse(event) { getIsDev() {
const that = this
event.stopPropagation()
const user_info = sessionStorage['user_info'] const user_info = sessionStorage['user_info']
if (user_info) { if (user_info) {
const user_info_json = JSON.parse(user_info) const user_info_json = JSON.parse(user_info)
const { is_admin } = user_info_json const { systemSysDevDb } = user_info_json
if (!is_admin || is_admin === 0) return if (
} systemSysDevDb === true ||
if (!user_info) { systemSysDevDb === '1' ||
if (top !== self) return systemSysDevDb === 1
) { return true }
} else {
if (top !== self && location.hostname !== '0.0.0.0') return false
if (top === self && location.hostname === '0.0.0.0') return true
} }
},
boxEventMouse(event) {
const that = this
event.stopPropagation()
const isDev = this.getIsDev()
if (!isDev) return
if (event.shiftKey && event.altKey && !event.ctrlKey) { if (event.shiftKey && event.altKey && !event.ctrlKey) {
that.showJsonEditDialog() that.showJsonEditDialog()
} }
......
...@@ -25,6 +25,7 @@ export default { ...@@ -25,6 +25,7 @@ export default {
<style scoped> <style scoped>
.common { .common {
width: 100%; width: 100%;
height: auto; height:100%;
/* height: auto; */
} }
</style> </style>
<template>
<ul
v-show="innervisible"
:style="{left:left+'px',top:top+'px'}"
class="contextmenu"
>
<li v-show="showToolSetItem(item)" v-for="(item,index) in menuList" :key='index' @click='itemClick(item)'>
{{item.label}}
</li>
</ul>
</template>
<script>
export default {
props: {
visible: Boolean,
targetDom: HTMLDivElement,
menuList: {
type: Array,
default() {
return []
}
}
},
computed: {
innervisible: {
get() {
return this.visible
},
set(val) {
this.$emit('update:visible', val)
}
}
},
watch: {
innervisible(value) {
if (value) {
document.body.addEventListener('click', this.closeMenu)
} else {
document.body.removeEventListener('click', this.closeMenu)
}
}
},
name: 'hs-contextmenu',
data() {
return {
top: 100,
left: 100
}
},
mounted() {
setTimeout(() => {
this.initContextmenu()
}, 1500)
},
methods: {
itemClick(item) {
this.$emit('itemClick', item)
},
showToolSetItem(item) {
const { click } = item
if (click === 'sysSet') { // 系统设置
// 根据user_info中的is_admin来控制是否显示
const user_info = sessionStorage['user_info']
if (user_info) {
const user_info_json = JSON.parse(user_info)
const { is_admin } = user_info_json
if (!is_admin || is_admin === 0) return
return is_admin === true
} else {
if (!user_info && top !== self && location.hostname !== '0.0.0.0') return false
return true
}
} else {
return true
}
},
closeMenu() {
this.innervisible = false
},
initContextmenu() {
const nav = this.targetDom
const that = this
nav.oncontextmenu = event => {
event.preventDefault()
that.openMenu(event)
}
},
openMenu(e) {
this.left = e.clientX
this.top = e.clientY
this.innervisible = true
}
}
}
</script>
<style scoped lang="scss">
.contextmenu {
margin: 0;
background: #585858c4;
z-index: 3000;
position: absolute;
list-style-type: none;
padding: 5px 0;
border-radius: 4px;
font-size: 14px;
font-weight: 400;
color: #fff;
box-shadow: 2px 2px 3px 0 rgba(0, 0, 0, 0.3);
text-align: left;
li {
margin: 0;
padding: 7px 16px;
cursor: pointer;
&:hover {
background: #409eff;
}
}
}
</style>
...@@ -6,8 +6,9 @@ ...@@ -6,8 +6,9 @@
>{{configData.title}}</div> >{{configData.title}}</div>
<div class="containerSelf"> <div class="containerSelf">
<el-date-picker <el-date-picker
class="targetPickerDom"
ref='currentDom' ref='currentDom'
v-clickoutside="hidePicker" v-click-outside="hidePicker"
@change='changed' @change='changed'
size='mini' size='mini'
v-model="valueInner" v-model="valueInner"
...@@ -17,6 +18,8 @@ ...@@ -17,6 +18,8 @@
:range-separator="configData.rangeSeparator" :range-separator="configData.rangeSeparator"
:start-placeholder="configData.startPlaceholder" :start-placeholder="configData.startPlaceholder"
:end-placeholder="configData.endPlaceholder" :end-placeholder="configData.endPlaceholder"
:picker-options='pickerOptions'
:default-time='configData.defaultTime'
> >
</el-date-picker> </el-date-picker>
</div> </div>
...@@ -24,6 +27,7 @@ ...@@ -24,6 +27,7 @@
</template> </template>
<script> <script>
import commonMixins from '../../ucClass/commonMixins' import commonMixins from '../../ucClass/commonMixins'
import { getSomeWeekStartDays, getSomeMonthStartDays, getSomeYearStartDays } from './moment'
export default { export default {
mixins: [commonMixins], mixins: [commonMixins],
name: 'date-picker-component', name: 'date-picker-component',
...@@ -34,14 +38,18 @@ export default { ...@@ -34,14 +38,18 @@ export default {
valueInner: { valueInner: {
get: function() { get: function() {
const type = this.configData.type const type = this.configData.type
if (!type.includes('range')) { if (type) {
return this.value if (!type.includes('range')) {
} else if (type.includes('range')) { return this.value || ''
if (typeof this.value === 'string') { } else if (type.includes('range')) {
return this.value.split(',') if (typeof this.value === 'string') {
} else if (Array.isArray(this.value)) { return this.value.split(',')
return this.value } else if (Array.isArray(this.value)) {
return this.value
}
} }
} else {
return this.value
} }
}, },
set: function(value) { set: function(value) {
...@@ -50,15 +58,87 @@ export default { ...@@ -50,15 +58,87 @@ export default {
return return
} }
const type = this.configData.type const type = this.configData.type
if (!type.includes('range')) { if (type) {
this.$emit('input', value) if (!type.includes('range')) {
this.$emit('input', value)
} else {
this.$emit('input', value.join(','))
}
} else { } else {
this.$emit('input', value.join(',')) this.$emit('input', value)
} }
} }
},
pickerOptions: function() {
const pickerOptions = this.configData.pickerOptions || {}
const shortcuts = pickerOptions.shortcuts || []
shortcuts.forEach(item => {
const { start, end } = item
const start_ = start ? start.replace(/\-/g, '+-') : ''
const end_ = end ? end.replace(/\-/g, '+-') : ''
item.onClick = (picker) => {
// 如果是单个值则设置一个,否则设置[]
const result_start = this.execNow(start_)
const result_end = this.execNow(end_)
const type = this.configData.type
if (type.includes('range')) {
picker.$emit('pick', [result_start, result_end])
} else {
picker.$emit('pick', result_start)
}
}
})
return {
shortcuts
}
} }
}, },
methods: { methods: {
execNow(execStr) {
const list = execStr.split('+')
var now = new Date()
list.forEach(item => {
now = this.addNow(now, item)
})
return now
},
addNow(now, item) {
if (!item) return now
const resultNow = now
const unit_item = item.substr(item.length - 1, 1)// 单位
const unit_list = ['w', 'M', 'd', 'y']
const value_item = unit_list.includes(unit_item) ? Number(item.substr(0, item.length - 1)) : Number(item.substr(0, item.length))// 值
// 要把所有单位换算成天来计算
var d_value = 0
const nowTime = now.getTime()
switch (unit_item) {
case 'w':// 周
d_value = getSomeWeekStartDays(now, value_item)
const time = value_item > 0 ? d_value - nowTime : nowTime - d_value
const r = value_item > 0 ? nowTime + time : nowTime - time
resultNow.setTime(r)
// d_value = value_item * 7
break
case 'M':// 月
d_value = getSomeMonthStartDays(now, value_item)
const time1 = value_item > 0 ? d_value - nowTime : nowTime - d_value
const r1 = value_item > 0 ? nowTime + time1 : nowTime - time1
resultNow.setTime(r1)
break
case 'y':// 年
d_value = getSomeYearStartDays(now, value_item)
const timeY = value_item > 0 ? d_value - nowTime : nowTime - d_value
const rY = value_item > 0 ? nowTime + timeY : nowTime - timeY
resultNow.setTime(rY)
break
default:
// case 'd' :// 天
d_value = 3600 * 1000 * 24 * value_item
resultNow.setTime(resultNow.getTime() + d_value)
break
}
return resultNow
},
hidePicker() { hidePicker() {
this.$refs.currentDom.hidePicker() this.$refs.currentDom.hidePicker()
}, },
...@@ -102,4 +182,7 @@ export default { ...@@ -102,4 +182,7 @@ export default {
.selectBoxPlus >>> .el-select .el-input__inner { .selectBoxPlus >>> .el-select .el-input__inner {
height: 100%; height: 100%;
} }
.targetPickerDom{
width: 100%;
}
</style> </style>
import moment from 'moment'
// 获取当天开始结束时间
export function getCurrDays() {
const date = []
date.push(moment().format('YYYY-MM-DD'))
date.push(moment().format('YYYY-MM-DD'))
// 获取当天的开始结束时间,精确到时分秒
// moment().startOf('days').format('YYYY-MM-DD HH:mm:ss')
// moment().endOf('days').format('YYYY-MM-DD HH:mm:ss')
return date
}
// 获取昨天的开始结束时间
export function getYesterday() {
const date = []
date.push(moment().subtract('days', 1).format('YYYY-MM-DD'))
date.push(moment().subtract('days', 1).format('YYYY-MM-DD'))
// 获取昨天的开始结束时间,精确到时分秒
// moment().subtract('days',1).startOf('days').format('YYYY-MM-DD HH:mm:ss')
// moment().subtract('days',1).endOf('days').format('YYYY-MM-DD HH:mm:ss')
return date
}
// 获取明天的开始结束时间
export function getTomorrow() {
const date = []
date.push(moment().add('days', 1).format('YYYY-MM-DD'))
date.push(moment().add('days', 1).format('YYYY-MM-DD'))
return date
}
// 获取最近七天的开始结束时间
export function getLast7Days() {
const date = []
// 不包含当天
date.push(moment().subtract('days', 7).format('YYYY-MM-DD'))
date.push(moment().subtract('days', 1).format('YYYY-MM-DD'))
// 包含当天
// date.push(moment().subtract('days',6).format('YYYY-MM-DD'))
// date.push(moment().format('YYYY-MM-DD'))
return date
}
// 获取最近30天的开始结束时间
export function getLast30Days() {
const date = []
date.push(moment().subtract('days', 30).format('YYYY-MM-DD'))
date.push(moment().subtract('days', 1).format('YYYY-MM-DD'))
return date
}
// 获取当前周的开始结束时间,周日到周六
export function getCurrWeekDays() {
const date = []
const start = moment().startOf('week').format('YYYY-MM-DD')
const end = moment().endOf('week').format('YYYY-MM-DD')
date.push(start)
date.push(end)
return date
}
// 获取上一周的开始结束时间,周日到周六
export function getLastWeekDays(f = 1) {
const date = []
const start = moment().week(moment().week() + f).startOf('week').add(1, 'days').format('YYYY-MM-DD')
const end = moment().week(moment().week() + f).endOf('week').add(1, 'days').format('YYYY-MM-DD')
date.push(start)
date.push(end)
return date
}
// 获取下一周的开始结束时间,周日到周六
export function getNextWeekDays() {
const date = []
const start = moment().week(moment().week() + 1).startOf('week').format('YYYY-MM-DD')
const end = moment().week(moment().week() + 1).endOf('week').format('YYYY-MM-DD')
date.push(start)
date.push(end)
return date
}
// 获取当前月的开始结束时间
export function getCurrMonthDays() {
const date = []
const start = moment().startOf('month').format('YYYY-MM-DD')
const end = moment().endOf('month').format('YYYY-MM-DD')
date.push(start)
date.push(end)
return date
}
// 获取某一周的开始时间
export function getSomeWeekStartDays(now, f = 1) {
const start = moment(now).week(moment(now).week() + f).startOf('week').add(1, 'days').format()
return new Date(start)
}
export function getSomeMonthStartDays(now, f = 1) {
const start = moment(now).month(moment(now).month() + f).startOf('month').format()
return new Date(start)
}
export function getSomeYearStartDays(now, f = 1) {
const start = moment(now).year(moment(now).year() + f).startOf('year').format()
return new Date(start)
}
// 获取上一月的开始结束时间
export function getLastMonthDays() {
const date = []
const start = moment().month(moment().month() - 1).startOf('month').format('YYYY-MM-DD')
const end = moment().month(moment().month() - 1).endOf('month').format('YYYY-MM-DD')
date.push(start)
date.push(end)
return date
}
// 当前季度
export function getCurrQuarter() {
const date = []
const start = moment().startOf('quarter').format('YYYY-MM-DD')
const end = moment().endOf('quarter').format('YYYY-MM-DD')
date.push(start)
date.push(end)
return date
}
// 上个季度
export function getLastQuarter() {
const date = []
const start = moment().quarter(moment().quarter() - 1).startOf('quarter').format('YYYY-MM-DD')
const end = moment().quarter(moment().quarter() - 1).endOf('quarter').format('YYYY-MM-DD')
date.push(start)
date.push(end)
return date
}
...@@ -12,15 +12,14 @@ ...@@ -12,15 +12,14 @@
v-if='visible' v-if='visible'
> >
<hs-dync-form <hs-dync-form
type='ediArea' controlType='ediArea'
:style="{'height':dialogHeight}" :style="{'height':dialogHeight}"
:formParms='detailForm' :formParms='detailForm'
:elInfo='asyncElInfoEdiArea' :elInfo='asyncElInfoEdiArea'
:config='dyncFormEdiAreaMainConfig' :config='dyncFormEdiAreaMainConfig'
v-bind="$attrs" v-bind="$attrs"
v-on="$listeners" v-on="$listeners"
> />
</hs-dync-form>
</div> </div>
<div <div
slot="footer" slot="footer"
......
...@@ -5,13 +5,13 @@ ...@@ -5,13 +5,13 @@
:config='hsDialogConfig' :config='hsDialogConfig'
@close='close' @close='close'
> >
<div slot="body"> <div slot="body" v-if='dialogVisible'>
<iframe <iframe
id='hsDialogIframe' id='hsDialogIframe'
name="hsDialogIframe" name="hsDialogIframe"
:src='pageSrc' :src='pageSrc'
style="width:100%;height:600px;padding-top:10px" style="width:100%;height:600px;padding-top:10px"
sandbox="allow-popups-to-escape-sandbox allow-downloads allow-same-origin allow-scripts allow-forms allow-top-navigation allow-popups" sandbox="allow-downloads allow-same-origin allow-scripts allow-forms allow-top-navigation allow-popups"
></iframe> ></iframe>
</div> </div>
</hs-dialog> </hs-dialog>
...@@ -69,6 +69,9 @@ export default { ...@@ -69,6 +69,9 @@ export default {
// 延迟设置title+form_id // 延迟设置title+form_id
this.setCapTion(data) this.setCapTion(data)
}, 1000) }, 1000)
} else if (type === 'close') {
// 关闭当前弹出框
this.close()
} }
}, },
setCapTion(data) { setCapTion(data) {
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
<div slot="body"> <div slot="body">
<!-- <dyncFormComponent <!-- <dyncFormComponent
@searchSubmit='query' @searchSubmit='query'
type='queryArea' controlType='queryArea'
:formParms='searchForm' :formParms='searchForm'
:elInfo='asyncElInfo' :elInfo='asyncElInfo'
:allSourceData='dyncFormConfig' :allSourceData='dyncFormConfig'
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
@open='handleOpen' @open='handleOpen'
:close-on-click-modal="false" :close-on-click-modal="false"
:fullscreen='configData.fullscreen' :fullscreen='configData.fullscreen'
:append-to-body="true" append-to-body
:before-close="handleClose"> :before-close="handleClose">
<slot name="body"></slot> <slot name="body"></slot>
<slot name="footer"></slot> <slot name="footer"></slot>
......
...@@ -27,7 +27,7 @@ ...@@ -27,7 +27,7 @@
> >
<hs-dync-form <hs-dync-form
@searchSubmit='queryTable' @searchSubmit='queryTable'
type='queryArea' controlType='queryArea'
:formParms='searchForm' :formParms='searchForm'
:elInfo='hsDyncFormEl' :elInfo='hsDyncFormEl'
:config='hsDyncFormConfig' :config='hsDyncFormConfig'
...@@ -126,7 +126,7 @@ export default { ...@@ -126,7 +126,7 @@ export default {
}, },
hsDyncFormConfig: function() { hsDyncFormConfig: function() {
// 获取控件配置 // 获取控件配置
const { config } = this.$listeners.findTargetControl( const { config } = this.$attrs.findTargetControl(
this.hsDyncFormEl.position, this.hsDyncFormEl.position,
'hsDyncFormComponent' 'hsDyncFormComponent'
) )
...@@ -134,14 +134,14 @@ export default { ...@@ -134,14 +134,14 @@ export default {
}, },
hsTableFormConfigRight: function() { hsTableFormConfigRight: function() {
// 获取控件配置 // 获取控件配置
const { config } = this.$listeners.findTargetControl( const { config } = this.$attrs.findTargetControl(
this.hsTableElRight.position, this.hsTableElRight.position,
'hsTableSimple' 'hsTableSimple'
) )
return config return config
}, },
hsTableFormConfigLeft: function() { hsTableFormConfigLeft: function() {
const { config } = this.$listeners.findTargetControl( const { config } = this.$attrs.findTargetControl(
this.hsTableElLeft.position, this.hsTableElLeft.position,
'hsTableSimple' 'hsTableSimple'
) )
...@@ -295,7 +295,7 @@ export default { ...@@ -295,7 +295,7 @@ export default {
// 调用外面的查询方法 // 调用外面的查询方法
const obj = {} const obj = {}
obj[value] = this.value obj[value] = this.value
const data = await this.$listeners.queryLookup( const data = await this.$attrs.queryLookup(
this.config, this.config,
this.formData, this.formData,
obj obj
...@@ -315,7 +315,7 @@ export default { ...@@ -315,7 +315,7 @@ export default {
this.searchForm.page = 1 this.searchForm.page = 1
} }
// 调用外面的查询方法 // 调用外面的查询方法
const data = await this.$listeners.queryLookup( const data = await this.$attrs.queryLookup(
this.config, this.config,
this.formData, this.formData,
this.searchForm this.searchForm
......
<template> <template>
<div <div
@contextmenu.prevent="onContextmenu"
ref='boxDom'
class="outBox" class="outBox"
:style="{'height':configData.height||height}" :style="{'height':configData.height||height}"
> >
<template v-if="type!=='queryArea'"> <template v-if="controlType!=='queryArea'">
<dyncFormItemComponentTable <dyncFormItemComponentTable
:formParms='formParms' :formParms='formParms'
:configData='configData' :configData='configData'
...@@ -15,6 +17,7 @@ ...@@ -15,6 +17,7 @@
</template> </template>
<template v-else> <template v-else>
<dyncFormItemComponentQuery <dyncFormItemComponentQuery
controlType='queryArea'
:formParms='formParms' :formParms='formParms'
@submit='searchSubmit' @submit='searchSubmit'
@enterInput='searchSubmit' @enterInput='searchSubmit'
...@@ -24,30 +27,109 @@ ...@@ -24,30 +27,109 @@
v-on="$listeners" v-on="$listeners"
></dyncFormItemComponentQuery> ></dyncFormItemComponentQuery>
</template> </template>
<formDevConfigColumsSet
:controlType='controlType'
:visible.sync='visibleFormColumsDevSet'
:elInfo='elInfo'
:config='config'
v-bind="$attrs"
/>
<formUserSysConfigColumsSet
:controlType='controlType'
:configRole='configRole'
:elInfo='elInfo'
:visible.sync='visibleFormColumsUserSysSet'
v-bind="$attrs"
/>
<hs-contextmenu
v-if="false"
:visible.sync='visibleSet'
:menuList='menuList'
:targetDom='targetDom'
@itemClick='itemClickContextmenu'
></hs-contextmenu>
</div> </div>
</template> </template>
<script> <script>
import dyncFormItemComponentTable from './dyncFormItemComponentTable' import dyncFormItemComponentTable from './dyncFormItemComponentTable'
import dyncFormItemComponentQuery from './dyncFormItemComponentQuery' import dyncFormItemComponentQuery from './dyncFormItemComponentQuery'
import commonMixins from '../../ucClass/commonMixins' import commonMixins from '../../ucClass/commonMixins'
import formDevConfigColumsSet from '../../common/formDevConfigColumsSet'
import formUserSysConfigColumsSet from '../../common/formUserSysConfigColumsSet'
import _ from 'lodash' import _ from 'lodash'
export default { export default {
name: 'dync-form-component', name: 'dync-form-component',
mixins: [commonMixins], mixins: [commonMixins],
components: { components: {
dyncFormItemComponentTable, dyncFormItemComponentTable,
dyncFormItemComponentQuery dyncFormItemComponentQuery,
formDevConfigColumsSet,
formUserSysConfigColumsSet
}, },
props: { props: {
height: { height: {
default: '100%' default: '100%'
}, },
formParms: {}, formParms: {},
type: { controlType: {
default: 'queryArea' default: 'queryArea'
} }
}, },
data() {
return {
visibleSet: false,
menuList: [
{
label: '用户设置',
click: 'userSet'
},
{
label: '系统设置',
click: 'sysSet'
},
{
label: '开发设置',
click: 'devSet'
}
],
targetDom: null,
configRole: '0',
visibleFormColumsDevSet: false,
visibleFormColumsUserSysSet: false
}
},
mounted() {
this.targetDom = this.$refs.boxDom
},
computed: { computed: {
contextmenuItems: function() {
const isDev = this.getIsDev()
const isAdmin = this.getIsAdmin()
const list = [
{
label: '配置(用户)',
isShow: true,
onClick: () => {
this.userSysSet('1')
}
},
{
label: '配置(系统)',
isShow: isAdmin,
onClick: () => {
this.userSysSet('0')
}
},
{
label: '配置(开发)',
isShow: isDev,
onClick: () => {
this.devSet()
}
}
]
return list.filter(item => item.isShow)
},
getDisabled: function() { getDisabled: function() {
return this.execInnerDisabled() return this.execInnerDisabled()
}, },
...@@ -56,13 +138,24 @@ export default { ...@@ -56,13 +138,24 @@ export default {
}, },
columnsAll: function() { columnsAll: function() {
const formColumn = this.configData.formColumn || [] const formColumn = this.configData.formColumn || []
// 筛选出可以显示的列
const list = formColumn.filter(item => { const list = formColumn.filter(item => {
const { isHide } = item const { isHide, isShow } = item
let isHideResult = isHide const typeofHide = typeof isHide
if (typeof isHide === 'function') { const typeofShow = typeof isShow
isHideResult = isHide(this.formParms) let result = true
if (typeofShow === 'boolean') {
result = isShow
} else if (typeofShow === 'function') {
result = isShow(this.formParms)
} else if (typeofHide === 'boolean') {
result = !isHide
} else if (typeofHide === 'function') {
result = !isHide(this.formParms)
} else if (typeofHide === 'undefined' && typeofShow === 'undefined') {
result = true
} }
return !isHideResult return result
}) })
list.forEach(item => { list.forEach(item => {
const disabledItem = this.handDisabled(item) const disabledItem = this.handDisabled(item)
...@@ -72,6 +165,65 @@ export default { ...@@ -72,6 +165,65 @@ export default {
} }
}, },
methods: { methods: {
getIsAdmin() {
const user_info = sessionStorage['user_info']
if (user_info) {
const user_info_json = JSON.parse(user_info)
const { is_admin } = user_info_json
if (is_admin === true || is_admin === '1' || is_admin === 1) return true
} else {
if (top !== self && location.hostname !== '0.0.0.0') return false
if (top === self && location.hostname === '0.0.0.0') return true
}
},
getIsDev() {
const user_info = sessionStorage['user_info']
if (user_info) {
const user_info_json = JSON.parse(user_info)
const { systemSysDevDb } = user_info_json
if (
systemSysDevDb === true ||
systemSysDevDb === '1' ||
systemSysDevDb === 1
)
return true
} else {
if (top !== self && location.hostname !== '0.0.0.0') return false
if (top === self && location.hostname === '0.0.0.0') return true
}
},
onContextmenu(event) {
this.$contextmenu({
items: this.contextmenuItems,
event,
// x: event.clientX,
// y: event.clientY,
customClass: 'class-a',
zIndex: 999999999,
minWidth: 230
})
return false
},
itemClickContextmenu(item) {
const { click } = item
switch (click) {
case 'userSet':
this.userSysSet('1')
break
case 'sysSet':
this.userSysSet('0')
break
case 'devSet':
this.devSet()
}
},
userSysSet(num) {
this.configRole = num
this.visibleFormColumsUserSysSet = true
},
devSet() {
this.visibleFormColumsDevSet = true
},
handDisabled(item) { handDisabled(item) {
let bool = false let bool = false
if (this.formParms._readonlyFields) { if (this.formParms._readonlyFields) {
...@@ -119,3 +271,8 @@ export default { ...@@ -119,3 +271,8 @@ export default {
width: auto; width: auto;
} }
</style> </style>
<style>
div.menu.class-a {
z-index: 99999999 !important;
}
</style>
<template> <template>
<div class="itemBox"> <div class="itemBox">
<i
v-if='item.isRequired&&!showLabel(item)'
class="isRequiredIcon1"
>*</i>
<label <label
v-if="showLabel(item)" v-if="showLabel(item)"
class="el-form-item__label labelDefaultWidth labelTextOverflow" class="el-form-item__label labelDefaultWidth labelTextOverflow"
:style="{width:item.labelWidth+'px'}" :style="{width:item.labelWidth+'px'}"
> >
<i <i
v-if="item.isRequired" v-if='item.isRequired'
class="isRequiredIcon" class="isRequiredIcon2"
>*</i> >*</i>
{{item.label}} {{item.label}}
</label> </label>
...@@ -18,7 +22,6 @@ ...@@ -18,7 +22,6 @@
<childItem <childItem
:item='item' :item='item'
:formParms='formParms' :formParms='formParms'
:type='type'
@enterInput='enterInput' @enterInput='enterInput'
v-bind="$attrs" v-bind="$attrs"
v-on="$listeners" v-on="$listeners"
...@@ -34,9 +37,8 @@ export default { ...@@ -34,9 +37,8 @@ export default {
childItem childItem
}, },
props: { props: {
type: {},
item: {}, item: {},
formParms: {}, formParms: {}
}, },
methods: { methods: {
uploadSuccess() { uploadSuccess() {
...@@ -55,8 +57,13 @@ export default { ...@@ -55,8 +57,13 @@ export default {
} }
</script> </script>
<style scoped> <style scoped>
.isRequiredIcon { .isRequiredIcon2{
color: red;
}
.isRequiredIcon1 {
color: red; color: red;
display: flex;
align-items: center;
} }
.itemBox { .itemBox {
display: flex; display: flex;
......
...@@ -25,7 +25,6 @@ ...@@ -25,7 +25,6 @@
<template v-else-if="item.type==='elDatePicker'"> <template v-else-if="item.type==='elDatePicker'">
<el-date-picker <el-date-picker
ref='currentDom' ref='currentDom'
v-click-outside="hidePicker"
clearable clearable
style="width:100%" style="width:100%"
size='mini' size='mini'
...@@ -55,7 +54,6 @@ ...@@ -55,7 +54,6 @@
<template v-else-if="item.type==='elDatePickerDate'"> <template v-else-if="item.type==='elDatePickerDate'">
<el-date-picker <el-date-picker
ref='currentDom' ref='currentDom'
v-click-outside="hidePicker"
clearable clearable
style="width:100%" style="width:100%"
size='mini' size='mini'
...@@ -69,7 +67,6 @@ ...@@ -69,7 +67,6 @@
<template v-else-if="item.type==='elDatePickerMonth'"> <template v-else-if="item.type==='elDatePickerMonth'">
<el-date-picker <el-date-picker
ref='currentDom' ref='currentDom'
v-click-outside="hidePicker"
clearable clearable
style="width:100%" style="width:100%"
size='mini' size='mini'
...@@ -83,7 +80,6 @@ ...@@ -83,7 +80,6 @@
<template v-else-if="item.type==='elDatePickerMonthRange'"> <template v-else-if="item.type==='elDatePickerMonthRange'">
<el-date-picker <el-date-picker
ref='currentDom' ref='currentDom'
v-click-outside="hidePicker"
clearable clearable
style="width:100%" style="width:100%"
size='mini' size='mini'
...@@ -127,7 +123,6 @@ ...@@ -127,7 +123,6 @@
:elInfo='item.elInfo' :elInfo='item.elInfo'
:disabled='item.handleDisabled' :disabled='item.handleDisabled'
:prop='item.prop' :prop='item.prop'
:containerType='type'
v-bind="$attrs" v-bind="$attrs"
v-on="$listeners" v-on="$listeners"
> >
...@@ -140,7 +135,7 @@ ...@@ -140,7 +135,7 @@
:elInfo='item.elInfo' :elInfo='item.elInfo'
:disabled='item.handleDisabled' :disabled='item.handleDisabled'
:prop='item.prop' :prop='item.prop'
:containerType='type' :containerType='$attrs.controlType'
v-bind="$attrs" v-bind="$attrs"
v-on="$listeners" v-on="$listeners"
> >
...@@ -154,7 +149,7 @@ ...@@ -154,7 +149,7 @@
:disabled='item.handleDisabled' :disabled='item.handleDisabled'
:formData='formParms' :formData='formParms'
:prop='item.prop' :prop='item.prop'
:containerType='type' :containerType='$attrs.controlType'
v-bind="$attrs" v-bind="$attrs"
v-on="$listeners" v-on="$listeners"
> >
...@@ -168,7 +163,7 @@ ...@@ -168,7 +163,7 @@
:disabled='item.handleDisabled' :disabled='item.handleDisabled'
:formData='formParms' :formData='formParms'
:prop='item.prop' :prop='item.prop'
:containerType='type' :containerType='$attrs.controlType'
v-bind="$attrs" v-bind="$attrs"
v-on="$listeners" v-on="$listeners"
> >
...@@ -182,7 +177,7 @@ ...@@ -182,7 +177,7 @@
:disabled='item.handleDisabled' :disabled='item.handleDisabled'
:formData='formParms' :formData='formParms'
:prop='item.prop' :prop='item.prop'
:containerType='type' :containerType='$attrs.controlType'
v-bind="$attrs" v-bind="$attrs"
v-on="$listeners" v-on="$listeners"
> >
...@@ -196,7 +191,7 @@ ...@@ -196,7 +191,7 @@
:disabled='item.handleDisabled' :disabled='item.handleDisabled'
:formData='formParms' :formData='formParms'
:prop='item.prop' :prop='item.prop'
:containerType='type' :containerType='$attrs.controlType'
:appCode='item.appCode' :appCode='item.appCode'
v-bind="$attrs" v-bind="$attrs"
v-on="$listeners" v-on="$listeners"
...@@ -294,8 +289,8 @@ ...@@ -294,8 +289,8 @@
> >
</hs-tabs> </hs-tabs>
</template> </template>
<template v-else-if="item.type==='hsDateTimePicker'"> <template v-else-if="item.type==='hsDatePicker'">
<hs-date-time-picker <hs-date-picker
v-model="formParms[item.prop]" v-model="formParms[item.prop]"
:config='item.config' :config='item.config'
:elInfo='item.elInfo' :elInfo='item.elInfo'
...@@ -305,7 +300,20 @@ ...@@ -305,7 +300,20 @@
v-bind="$attrs" v-bind="$attrs"
v-on="$listeners" v-on="$listeners"
> >
</hs-date-time-picker> </hs-date-picker>
</template>
<template v-else-if="item.type==='hsTimePicker'">
<hs-time-picker
v-model="formParms[item.prop]"
:config='item.config'
:elInfo='item.elInfo'
:disabled='item.handleDisabled'
:formData='formParms'
:prop='item.prop'
v-bind="$attrs"
v-on="$listeners"
>
</hs-time-picker>
</template> </template>
<template v-else-if="item.type==='hsTagsSelect'"> <template v-else-if="item.type==='hsTagsSelect'">
<hs-tags-select <hs-tags-select
...@@ -315,7 +323,7 @@ ...@@ -315,7 +323,7 @@
:elInfo='item.elInfo' :elInfo='item.elInfo'
:disabled='item.handleDisabled' :disabled='item.handleDisabled'
:prop='item.prop' :prop='item.prop'
:containerType='type' :containerType='$attrs.controlType'
v-bind="$attrs" v-bind="$attrs"
v-on="$listeners" v-on="$listeners"
> >
...@@ -329,7 +337,7 @@ ...@@ -329,7 +337,7 @@
:elInfo='item.elInfo' :elInfo='item.elInfo'
:disabled='item.handleDisabled' :disabled='item.handleDisabled'
:prop='item.prop' :prop='item.prop'
:containerType='type' :containerType='$attrs.controlType'
v-bind="$attrs" v-bind="$attrs"
v-on="$listeners" v-on="$listeners"
> >
...@@ -402,20 +410,28 @@ export default { ...@@ -402,20 +410,28 @@ export default {
ClickOutside ClickOutside
}, },
props: { props: {
type: {}, popover_visible: {
default: false
},
item: {}, item: {},
formParms: {} formParms: {}
}, },
watch: {
popover_visible(newV, oldV) {
if (newV === false) {
if (this.$refs.currentDom && this.$refs.currentDom.hidePicker) {
this.hidePicker()
}
}
}
},
methods: { methods: {
hidePicker1() {
this.$refs.currentDom.hidePicker()
},
hidePicker() { hidePicker() {
this.$refs.currentDom.hidePicker() this.$refs.currentDom.hidePicker()
}, },
itemClick() { itemClick() {
if (this.$listeners.searchSubmit) { if (this.$attrs.searchSubmit) {
this.$listeners.searchSubmit() this.$attrs.searchSubmit()
} }
}, },
uploadSuccess() { uploadSuccess() {
...@@ -425,7 +441,7 @@ export default { ...@@ -425,7 +441,7 @@ export default {
this.$emit('enterInput', val) this.$emit('enterInput', val)
}, },
getPlaceholder(item) { getPlaceholder(item) {
if (item.label && item.isHideLabel && this.type === 'queryArea') { if (item.label && item.isHideLabel && this.$attrs.controlType === 'queryArea') {
return item.label return item.label
} else { } else {
return '' return ''
......
...@@ -6,13 +6,12 @@ ...@@ -6,13 +6,12 @@
:item='item' :item='item'
:formParms='formParms' :formParms='formParms'
@enterInput='enterInput' @enterInput='enterInput'
type='queryArea'
v-bind="$attrs" v-bind="$attrs"
v-on="$listeners" v-on="$listeners"
></asyncFormItem> ></asyncFormItem>
</template> </template>
<template> <template>
<el-button-group class="isMoreSearchBox"> <el-button-group class="isMoreSearchBox" v-show='!configData.hideSearchButton'>
<el-button <el-button
@click="searchSubmit" @click="searchSubmit"
size='mini' size='mini'
...@@ -23,8 +22,10 @@ ...@@ -23,8 +22,10 @@
v-if="columnsMore.length" v-if="columnsMore.length"
placement="bottom" placement="bottom"
width="400" width="400"
trigger="click" trigger="manual"
v-model="bill_search_popover_visible" v-model="bill_search_popover_visible"
@hide='popoverHide'
@show='popoverShow'
> >
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
...@@ -39,6 +40,9 @@ ...@@ -39,6 +40,9 @@
:label="item.label" :label="item.label"
:prop="item.prop" :prop="item.prop"
:key="index" :key="index"
:rules="[
{ required: item.isRequired, message: ''},
]"
> >
<childItem <childItem
:item='item' :item='item'
...@@ -66,6 +70,7 @@ ...@@ -66,6 +70,7 @@
</el-col> </el-col>
</el-row> </el-row>
<el-button <el-button
@click="bill_search_popover_visible=true"
size='mini' size='mini'
type="primary" type="primary"
slot="reference" slot="reference"
...@@ -82,9 +87,13 @@ ...@@ -82,9 +87,13 @@
import elementUiMinins from '../../ucClass/elementUiMinins' import elementUiMinins from '../../ucClass/elementUiMinins'
import asyncFormItem from './dyncFormItemComponent' import asyncFormItem from './dyncFormItemComponent'
import childItem from './dyncFormItemComponentChild' import childItem from './dyncFormItemComponentChild'
import ClickOutside from 'vue-click-outside'
export default { export default {
mixins: [elementUiMinins], mixins: [elementUiMinins],
name: 'dyncFormItemComponentQuery', name: 'dyncFormItemComponentQuery',
directives: {
ClickOutside
},
components: { components: {
asyncFormItem, asyncFormItem,
childItem childItem
...@@ -111,10 +120,17 @@ export default { ...@@ -111,10 +120,17 @@ export default {
}, },
data() { data() {
return { return {
bill_search_popover_visible: false bill_search_popover_visible: false,
popover_visible: false
} }
}, },
methods: { methods: {
popoverShow() {
this.popover_visible = true
},
popoverHide() {
this.popover_visible = false
},
enterInput(val) { enterInput(val) {
const { click } = this.configData const { click } = this.configData
this.actionEnterInputClick(click) this.actionEnterInputClick(click)
...@@ -189,6 +205,8 @@ export default { ...@@ -189,6 +205,8 @@ export default {
} }
.isMoreSearchBox { .isMoreSearchBox {
margin-top: 5px; margin-top: 5px;
display: flex;
align-items: center;
} }
.isMoreSearchForm { .isMoreSearchForm {
/* height: 300px; */ /* height: 300px; */
......
...@@ -18,7 +18,6 @@ ...@@ -18,7 +18,6 @@
:item='coolun' :item='coolun'
:formParms='formParms' :formParms='formParms'
@enterInput='enterInput' @enterInput='enterInput'
type='editArea'
v-bind="$attrs" v-bind="$attrs"
v-on="$listeners" v-on="$listeners"
></asyncFormItemComponent> ></asyncFormItemComponent>
...@@ -52,7 +51,7 @@ export default { ...@@ -52,7 +51,7 @@ export default {
columnsLin: function() { columnsLin: function() {
return this.initColumn(this.columnsAll) return this.initColumn(this.columnsAll)
}, },
isHideBorder:function(){ isHideBorder: function() {
return this.configData.isHideBorder || false return this.configData.isHideBorder || false
} }
}, },
......
...@@ -436,7 +436,7 @@ export default { ...@@ -436,7 +436,7 @@ export default {
// 清除当前input 值 // 清除当前input 值
e.target.value = '' e.target.value = ''
}, },
deleteCurrImage(image, index) { deleteCurrImage(index) {
this.fileList.splice(index, 1) this.fileList.splice(index, 1)
}, },
preview(item, index) { preview(item, index) {
...@@ -462,7 +462,7 @@ export default { ...@@ -462,7 +462,7 @@ export default {
/** /**
* 删除已存在文件 * 删除已存在文件
*/ */
deleteExitFile(item, index) { deleteExitFile(index) {
this.value_inner.splice(index, 1) this.value_inner.splice(index, 1)
this.value_inner = this.value_inner this.value_inner = this.value_inner
}, },
...@@ -483,7 +483,7 @@ export default { ...@@ -483,7 +483,7 @@ export default {
for (const item of this.fileList) { for (const item of this.fileList) {
const formData = new FormData() const formData = new FormData()
formData.append(item.NewFileName, item.fileBrod) formData.append(item.NewFileName, item.fileBrod)
const r = await this.$listeners.uploadFile(formData, this.configData, { const r = await this.$attrs.uploadFile(formData, this.configData, {
onUploadProgress: function(progressEvent) { onUploadProgress: function(progressEvent) {
const complete = const complete =
((progressEvent.loaded / progressEvent.total) * 100) | 0 ((progressEvent.loaded / progressEvent.total) * 100) | 0
...@@ -534,8 +534,8 @@ export default { ...@@ -534,8 +534,8 @@ export default {
this.fileName = this.value_inner[0].OldFileName this.fileName = this.value_inner[0].OldFileName
} }
this.dialogVisible = false this.dialogVisible = false
if (this.$listeners.uploadSuccess) { if (this.$attrs.uploadSuccess) {
this.$listeners.uploadSuccess(this.prop) this.$attrs.uploadSuccess(this.prop)
} }
// 再执行一个action-uploadSuccess // 再执行一个action-uploadSuccess
this.uploadSuccessAction() this.uploadSuccessAction()
......
...@@ -90,7 +90,7 @@ export default { ...@@ -90,7 +90,7 @@ export default {
} }
}, },
configData: function() { configData: function() {
return this.config || { width: 200, height: 200 } return Object.assign(this.configData_, this.config)
} }
}, },
mounted() { mounted() {
...@@ -100,7 +100,12 @@ export default { ...@@ -100,7 +100,12 @@ export default {
return { return {
errorImg01: 'this.src="' + require('./default.png') + '"', errorImg01: 'this.src="' + require('./default.png') + '"',
upload_dialogVisible: false, upload_dialogVisible: false,
upload_src: '' upload_src: '',
configData_: {
accept: 'image/*',
width: 200,
height: 200
}
} }
}, },
methods: { methods: {
...@@ -146,7 +151,7 @@ export default { ...@@ -146,7 +151,7 @@ export default {
return return
} }
formData.append(this.file.name, this.file) formData.append(this.file.name, this.file)
const res = await this.$listeners.uploadFile(formData, this.configData) const res = await this.$attrs.uploadFile(formData, this.configData)
const res_data = res && res.data const res_data = res && res.data
if (Array.isArray(res_data) && res_data.length) { if (Array.isArray(res_data) && res_data.length) {
const file_result = res_data[0] const file_result = res_data[0]
...@@ -157,8 +162,8 @@ export default { ...@@ -157,8 +162,8 @@ export default {
const NewFileName = file_result.NewFileName const NewFileName = file_result.NewFileName
this.$emit('input', NewFileName) this.$emit('input', NewFileName)
this.upload_dialogVisible = false this.upload_dialogVisible = false
if (this.$listeners.uploadSuccess) { if (this.$attrs.uploadSuccess) {
this.$listeners.uploadSuccess(this.prop) this.$attrs.uploadSuccess(this.prop)
} }
} else { } else {
this.$message.error('fileResouce:未返回预期格式([{}])的结果!') this.$message.error('fileResouce:未返回预期格式([{}])的结果!')
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
>{{configData.title}}</div> >{{configData.title}}</div>
<div class="inputCurr"> <div class="inputCurr">
<el-input-number <el-input-number
@focus="selectContent($event)" @focus="selectContent($event)"
:size='configData.size' :size='configData.size'
@keyup.enter.native="submitInput" @keyup.enter.native="submitInput"
v-model="innerValue" v-model="innerValue"
...@@ -17,6 +17,7 @@ ...@@ -17,6 +17,7 @@
:min="getNumber(configData.min)" :min="getNumber(configData.min)"
:max="getNumber(configData.max)" :max="getNumber(configData.max)"
:step='configData.step' :step='configData.step'
:step-strictly='configData.stepStrictly'
></el-input-number> ></el-input-number>
</div> </div>
</div> </div>
...@@ -31,16 +32,20 @@ export default { ...@@ -31,16 +32,20 @@ export default {
set(value) { set(value) {
let result = '' let result = ''
const typeValue = typeof this.value const typeValue = typeof this.value
if (typeValue === 'string') { if (value !== undefined) {
result = String(value)
} else {
result = value result = value
} }
if (typeValue === 'string') {
result = String(result)
}
this.valueChange(result) this.valueChange(result)
this.$emit('input', result) this.$emit('input', result)
}, },
get() { get() {
return Number(this.value) if (this.value === '') return
if (this.value === undefined) return
const result = Number(this.value)
return typeof result === 'number' ? result : 0
} }
}, },
configData: function() { configData: function() {
...@@ -72,7 +77,8 @@ export default { ...@@ -72,7 +77,8 @@ export default {
title: '', title: '',
placeholder: '', placeholder: '',
size: 'mini', size: 'mini',
disabled: false disabled: false,
stepStrictly: false
} }
} }
}, },
......
...@@ -48,6 +48,7 @@ ...@@ -48,6 +48,7 @@
</template> </template>
<script> <script>
import commonMixins from '../../ucClass/commonMixins' import commonMixins from '../../ucClass/commonMixins'
import _ from 'lodash'
export default { export default {
mixins: [commonMixins], mixins: [commonMixins],
name: 'input-select-component', name: 'input-select-component',
...@@ -119,7 +120,7 @@ export default { ...@@ -119,7 +120,7 @@ export default {
methods: { methods: {
remoteMethodsDebounce: _.debounce(async function(query) { remoteMethodsDebounce: _.debounce(async function(query) {
if (this.is_mock) return if (this.is_mock) return
const data = await this.$listeners.queryRef( const data = await this.$attrs.queryRef(
this.configData, this.configData,
query || '', query || '',
this.formData this.formData
......
...@@ -126,7 +126,6 @@ export default { ...@@ -126,7 +126,6 @@ export default {
methods: { methods: {
btKeyUp(e) {}, btKeyUp(e) {},
validateHandle(value) { validateHandle(value) {
debugger
if (value === '') return '' if (value === '') return ''
const { validateRegex, innerValidateRegex, validateAction } = this.configData const { validateRegex, innerValidateRegex, validateAction } = this.configData
if (typeof validateAction === 'function') { if (typeof validateAction === 'function') {
...@@ -134,7 +133,6 @@ export default { ...@@ -134,7 +133,6 @@ export default {
return v return v
} else if (validateRegex) { } else if (validateRegex) {
const r = this.regExpFun(validateRegex, value) const r = this.regExpFun(validateRegex, value)
debugger
if (r) { if (r) {
return value return value
} else { } else {
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
:visible.sync="innervisible" :visible.sync="innervisible"
@closed="dialogClose" @closed="dialogClose"
width="95%" width="95%"
:append-to-body='true' append-to-body
:close-on-click-modal='false' :close-on-click-modal='false'
> >
<div> <div>
...@@ -127,24 +127,26 @@ ...@@ -127,24 +127,26 @@
v-if="lookPageLogVisible" v-if="lookPageLogVisible"
:elInfo='elInfo' :elInfo='elInfo'
/> />
<tbaleColumsSet <devConfigColumsSet
v-model="dialogVisibleTbaleColums" v-bind="$attrs"
:visible.sync="visibleDevSetTableColums"
:tableDataColums='tableDataColums' :tableDataColums='tableDataColums'
:allSourceData='allSourceDataTbaleColumsSet'
:mockSourceData='mockSourceData' :mockSourceData='mockSourceData'
:elInfo='elInfo' :elInfo='elInfo'
:isEditColumns='isEditColumns' :isEditColumns='isEditColumns'
@submit='submitTbaleColumsSet' @saveSuccess='submitTbaleColumsSet'
:config='configEdit'
:data='dataEdit'
:isSubmitSuccessFlage='isSubmitSuccessFlage' :isSubmitSuccessFlage='isSubmitSuccessFlage'
/> />
<asyncFormPropSet <formDevConfigColumsSet
v-model="dialogVisibleAsyncFormColumn" :visible.sync="visibleDevSetFormColums"
:asyncFormColumns='asyncFormColumns' @saveSuccess='asyncFormPropSubmit'
@submit='asyncFormPropSubmit'
:elInfo='elInfo' :elInfo='elInfo'
:controlType='controlType' :controlType='controlType'
v-bind="$attrs" v-bind="$attrs"
v-on="$listeners" :config='configEdit'
:data='dataEdit'
/> />
<hsTabsFormSet <hsTabsFormSet
v-model="dialogVisibleHsTabsForm" v-model="dialogVisibleHsTabsForm"
...@@ -189,19 +191,22 @@ ...@@ -189,19 +191,22 @@
</el-dialog> </el-dialog>
</template> </template>
<script> <script>
import elementUiMinins from '../../ucClass/elementUiMinins'
import { v1 as uuidv1 } from 'uuid' import { v1 as uuidv1 } from 'uuid'
import mockData from '../../common/initDbConfigDataJson' import mockData from '../../common/initDbConfigDataJson'
import hsUtil from 'hs-util-js' import hsUtil from 'hs-util-js'
import lookPageLog from '../../common/lookPageLog.vue' import lookPageLog from '../../common/lookPageLog.vue'
import asyncFormPropSet from '../../common/asyncFormPropSet.vue' import formDevConfigColumsSet from '../../common/formDevConfigColumsSet.vue'
import tbaleColumsSet from '../../common/tbaleColumsSet.vue' import devConfigColumsSet from '../../common/tableDevConfigColumsSet.vue'
import hsTabsFormSet from '../../common/hsTabsFormSet' import hsTabsFormSet from '../../common/hsTabsFormSet'
import 'jsoneditor/dist/jsoneditor.min.css' import 'jsoneditor/dist/jsoneditor.min.css'
import jsoneditor from 'jsoneditor' import jsoneditor from 'jsoneditor'
export default { export default {
mixins: [elementUiMinins], components: {
components: { lookPageLog, asyncFormPropSet, tbaleColumsSet, hsTabsFormSet }, lookPageLog,
formDevConfigColumsSet,
devConfigColumsSet,
hsTabsFormSet
},
name: 'hs-jsoneditor', name: 'hs-jsoneditor',
props: { props: {
elInfo: { elInfo: {
...@@ -234,12 +239,6 @@ export default { ...@@ -234,12 +239,6 @@ export default {
isEditColumns: {} isEditColumns: {}
}, },
computed: { computed: {
allSourceDataTbaleColumsSet() {
return {
config: this.config,
data: this.data
}
},
innervisible: { innervisible: {
get() { get() {
return this.visible return this.visible
...@@ -255,6 +254,12 @@ export default { ...@@ -255,6 +254,12 @@ export default {
} else { } else {
return '' return ''
} }
},
configEdit() {
return (this.editor1 && this.editor1.get()) || {}
},
dataEdit() {
return (this.editor2 && this.editor2.get()) || []
} }
}, },
data() { data() {
...@@ -274,10 +279,10 @@ export default { ...@@ -274,10 +279,10 @@ export default {
lookPageLogVisible: false, lookPageLogVisible: false,
isrequest: false, isrequest: false,
textareaSql: '', textareaSql: '',
dialogVisibleTbaleColums: false, visibleDevSetTableColums: false,
mockSourceData: [], mockSourceData: [],
tableDataColums: [], tableDataColums: [],
dialogVisibleAsyncFormColumn: false, visibleDevSetFormColums: false,
asyncFormColumns: [], asyncFormColumns: [],
isSubmitSuccessFlage: '', isSubmitSuccessFlage: '',
tipAdminDialogVisible: false, tipAdminDialogVisible: false,
...@@ -321,51 +326,13 @@ export default { ...@@ -321,51 +326,13 @@ export default {
num num
) )
}, },
submitTbaleColumsSet(config) {
submitTbaleColumsSet(columnsConfig, flage) {
const config = this.editor1.get()
config.columnsConfig = columnsConfig
this.editor1.set(config) this.editor1.set(config)
const sql = this.textareaSql this.visibleDevSetTableColums = false
const {
dbName,
appCode,
pageName,
controlName,
isMock
} = this.controlInfo
const data = {
dbName,
appCode,
pageName,
controlName,
config,
data: this.editor2.get(),
querySql: this.textareaSql,
mockData: isMock ? 1 : 0,
controlType: this.elInfo.el || ''
}
this.$listeners.webChartConfigSave(data).then(() => {
this.$message.success('设置成功')
if (flage === 'columnStyleSet') {
this.isSubmitSuccessFlage = 'columnStyleSet'
} else {
this.isSubmitSuccessFlage = 'tbaleColumsSet'
this.dialogVisibleTbaleColums = false
}
this.editor1.set(config)
})
}, },
asyncFormPropSubmit(data) { asyncFormPropSubmit(config) {
const config = this.editor1.get() this.editor1.set(config)
config.formColumn = data this.visibleDevSetFormColums = false
const datas = {
config: config
}
this.saveData(datas).then(res => {
this.dialogVisibleAsyncFormColumn = false
this.editor1.set(datas.config)
})
}, },
saveData(datas) { saveData(datas) {
const data = { const data = {
...@@ -376,17 +343,19 @@ export default { ...@@ -376,17 +343,19 @@ export default {
config: datas.config || this.editor1.get(), config: datas.config || this.editor1.get(),
data: this.editor2.get(), data: this.editor2.get(),
querySql: this.textareaSql, querySql: this.textareaSql,
mockData: this.controlInfo.isMock ? 1 : 0 mockData: this.controlInfo.isMock ? 1 : 0,
userId: -1,
configType: -1
} }
return this.$listeners.webChartConfigSave(data) return this.$attrs.webChartConfigSave(data)
}, },
editAnyncColums() { editAnyncColums() {
this.dialogVisibleAsyncFormColumn = true this.visibleDevSetFormColums = true
const config = this.editor1.get() const config = this.editor1.get()
this.asyncFormColumns = config.formColumn this.asyncFormColumns = config.formColumn
}, },
editTableColums() { editTableColums() {
this.dialogVisibleTbaleColums = true this.visibleDevSetTableColums = true
const config = this.editor1.get() const config = this.editor1.get()
this.mockSourceData = this.editor2.get() this.mockSourceData = this.editor2.get()
if (config && config.columnsConfig && config.columnsConfig.length) { if (config && config.columnsConfig && config.columnsConfig.length) {
...@@ -415,7 +384,7 @@ export default { ...@@ -415,7 +384,7 @@ export default {
this.showView() this.showView()
}, },
revertVersion_(parm) { revertVersion_(parm) {
this.$listeners.webChartConfigRevert(parm).then(res => { this.$attrs.webChartConfigRevert(parm).then(res => {
this.getPageInfo() this.getPageInfo()
this.isrequest = !this.isrequest this.isrequest = !this.isrequest
}) })
...@@ -425,18 +394,21 @@ export default { ...@@ -425,18 +394,21 @@ export default {
execSql: this.query_sql, execSql: this.query_sql,
dbName: this.controlInfo.dbName dbName: this.controlInfo.dbName
} }
this.$listeners.execSql(data).then(res => { this.$attrs.execSql(data).then(res => {
this.editor2.set(res) this.editor2.set(res)
}) })
}, },
getPageInfo(info = this.controlInfo) { getPageInfo(info = this.controlInfo) {
// 传入的参数要判断是否是系统、用户、开发
const { controlName, pageName, appCode } = info const { controlName, pageName, appCode } = info
const data = { const data = {
controlName, controlName,
appCode, appCode,
pageName pageName,
userId: -1,
configType: -1
} }
this.$listeners.webChartConfigQuery(data).then(res => { this.$attrs.webChartConfigQuery(data).then(res => {
const data = res.data const data = res.data
if (data && data.length) { if (data && data.length) {
// 以后端返回的控件信息为准 // 以后端返回的控件信息为准
...@@ -478,7 +450,7 @@ export default { ...@@ -478,7 +450,7 @@ export default {
appCode: this.controlInfo.appCode, appCode: this.controlInfo.appCode,
pageName: this.controlInfo.pageName pageName: this.controlInfo.pageName
} }
this.$listeners.saveAsDataToLocal(data) this.$attrs.saveAsDataToLocal(data)
}, },
dialogClose() { dialogClose() {
this.innervisible = false this.innervisible = false
...@@ -563,9 +535,11 @@ export default { ...@@ -563,9 +535,11 @@ export default {
config: editor1Config, config: editor1Config,
data: editor2Config, data: editor2Config,
querySql: sql, querySql: sql,
mockData: this.controlInfo.isMock ? 1 : 0 mockData: this.controlInfo.isMock ? 1 : 0,
userId: -1,
configType: -1
} }
this.$listeners.webChartConfigSave(data_).then(() => { this.$attrs.webChartConfigSave(data_).then(() => {
this.$message.success('设置成功') this.$message.success('设置成功')
}) })
}, },
......
...@@ -23,12 +23,11 @@ ...@@ -23,12 +23,11 @@
> >
<hs-dync-form <hs-dync-form
@searchSubmit='queryTable' @searchSubmit='queryTable'
type='queryArea' controlType='queryArea'
:formParms='searchForm' :formParms='searchForm'
:elInfo='hsDyncFormEl' :elInfo='hsDyncFormEl'
:config='hsDyncFormConfig' :config='hsDyncFormConfig'
v-bind="$attrs" v-bind="$attrs"
v-on="$listeners"
> >
</hs-dync-form> </hs-dync-form>
<div <div
...@@ -57,7 +56,6 @@ ...@@ -57,7 +56,6 @@
@tableRowDblclick='tableRowDblclick' @tableRowDblclick='tableRowDblclick'
@paginationFun="paginationFun" @paginationFun="paginationFun"
v-bind="$attrs" v-bind="$attrs"
v-on="$listeners"
> >
</hs-table> </hs-table>
...@@ -71,6 +69,7 @@ ...@@ -71,6 +69,7 @@
@click="dialogTableVisible = false" @click="dialogTableVisible = false"
>取 消</el-button> >取 消</el-button>
<el-button <el-button
v-show='configData.isShowSubmit'
size='mini' size='mini'
type="primary" type="primary"
@click="submit" @click="submit"
...@@ -106,7 +105,6 @@ export default { ...@@ -106,7 +105,6 @@ export default {
} }
}, },
hsTableData() { hsTableData() {
console.log('测试hsTableData')
const data = this.tableData const data = this.tableData
const { value } = this.configData const { value } = this.configData
const list = this.value ? this.value.split(',') : [] const list = this.value ? this.value.split(',') : []
...@@ -129,7 +127,7 @@ export default { ...@@ -129,7 +127,7 @@ export default {
}, },
// 查询表单配置 // 查询表单配置
hsDyncFormConfig: function() { hsDyncFormConfig: function() {
const { config } = this.$listeners.findTargetControl( const { config } = this.$attrs.findTargetControl(
this.hsDyncFormEl.position, this.hsDyncFormEl.position,
'hsDyncFormComponent' 'hsDyncFormComponent'
) )
...@@ -144,7 +142,7 @@ export default { ...@@ -144,7 +142,7 @@ export default {
}, },
// 表格配置 // 表格配置
hsTableConfig() { hsTableConfig() {
const { config } = this.$listeners.findTargetControl( const { config } = this.$attrs.findTargetControl(
this.hsTableEl.position, this.hsTableEl.position,
'hsTableSimple' 'hsTableSimple'
) )
...@@ -159,7 +157,7 @@ export default { ...@@ -159,7 +157,7 @@ export default {
} }
}, },
configData: function() { configData: function() {
return this.config || {} return Object.assign(defaultConfigData, this.config || {})
} }
}, },
watch: { watch: {
...@@ -182,7 +180,10 @@ export default { ...@@ -182,7 +180,10 @@ export default {
isChange: false, isChange: false,
selectedData: [], selectedData: [],
firstQuery: true, firstQuery: true,
paging: null paging: null,
defaultConfigData: {
isShowSubmit: true
}
} }
}, },
methods: { methods: {
...@@ -298,7 +299,7 @@ export default { ...@@ -298,7 +299,7 @@ export default {
// 调用外面的查询方法 // 调用外面的查询方法
const obj = {} const obj = {}
obj[value] = this.value obj[value] = this.value
const data = await this.$listeners.queryLookup( const data = await this.$attrs.queryLookup(
this.configData, this.configData,
obj, obj,
this.formData this.formData
...@@ -323,7 +324,7 @@ export default { ...@@ -323,7 +324,7 @@ export default {
this.searchForm.page = 1 this.searchForm.page = 1
} }
// 调用外面的查询方法 // 调用外面的查询方法
const data = await this.$listeners.queryLookup( const data = await this.$attrs.queryLookup(
this.configData, this.configData,
this.searchForm, this.searchForm,
this.formData this.formData
...@@ -360,22 +361,37 @@ export default { ...@@ -360,22 +361,37 @@ export default {
return data_ return data_
}, },
/** /**
* 将输入框第一个值属性作为查询条件 * 将输入框第一个值属性作为查询条件, 把显示的值赋给查询对象中的某个值,当查询区域中有displayfield对应的字段时 则直接赋予给他,否则赋予给第一个字段
*/ */
setDefaultQueryParms() { setDefaultQueryParms() {
if (this.dialogTableVisible) return if (this.dialogTableVisible) return
const config = this.hsDyncFormConfig || {} const config = this.hsDyncFormConfig || {}
if (config.formColumn && config.formColumn.length) { if (config.formColumn && config.formColumn.length) {
const formColumn = config.formColumn const formColumn = config.formColumn
const targetItem = formColumn[0] const displayfield = this.configData.displayfield
const prop = targetItem.prop const f = displayfield
this.$set(this.searchForm, prop, this.label_value) ? formColumn.find(item => item.prop === displayfield)
: false
if (f) {
this.$set(this.searchForm, displayfield, this.label_value)
} else {
const targetItem = formColumn[0]
const prop = targetItem.prop
this.$set(this.searchForm, prop, this.label_value)
}
} else {
this.$set(
this.searchForm,
this.configData.displayfield,
this.label_value
)
} }
}, },
/** /**
* 多选时必须点击确定按钮 * 多选时必须点击确定按钮
*/ */
submit() { submit() {
if (this.getDisabled) return
const selectData = this.hsTableData.filter(x => x.isSelected) const selectData = this.hsTableData.filter(x => x.isSelected)
const prop = this.configData.value const prop = this.configData.value
const list_ids = selectData.map(x => { const list_ids = selectData.map(x => {
...@@ -388,6 +404,7 @@ export default { ...@@ -388,6 +404,7 @@ export default {
// 设置回写字段 // 设置回写字段
this.setWritebackfield(selectData) this.setWritebackfield(selectData)
this.dialogTableVisible = false this.dialogTableVisible = false
debugger
}, },
setSelectedData(data) { setSelectedData(data) {
this.selectedData = _.cloneDeep(data) this.selectedData = _.cloneDeep(data)
...@@ -396,6 +413,7 @@ export default { ...@@ -396,6 +413,7 @@ export default {
* 双击行时设置当前行为选中项 * 双击行时设置当前行为选中项
*/ */
tableRowDblclick(row) { tableRowDblclick(row) {
if (this.getDisabled) return
const prop = this.configData.value const prop = this.configData.value
this.$emit('input', row[prop]) this.$emit('input', row[prop])
this.changeAction(row[prop]) this.changeAction(row[prop])
......
...@@ -39,7 +39,7 @@ ...@@ -39,7 +39,7 @@
<hs-dync-form <hs-dync-form
height='55px' height='55px'
@searchSubmit='queryLeft' @searchSubmit='queryLeft'
type='queryArea' controlType='queryArea'
:formParms='searchFormLeft' :formParms='searchFormLeft'
:elInfo='hsDyncFormElLeft' :elInfo='hsDyncFormElLeft'
:config='hsDyncFormConfigLeft' :config='hsDyncFormConfigLeft'
...@@ -83,7 +83,7 @@ ...@@ -83,7 +83,7 @@
<hs-dync-form <hs-dync-form
height='55px' height='55px'
@searchSubmit='queryRight' @searchSubmit='queryRight'
type='queryArea' controlType='queryArea'
:formParms='searchFormRight' :formParms='searchFormRight'
:elInfo='hsDyncFormElRight' :elInfo='hsDyncFormElRight'
:config='hsDyncFormConfigRight' :config='hsDyncFormConfigRight'
......
<template> <template>
<div style='width:100%;height:100%;'> <div class="outBox">
<div class="boxInputButton"> <div class="boxInputButton">
<el-input <el-input
:disabled="getDisabled" :disabled="getDisabled"
...@@ -35,12 +35,11 @@ ...@@ -35,12 +35,11 @@
<hs-dync-form <hs-dync-form
height='55px' height='55px'
@searchSubmit='queryLeft' @searchSubmit='queryLeft'
type='queryArea' controlType='queryArea'
:formParms='searchFormLeft' :formParms='searchFormLeft'
:elInfo='hsDyncFormElLeft' :elInfo='hsDyncFormElLeft'
:config='hsDyncFormConfigLeft' :config='hsDyncFormConfigLeft'
v-bind="$attrs" v-bind="$attrs"
v-on="$listeners"
> >
</hs-dync-form> </hs-dync-form>
<hs-table <hs-table
...@@ -52,7 +51,6 @@ ...@@ -52,7 +51,6 @@
:elInfo='hsTableElLeft' :elInfo='hsTableElLeft'
@paginationFun="paginationFunLeft" @paginationFun="paginationFunLeft"
v-bind="$attrs" v-bind="$attrs"
v-on="$listeners"
> >
</hs-table> </hs-table>
</div> </div>
...@@ -79,12 +77,11 @@ ...@@ -79,12 +77,11 @@
<hs-dync-form <hs-dync-form
height='55px' height='55px'
@searchSubmit='queryRight' @searchSubmit='queryRight'
type='queryArea' controlType='queryArea'
:formParms='searchFormRight' :formParms='searchFormRight'
:elInfo='hsDyncFormElRight' :elInfo='hsDyncFormElRight'
:config='hsDyncFormConfigRight' :config='hsDyncFormConfigRight'
v-bind="$attrs" v-bind="$attrs"
v-on="$listeners"
> >
</hs-dync-form> </hs-dync-form>
<hs-table <hs-table
...@@ -96,7 +93,6 @@ ...@@ -96,7 +93,6 @@
:elInfo='hsTableElRight' :elInfo='hsTableElRight'
@paginationFun="paginationFunRight" @paginationFun="paginationFunRight"
v-bind="$attrs" v-bind="$attrs"
v-on="$listeners"
> >
</hs-table> </hs-table>
</div> </div>
...@@ -113,11 +109,13 @@ ...@@ -113,11 +109,13 @@
@click="beforeClose" @click="beforeClose"
>取 消</el-button> >取 消</el-button>
<el-button <el-button
v-show="configData.isShowSubmit"
size='mini' size='mini'
type="primary" type="primary"
@click="submit" @click="submit"
>确 定</el-button> >确 定</el-button>
<el-button <el-button
v-show="configData.isShowAdd"
size='mini' size='mini'
icon='el-icon-position' icon='el-icon-position'
type="primary" type="primary"
...@@ -161,21 +159,21 @@ export default { ...@@ -161,21 +159,21 @@ export default {
}, },
hsDyncFormConfigLeft: function() { hsDyncFormConfigLeft: function() {
// 获取控件配置 // 获取控件配置
const { config } = this.$listeners.findTargetControl( const { config } = this.$attrs.findTargetControl(
this.hsDyncFormElLeft.position, this.hsDyncFormElLeft.position,
'hsDyncFormComponent' 'hsDyncFormComponent'
) )
return config return config
}, },
rightHsTableConfig() { rightHsTableConfig() {
const { config } = this.$listeners.findTargetControl( const { config } = this.$attrs.findTargetControl(
this.hsTableElRight.position, this.hsTableElRight.position,
'hsTableSimple' 'hsTableSimple'
) )
return config return config
}, },
leftHsTableConfig() { leftHsTableConfig() {
const { config } = this.$listeners.findTargetControl( const { config } = this.$attrs.findTargetControl(
this.hsTableElLeft.position, this.hsTableElLeft.position,
'hsTableSimple' 'hsTableSimple'
) )
...@@ -198,7 +196,7 @@ export default { ...@@ -198,7 +196,7 @@ export default {
}, },
hsDyncFormConfigRight: function() { hsDyncFormConfigRight: function() {
// 获取控件配置 // 获取控件配置
const { config } = this.$listeners.findTargetControl( const { config } = this.$attrs.findTargetControl(
this.hsDyncFormElRight.position, this.hsDyncFormElRight.position,
'hsDyncFormComponent' 'hsDyncFormComponent'
) )
...@@ -217,7 +215,7 @@ export default { ...@@ -217,7 +215,7 @@ export default {
} }
}, },
configData: function() { configData: function() {
return this.config || {} return Object.assign(this.defaultConfigData, this.config || {})
}, },
label_value: { label_value: {
get() { get() {
...@@ -261,6 +259,10 @@ export default { ...@@ -261,6 +259,10 @@ export default {
dialogVisible: false, dialogVisible: false,
dialogConfig: { dialogConfig: {
title: '查询' title: '查询'
},
defaultConfigData: {
isShowSubmit: true,
isShowAdd:true
} }
} }
}, },
...@@ -274,7 +276,7 @@ export default { ...@@ -274,7 +276,7 @@ export default {
*/ */
async showAddPage() { async showAddPage() {
this.isChange = false this.isChange = false
const configData = this.$listeners.dealWithConfig( const configData = this.$attrs.dealWithConfig(
this.configData, this.configData,
this.formData this.formData
) )
...@@ -402,7 +404,7 @@ export default { ...@@ -402,7 +404,7 @@ export default {
const { value } = this.configData const { value } = this.configData
// 调用外面的查询方法 // 调用外面的查询方法
this.searchFormRight[value] = this.value this.searchFormRight[value] = this.value
const data = await this.$listeners.queryLookup( const data = await this.$attrs.queryLookup(
this.configData, this.configData,
this.searchFormRight, this.searchFormRight,
this.formData this.formData
...@@ -430,7 +432,7 @@ export default { ...@@ -430,7 +432,7 @@ export default {
this.searchFormLeft.page = 1 this.searchFormLeft.page = 1
} }
// 调用外面的查询方法 // 调用外面的查询方法
const data = await this.$listeners.queryLookup( const data = await this.$attrs.queryLookup(
this.configData, this.configData,
this.searchFormLeft, this.searchFormLeft,
this.formData this.formData
...@@ -616,6 +618,12 @@ export default { ...@@ -616,6 +618,12 @@ export default {
} }
</script> </script>
<style scoped> <style scoped>
.outBox{
width: 100%;
height: 100%;
display: flex;
align-items: center;
}
.showBox { .showBox {
position: relative; position: relative;
width: 100%; width: 100%;
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
> >
<el-select <el-select
:class="{'noneStyle':isReadOnly1,'noneStyle2':isReadOnly1}" :class="{'noneStyle':isReadOnly1,'noneStyle2':isReadOnly1}"
v-clickoutside='handleClickOutside' v-click-outside='handleClickOutside'
ref='elSelect' ref='elSelect'
:allow-create='configData.allowCreate' :allow-create='configData.allowCreate'
:default-first-option='configData.defaultFirstOption' :default-first-option='configData.defaultFirstOption'
...@@ -438,7 +438,7 @@ export default { ...@@ -438,7 +438,7 @@ export default {
*/ */
async showAddPage() { async showAddPage() {
this.isChange = false this.isChange = false
const configData = this.$listeners.dealWithConfig( const configData = this.$attrs.dealWithConfig(
this.configData, this.configData,
this.formData this.formData
) )
...@@ -556,7 +556,7 @@ export default { ...@@ -556,7 +556,7 @@ export default {
// 节流 // 节流
remoteMethodsDebounce: _.debounce(async function(query) { remoteMethodsDebounce: _.debounce(async function(query) {
if (this.is_mock) return if (this.is_mock) return
const data = await this.$listeners.queryRef( const data = await this.$attrs.queryRef(
this.configData, this.configData,
query || '', query || '',
this.formData this.formData
...@@ -697,7 +697,7 @@ export default { ...@@ -697,7 +697,7 @@ export default {
color: inherit; color: inherit;
} }
.noneStyle >>> .el-input__suffix-inner { .noneStyle >>> .el-input__suffix-inner {
display: none; display: none ;
} }
.noneStyle2 >>> .el-input__suffix-inner { .noneStyle2 >>> .el-input__suffix-inner {
display: none; display: none;
......
<template> <template>
<div class="componentBox">
<div class="componentLabel" v-if='configData.title'>{{configData.title}}</div>
<el-switch <el-switch
class="componentSelf"
v-model="innerValue" v-model="innerValue"
:active-text="configData.activeText" :active-text="configData.activeText"
:inactive-text="configData.inactiveText" :inactive-text="configData.inactiveText"
...@@ -7,6 +10,8 @@ ...@@ -7,6 +10,8 @@
:disabled='getDisabled' :disabled='getDisabled'
> >
</el-switch> </el-switch>
</div>
</template> </template>
<script> <script>
import commonMixins from '../../ucClass/commonMixins' import commonMixins from '../../ucClass/commonMixins'
...@@ -67,6 +72,7 @@ export default { ...@@ -67,6 +72,7 @@ export default {
data() { data() {
return { return {
config_data: { config_data: {
title: '',
activeText: '', activeText: '',
inactiveText: '', inactiveText: '',
disabled: false disabled: false
...@@ -87,3 +93,23 @@ export default { ...@@ -87,3 +93,23 @@ export default {
} }
} }
</script> </script>
<style scoped>
.componentBox {
padding: 1px;
width: 100%;
height: 100%;
align-items: center;
display: flex;
}
.componentLabel{
margin-right: 8px;
display: flex;
justify-content: center;
align-items: center;
}
.componentSelf{
display: flex;
justify-content: center;
align-items: center;
}
</style>
<template> <template>
<div style="width:100%;height:100%;" class="itemBoxHstable"> <div style="width:100%;height:100%;" class="itemBoxHstable">
<template v-if="item.showType==='text'||!item.showType"> <template v-if="item.showType==='text'||!item.showType">
<span <span
style="width:100%" style="width:100%"
...@@ -26,7 +26,6 @@ ...@@ -26,7 +26,6 @@
:elInfo='item.elInfo' :elInfo='item.elInfo'
:disabled='getDisabled||isEditable' :disabled='getDisabled||isEditable'
:formData='formParms' :formData='formParms'
v-on="$listeners"
v-bind="$attrs" v-bind="$attrs"
></hs-input> ></hs-input>
</template> </template>
...@@ -43,7 +42,7 @@ ...@@ -43,7 +42,7 @@
<template v-else-if="item.showType==='elDatePicker'"> <template v-else-if="item.showType==='elDatePicker'">
<el-date-picker <el-date-picker
ref='currentDom' ref='currentDom'
v-clickoutside="hidePicker" v-click-outside="hidePicker"
clearable clearable
:disabled='getDisabled||isEditable' :disabled='getDisabled||isEditable'
style="width:100%" style="width:100%"
...@@ -60,8 +59,8 @@ ...@@ -60,8 +59,8 @@
<template v-else-if="item.showType==='elDatePickerDatetime'"> <template v-else-if="item.showType==='elDatePickerDatetime'">
<el-date-picker <el-date-picker
ref='currentDom' ref='currentDom'
v-clickoutside="hidePicker"
clearable clearable
v-click-outside="hidePicker"
:disabled='getDisabled||isEditable' :disabled='getDisabled||isEditable'
style="width:100%" style="width:100%"
size='mini' size='mini'
...@@ -98,7 +97,6 @@ ...@@ -98,7 +97,6 @@
:elInfo='item.elInfo' :elInfo='item.elInfo'
:disabled='getDisabled||isEditable' :disabled='getDisabled||isEditable'
:formData='formParms' :formData='formParms'
v-on="$listeners"
v-bind="$attrs" v-bind="$attrs"
> >
</hs-computed> </hs-computed>
...@@ -113,7 +111,6 @@ ...@@ -113,7 +111,6 @@
:elInfo='item.elInfo' :elInfo='item.elInfo'
:formData='formParms' :formData='formParms'
:disabled='getDisabled||isEditable' :disabled='getDisabled||isEditable'
v-on="$listeners"
v-bind="$attrs" v-bind="$attrs"
> >
</hs-select-plus> </hs-select-plus>
...@@ -127,7 +124,6 @@ ...@@ -127,7 +124,6 @@
:disabled='getDisabled||isEditable' :disabled='getDisabled||isEditable'
:formData='formParms' :formData='formParms'
v-bind="$attrs" v-bind="$attrs"
v-on="$listeners"
></hs-input-number> ></hs-input-number>
</template> </template>
<template v-else-if="item.showType==='hsPopoverTextarea'"> <template v-else-if="item.showType==='hsPopoverTextarea'">
...@@ -139,7 +135,6 @@ ...@@ -139,7 +135,6 @@
:disabled='getDisabled||isEditable' :disabled='getDisabled||isEditable'
:formData='formParms' :formData='formParms'
v-bind="$attrs" v-bind="$attrs"
v-on="$listeners"
></hs-popover-textarea> ></hs-popover-textarea>
</template> </template>
<template v-else-if="item.showType==='hsLookup'"> <template v-else-if="item.showType==='hsLookup'">
...@@ -150,7 +145,6 @@ ...@@ -150,7 +145,6 @@
:elInfo='item.elInfo' :elInfo='item.elInfo'
:disabled='getDisabled||isEditable' :disabled='getDisabled||isEditable'
:formData='formParms' :formData='formParms'
v-on="$listeners"
v-bind="$attrs" v-bind="$attrs"
> >
</hs-lookup> </hs-lookup>
...@@ -163,7 +157,6 @@ ...@@ -163,7 +157,6 @@
:elInfo='item.elInfo' :elInfo='item.elInfo'
:formData='formParms' :formData='formParms'
:disabled='getDisabled||isEditable' :disabled='getDisabled||isEditable'
v-on="$listeners"
v-bind="$attrs" v-bind="$attrs"
> >
</hs-tags-select> </hs-tags-select>
...@@ -176,7 +169,6 @@ ...@@ -176,7 +169,6 @@
:elInfo='item.elInfo' :elInfo='item.elInfo'
:formData='formParms' :formData='formParms'
:disabled='getDisabled' :disabled='getDisabled'
v-on="$listeners"
v-bind="$attrs" v-bind="$attrs"
> >
</hs-tags-table> </hs-tags-table>
...@@ -189,7 +181,6 @@ ...@@ -189,7 +181,6 @@
:elInfo='item.elInfo' :elInfo='item.elInfo'
:formData='formParms' :formData='formParms'
:disabled='getDisabled||isEditable' :disabled='getDisabled||isEditable'
v-on="$listeners"
v-bind="$attrs" v-bind="$attrs"
> >
</hs-tags-from> </hs-tags-from>
...@@ -202,7 +193,6 @@ ...@@ -202,7 +193,6 @@
:disabled='getDisabled||isEditable' :disabled='getDisabled||isEditable'
:formData='formParms' :formData='formParms'
:prop='item.prop' :prop='item.prop'
v-on="$listeners"
v-bind="$attrs" v-bind="$attrs"
> >
</hs-select-list> </hs-select-list>
...@@ -215,7 +205,6 @@ ...@@ -215,7 +205,6 @@
:disabled='getDisabled||isEditable' :disabled='getDisabled||isEditable'
:formData='formParms' :formData='formParms'
:prop='item.prop' :prop='item.prop'
v-on="$listeners"
v-bind="$attrs" v-bind="$attrs"
> >
</hs-drag-list> </hs-drag-list>
...@@ -228,19 +217,44 @@ ...@@ -228,19 +217,44 @@
:disabled='getDisabled||isEditable' :disabled='getDisabled||isEditable'
:formData='formParms' :formData='formParms'
:prop='item.prop' :prop='item.prop'
v-on="$listeners"
v-bind="$attrs" v-bind="$attrs"
> >
</hs-input-select> </hs-input-select>
</template> </template>
<template v-else-if="item.showType==='hsTimePicker'">
<hs-time-picker
v-model="formParms[item.prop]"
:config='item.config'
:elInfo='item.elInfo'
:disabled='getDisabled||isEditable'
:formData='formParms'
:prop='item.prop'
v-bind="$attrs"
>
</hs-time-picker>
</template>
<template v-else-if="item.showType==='hsDatePicker'">
<hs-date-picker
v-model="formParms[item.prop]"
:config='item.config'
:elInfo='item.elInfo'
:disabled='getDisabled||isEditable'
:formData='formParms'
:prop='item.prop'
v-bind="$attrs"
>
</hs-date-picker>
</template>
</div> </div>
</template> </template>
<script> <script>
import clickOutSide from '../../ucClass/click-out-side' // import clickOutSide from '../../ucClass/click-out-side'
// import Clickoutside from 'element-ui/src/utils/clickoutside'
import Clickoutside from 'vue-click-outside'
export default { export default {
directives: { directives: {
clickoutside: clickOutSide ClickOutside: Clickoutside
}, },
name: 'dyncFormItemComponentChild_', name: 'dyncFormItemComponentChild_',
props: { props: {
...@@ -294,7 +308,10 @@ export default { ...@@ -294,7 +308,10 @@ export default {
}, },
methods: { methods: {
hidePicker() { hidePicker() {
this.$refs.currentDom.hidePicker() // console.log(this.item.showType)
// if (this.$refs.currentDom && this.$refs.currentDom.hidePicker) {
// this.$refs.currentDom.hidePicker()
// }
}, },
enterInput(val) { enterInput(val) {
this.$emit('enterInput', val) this.$emit('enterInput', val)
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
<template> <template>
<el-table <u-table
:data="tableData"
border
style="width: 100%">
<template slot="empty">
没有查询到符合条件的记录
</template>
<u-table-column
show-overflow-tooltip
v-for="item in tableColumn" :key="item"
:prop="item"
:label="item">
</u-table-column>
</u-table>
<!-- <el-table
class="innerTable" class="innerTable"
:data="tableData" :data="tableData"
border border
> >
<el-table-column v-for="item in tableColumn" :key="item" <el-table-column
v-for="item in tableColumn" :key="item"
:prop="item" :prop="item"
:label="item"> :label="item">
</el-table-column> </el-table-column>
</el-table> </el-table> -->
</template> </template>
<script> <script>
export default { export default {
...@@ -52,6 +67,7 @@ export default { ...@@ -52,6 +67,7 @@ export default {
</script> </script>
<style scoped> <style scoped>
.innerTable{ .innerTable{
margin: 5px;
border: 1px solid #ebeef5 !important border: 1px solid #ebeef5 !important
} }
</style> </style>
...@@ -37,12 +37,6 @@ ...@@ -37,12 +37,6 @@
<script> <script>
export default { export default {
props: { props: {
showItem: {
type: Function
},
disabledItem: {
type: Function
},
row: { row: {
type: Object, type: Object,
default() { default() {
...@@ -57,9 +51,6 @@ export default { ...@@ -57,9 +51,6 @@ export default {
} }
}, },
computed: { computed: {
filterData() {
return this.dealWithData()
},
columnsHorizontal() { columnsHorizontal() {
return this.dealWithColumns(false) return this.dealWithColumns(false)
}, },
...@@ -71,15 +62,8 @@ export default { ...@@ -71,15 +62,8 @@ export default {
} }
}, },
methods: { methods: {
dealWithData() {
this.data.forEach(element => {
element.isShow = this.showItem(element, this.row)
element.isShow && (element.isDisabled = this.disabledItem(element, this.row))
})
return this.data.filter(element => element.isShow)
},
dealWithColumns(mark) { dealWithColumns(mark) {
return this.filterData.filter(item => mark ? item.isMore : !item.isMore) return this.data.filter(item => mark ? item.isMore : !item.isMore)
}, },
itemClickHandle(item, row) { itemClickHandle(item, row) {
this.$emit('itemClickHandle', item, this.row) this.$emit('itemClickHandle', item, this.row)
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
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