This commit is contained in:
linfso 2024-05-26 08:45:32 +08:00
parent 65f85bb42b
commit 1cadff60f4
6 changed files with 172 additions and 473 deletions

View File

@ -16,8 +16,8 @@ const install = function(Vue) {
Vue.directive('dialogDragWidth', dialogDragWidth) Vue.directive('dialogDragWidth', dialogDragWidth)
Vue.directive('dialogDragHeight', dialogDragHeight) Vue.directive('dialogDragHeight', dialogDragHeight)
Vue.directive('dialogFullScreen', dialogFullScreen) Vue.directive('dialogFullScreen', dialogFullScreen)
Vue.directive('elTableResizeHeight', elTableResizeHeight) Vue.directive('doTableResizeHeight', elTableResizeHeight)
// v-elTableResizeHeight="{bottomOffset: 85}" // v-doTableResizeHeight="{topSearchFormRef: 'queryForm'}"
Vue.directive('el-select-loadmore', elSelectLoadmore); Vue.directive('el-select-loadmore', elSelectLoadmore);
} }

View File

@ -1,3 +1,5 @@
// v-doTableResizeHeight="{topSearchFormRef: 'queryForm'}"
// 设置表格高度 // 设置表格高度
const doResize = async (el, binding, vnode) => { const doResize = async (el, binding, vnode) => {
// 获取表格Dom对象 // 获取表格Dom对象
@ -9,17 +11,32 @@ const doResize = async (el, binding, vnode) => {
value value
} = binding } = binding
if (!$table.height) { console.log("=====>1111==>");
throw new Error(`el-$table must set the height. Such as height='100px'`) console.log($table);
} console.log($table.searchFormRef);
// 获取距底部距离(用于展示页码等信息)
const bottomOffset = (value && value.bottomOffset) || 30
this.$nextTick(function() {
let queryFormEl = this.$refs[$table.searchFormRef].$el;
console.log( queryFormEl );
let tableH = queryFormEl.offsetHeight+190;
tableHeight = window.innerHeight - tableH;
$table.layout.setHeight(tableHeight)
});
// if (!$table.height) {
// throw new Error(`el-$table must set the height. Such as height='100px'`)
// }
// 获取距底部距离(用于展示页码等信息)
// const bottomOffset = (value && value.bottomOffset) || 30
// if (!$table) return
if (!$table) return
// 计算列表高度并设置 // 计算列表高度并设置
const height = window.innerHeight - el.getBoundingClientRect().top - bottomOffset // const height = window.innerHeight - el.getBoundingClientRect().top - bottomOffset
$table.layout.setHeight(height) // $table.layout.setHeight(height)
$table.doLayout() $table.doLayout()
} }

View File

@ -54,6 +54,8 @@ import DictData from '@/components/DictData'
// XdTable // XdTable
import XdTable from "@/components/XdTable" import XdTable from "@/components/XdTable"
import XdPageContainer from "@/components/XdPageContainer"
import XdTextareaInput from "@/components/XdTextareaInput" import XdTextareaInput from "@/components/XdTextareaInput"
// XdDialog // XdDialog
@ -118,6 +120,7 @@ Vue.component('ImageOneUpload', ImageOneUpload)
Vue.component('ImagePreview', ImagePreview) Vue.component('ImagePreview', ImagePreview)
Vue.component('CustomDatePicker', CustomDatePicker) Vue.component('CustomDatePicker', CustomDatePicker)
Vue.component('XdTable', XdTable) Vue.component('XdTable', XdTable)
Vue.component('XdPageContainer', XdPageContainer)
Vue.component('XdDialog', XdDialog) Vue.component('XdDialog', XdDialog)
Vue.component('SearchForm', SearchForm) Vue.component('SearchForm', SearchForm)
Vue.component('XdTextareaInput', XdTextareaInput) Vue.component('XdTextareaInput', XdTextareaInput)

View File

@ -1,6 +1,6 @@
<template> <template>
<div class="app-container"> <XdPageContainer class="app-container">
<SearchForm :model="queryParams" ref="queryForm" size="small" :maxShow="3" label-width="68px" v-show="showSearch" @search="handleQuery" @reset="resetQuery"> <SearchForm slot="pageHeader" :model="queryParams" ref="queryForm" size="small" :maxShow="3" label-width="68px" v-show="showSearch" @search="handleQuery" @reset="resetQuery">
<el-form-item label="收件人" prop="name"> <el-form-item label="收件人" prop="name">
<el-input <el-input
v-model="queryParams.name" v-model="queryParams.name"
@ -22,172 +22,13 @@
<el-form-item :label="$t('所属国家')" prop="country"> <el-form-item :label="$t('所属国家')" prop="country">
<CountryPicker :placeholder="$t('所属国家')" v-model="queryParams.country" @onChange="handleQuery"></CountryPicker> <CountryPicker :placeholder="$t('所属国家')" v-model="queryParams.country" @onChange="handleQuery"></CountryPicker>
</el-form-item> </el-form-item>
<!-- <el-form-item label="" prop="customerCode">
<el-input
v-model="queryParams.customerCode"
:placeholder="$t('客户编码')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item> -->
<!-- <el-form-item label="" prop="shortName">
<el-input
v-model="queryParams.shortName"
:placeholder="$t('客户名称')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item> -->
<!-- <el-form-item label="" prop="alias">
<el-input
v-model="queryParams.alias"
:placeholder="$t('地址别名')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="" prop="addressType">
<el-input
v-model="queryParams.addressType"
:placeholder="$t('地址类型')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="" prop="country">
<el-input
v-model="queryParams.country"
:placeholder="$t('国家')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="" prop="province">
<el-input
v-model="queryParams.province"
:placeholder="$t('省')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="" prop="city">
<el-input
v-model="queryParams.city"
:placeholder="$t('市')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="" prop="county">
<el-input
v-model="queryParams.county"
:placeholder="$t('区')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="" prop="town">
<el-input
v-model="queryParams.town"
:placeholder="$t('城镇')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="" prop="address">
<el-input
v-model="queryParams.address"
:placeholder="$t('地址')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="" prop="postCode">
<el-input
v-model="queryParams.postCode"
:placeholder="$t('邮编')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="" prop="email">
<el-input
v-model="queryParams.email"
:placeholder="$t('email')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="" prop="company">
<el-input
v-model="queryParams.company"
:placeholder="$t('公司')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="" prop="blDefaultFlag">
<el-input
v-model="queryParams.blDefaultFlag"
:placeholder="$t('是否默认')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="" prop="orderNum">
<el-input
v-model="queryParams.orderNum"
:placeholder="$t('排序')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="" prop="blSiteDefaultFlag">
<el-input
v-model="queryParams.blSiteDefaultFlag"
:placeholder="$t('使用站点是否默认')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="" prop="useSite">
<el-input
v-model="queryParams.useSite"
:placeholder="$t('使用站点名称')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="" prop="useSiteCode">
<el-input
v-model="queryParams.useSiteCode"
:placeholder="$t('使用站点代码')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="" prop="delFlag">
<el-input
v-model="queryParams.delFlag"
:placeholder="$t('删除标志(0代表存在')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="" prop="remark">
<el-input
v-model="queryParams.remark"
:placeholder="$t('备注')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item> -->
</SearchForm> </SearchForm>
<XdTable
<XdTable v-loading="loading" slot="pageContent"
slot-scope="slotProps"
:height="(slotProps.contentHeight)+'px'"
v-loading="loading"
border stripe border stripe
size="small" size="small"
:data="emisCustomerAddressList" :data="emisCustomerAddressList"
@ -197,6 +38,7 @@
@queryTable="getList" @queryTable="getList"
@selection-change="handleSelectionChange" @selection-change="handleSelectionChange"
@sort-change="handleSortChange" @sort-change="handleSortChange"
> >
<div slot="toolbar"> <div slot="toolbar">
@ -328,8 +170,7 @@
<recipientAddressForm :id="currentId" @on-changed="handleFormChanged" @on-cancel="cancelForm"></recipientAddressForm> <recipientAddressForm :id="currentId" @on-changed="handleFormChanged" @on-cancel="cancelForm"></recipientAddressForm>
</el-dialog> </el-dialog>
</XdPageContainer>
</div>
</template> </template>
<script> <script>

View File

@ -1,5 +1,6 @@
<template> <template>
<div class="app-container"> <div class="app-container">
<SearchForm :model="queryParams" ref="queryForm" size="small" :maxShow="3" label-width="68px" v-show="showSearch" @search="handleQuery" @reset="resetQuery"> <SearchForm :model="queryParams" ref="queryForm" size="small" :maxShow="3" label-width="68px" v-show="showSearch" @search="handleQuery" @reset="resetQuery">
<el-form-item label="寄件人" prop="name"> <el-form-item label="寄件人" prop="name">
<el-input <el-input
@ -22,171 +23,9 @@
<el-form-item :label="$t('所属国家')" prop="country"> <el-form-item :label="$t('所属国家')" prop="country">
<CountryPicker :placeholder="$t('所属国家')" v-model="queryParams.country" @onChange="handleQuery"></CountryPicker> <CountryPicker :placeholder="$t('所属国家')" v-model="queryParams.country" @onChange="handleQuery"></CountryPicker>
</el-form-item> </el-form-item>
<!-- <el-form-item label="" prop="customerCode">
<el-input
v-model="queryParams.customerCode"
:placeholder="$t('客户编码')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item> -->
<!-- <el-form-item label="" prop="shortName">
<el-input
v-model="queryParams.shortName"
:placeholder="$t('客户名称')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item> -->
<!-- <el-form-item label="" prop="alias">
<el-input
v-model="queryParams.alias"
:placeholder="$t('地址别名')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="" prop="addressType">
<el-input
v-model="queryParams.addressType"
:placeholder="$t('地址类型')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="" prop="country">
<el-input
v-model="queryParams.country"
:placeholder="$t('国家')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="" prop="province">
<el-input
v-model="queryParams.province"
:placeholder="$t('省')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="" prop="city">
<el-input
v-model="queryParams.city"
:placeholder="$t('市')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="" prop="county">
<el-input
v-model="queryParams.county"
:placeholder="$t('区')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="" prop="town">
<el-input
v-model="queryParams.town"
:placeholder="$t('城镇')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="" prop="address">
<el-input
v-model="queryParams.address"
:placeholder="$t('地址')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="" prop="postCode">
<el-input
v-model="queryParams.postCode"
:placeholder="$t('邮编')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="" prop="email">
<el-input
v-model="queryParams.email"
:placeholder="$t('email')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="" prop="company">
<el-input
v-model="queryParams.company"
:placeholder="$t('公司')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="" prop="blDefaultFlag">
<el-input
v-model="queryParams.blDefaultFlag"
:placeholder="$t('是否默认')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="" prop="orderNum">
<el-input
v-model="queryParams.orderNum"
:placeholder="$t('排序')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="" prop="blSiteDefaultFlag">
<el-input
v-model="queryParams.blSiteDefaultFlag"
:placeholder="$t('使用站点是否默认')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="" prop="useSite">
<el-input
v-model="queryParams.useSite"
:placeholder="$t('使用站点名称')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="" prop="useSiteCode">
<el-input
v-model="queryParams.useSiteCode"
:placeholder="$t('使用站点代码')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="" prop="delFlag">
<el-input
v-model="queryParams.delFlag"
:placeholder="$t('删除标志(0代表存在')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="" prop="remark">
<el-input
v-model="queryParams.remark"
:placeholder="$t('备注')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item> -->
</SearchForm> </SearchForm>
<XdTable v-loading="loading" <XdTable v-loading="loading"
border stripe border stripe
size="small" size="small"

View File

@ -1,6 +1,6 @@
<template> <template>
<div class="app-container"> <XdPageContainer class="app-container">
<SearchForm :model="queryParams" ref="queryForm" size="mini" :maxShow="8" label-width="100px" v-show="showSearch" @search="handleQuery" @reset="resetQuery"> <SearchForm slot="pageHeader" :model="queryParams" ref="queryForm" size="mini" :maxShow="8" label-width="100px" v-show="showSearch" @search="handleQuery" @reset="resetQuery">
<el-form-item label="" prop="billCode"> <el-form-item label="" prop="billCode">
<div slot="label"> <div slot="label">
@ -205,13 +205,14 @@
/> />
</el-form-item> </el-form-item>
</SearchForm> </SearchForm>
<XdTable v-loading="loading" <XdTable
slot="pageContent"
slot-scope="slotProps"
:height="(slotProps.contentHeight)+'px'"
v-loading="loading"
border stripe border stripe
size="mini" size="mini"
:data="emisWaybillList" :data="emisWaybillList"
@ -221,8 +222,6 @@
@queryTable="getList" @queryTable="getList"
@selection-change="handleSelectionChange" @selection-change="handleSelectionChange"
@sort-change="handleSortChange" @sort-change="handleSortChange"
v-if="tableHeight" :max-height="tableHeight + 'px'"
> >
<div slot="toolbar"> <div slot="toolbar">
@ -457,7 +456,7 @@
</el-dialog> </el-dialog>
--> -->
</div> </XdPageContainer>
</template> </template>
<script> <script>