1
huangxiaoqiang
昨天 a296223898d61a9838bbd35ed75c87575e308a36
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSClient/src/components/basic/ViewGrid/ViewGrid.vue
@@ -16,9 +16,7 @@
        </div>
      </template>
    </vol-box>
    <ViewGridAudit @auditClick="saveAudit" :option="table" ref="audit">
    </ViewGridAudit>
    <ViewGridAudit @auditClick="saveAudit" :option="table" ref="audit"> </ViewGridAudit>
    <!--导入excel功能-->
    <!--2020.10.31添加导入前的方法-->
@@ -105,10 +103,8 @@
              </el-button>
              <template #dropdown>
                <el-dropdown-menu>
                  <el-dropdown-item @click="changeDropdown(item.name)" :name="item.name" v-show="!item.hidden" v-for="(item, dIndex) in buttons.slice(
                    maxBtnLength,
                    buttons.length
                  )" :key="dIndex">
                  <el-dropdown-item @click="changeDropdown(item.name)" :name="item.name" v-show="!item.hidden"
                    v-for="(item, dIndex) in buttons.slice(maxBtnLength, buttons.length)" :key="dIndex">
                    <i :class="item.icon"></i> {{ item.name }}</el-dropdown-item>
                </el-dropdown-menu>
              </template>
@@ -153,8 +149,8 @@
                    </div>
                  </div>
                  <vol-table ref="detail" @loadBefore="loadInternalDetailTableBefore" @loadAfter="loadDetailTableAfter"
                    @rowChange="detailRowOnChange" @rowClick="detailRowOnClick" :url="detailOptions.url"
                    :load-key="false" :index="true" :tableData="detailOptions.data" :columns="detailOptions.columns"
                    @rowChange="detailRowOnChange" @rowClick="detailRowOnClick" :url="detailOptions.url" :load-key="false"
                    :index="true" :tableData="detailOptions.data" :columns="detailOptions.columns"
                    :pagination="detailOptions.pagination" :height="detailOptions.height" :single="detailOptions.single"
                    :pagination-hide="detailOptions.paginationHide" :defaultLoadPage="detailOptions.load"
                    :beginEdit="detailOptions.beginEdit" :endEditBefore="detailOptions.endEditBefore"
@@ -171,12 +167,11 @@
            </div>
          </template>
          <template #footer>
            <div style="text-align: center;" v-show="isBoxAudit">
            <div style="text-align: center" v-show="isBoxAudit">
              <el-button size="small" type="primary" plain @click="onGridModelClose(false)">
                <i class="el-icon-close">关闭</i>
              </el-button>
              <el-button size="small" type="primary" v-show="auditParam.showViewButton"
                @click="auditParam.model = true">
              <el-button size="small" type="primary" v-show="auditParam.showViewButton" @click="auditParam.model = true">
                <i class="el-icon-view">审批</i>
              </el-button>
            </div>
@@ -205,11 +200,11 @@
          @loadBefore="loadTableBefore" @loadAfter="loadTableAfter" @rowChange="rowOnChange" @rowClick="rowOnClick"
          @rowDbClick="rowOnDbClick" @selectionChange="selectionOnChange" :tableData="[]" :linkView="linkData"
          :columns="columns" :pagination="pagination" :height="height" :max-height="tableMaxHeight"
          :pagination-hide="paginationHide" :url="url" :load-key="false" :defaultLoadPage="load"
          :double-edit="doubleEdit" :index="doubleEdit" :beginEdit="tableBeginEdit" :endEditBefore="tableEndEditBefore"
          :column-index="columnIndex" :text-inline="textInline" :ck="ck" :select2Count="select2Count"
          :selectable="selectable" :spanMethod="spanMethod" :lazy="lazy" :defaultExpandAll="defaultExpandAll"
          :expandRowKeys="expandRowKeys" :rowParentField="rowParentField"></vol-table>
          :pagination-hide="paginationHide" :url="url" :load-key="false" :defaultLoadPage="load" :double-edit="doubleEdit"
          :index="doubleEdit" :beginEdit="tableBeginEdit" :endEditBefore="tableEndEditBefore" :column-index="columnIndex"
          :text-inline="textInline" :ck="ck" :select2Count="select2Count" :selectable="selectable"
          :spanMethod="spanMethod" :lazy="lazy" :defaultExpandAll="defaultExpandAll" :expandRowKeys="expandRowKeys"
          :rowParentField="rowParentField"></vol-table>
      </div>
    </div>
@@ -231,34 +226,22 @@
  DOWNLOADTEMPLATE: 'DownLoadTemplate', //下载导入模板
  IMPORT: 'Import', //导入(导入表的Excel功能)
  UPLOAD: 'Upload' //上传文件
};
import Empty from '@/components/basic/Empty.vue';
}
import Empty from '@/components/basic/Empty.vue'
import VolTable from '@/components/basic/VolTable.vue';
import VolForm from '@/components/basic/VolForm.vue';
import {
  defineAsyncComponent,
  defineComponent,
  ref,
  shallowRef,
  toRaw
} from 'vue';
import VolTable from '@/components/basic/VolTable.vue'
import VolForm from '@/components/basic/VolForm.vue'
import { defineAsyncComponent, defineComponent, ref, shallowRef, toRaw } from 'vue'
var vueParam = {
  emits: ['parentCall'],
  components: {
    'vol-form': VolForm,
    'vol-table': VolTable,
    VolBox: defineAsyncComponent(() => import('@/components/basic/VolBox.vue')),
    QuickSearch: defineAsyncComponent(() =>
      import('@/components/basic/QuickSearch.vue')
    ),
    QuickSearch: defineAsyncComponent(() => import('@/components/basic/QuickSearch.vue')),
    Audit: defineAsyncComponent(() => import('@/components/basic/Audit.vue')),
    UploadExcel: defineAsyncComponent(() =>
      import('@/components/basic/UploadExcel.vue')
    ),
    'custom-column': defineAsyncComponent(() =>
      import('./ViewGridCustomColumn.vue')
    ),
    UploadExcel: defineAsyncComponent(() => import('@/components/basic/UploadExcel.vue')),
    'custom-column': defineAsyncComponent(() => import('./ViewGridCustomColumn.vue')),
    'vol-header': defineAsyncComponent(() => import('./../VolHeader.vue')),
    ViewGridAudit: defineAsyncComponent(() => import('./ViewGridAudit.vue'))
  },
@@ -273,17 +256,17 @@
      modelBody: Empty,
      modelRight: Empty,
      modelFooter: Empty
    };
    }
    //合并扩展组件
    if (props.extend.components) {
      for (const key in props.extend.components) {
        if (props.extend.components[key]) {
          dynamicCom[key] = toRaw(props.extend.components[key]);
          dynamicCom[key] = toRaw(props.extend.components[key])
        }
      }
    }
    const dynamicComponent = shallowRef(dynamicCom);
    return { dynamicComponent };
    const dynamicComponent = shallowRef(dynamicCom)
    return { dynamicComponent }
  },
  data() {
    return {
@@ -335,7 +318,7 @@
      continueAddName: '保存后继续添加', //2021.04.11按钮名称
      // detailUrl: "",
      detailOptions: {
        paginationHide: false,//是否隐藏明细表分页2023.10.23
        paginationHide: false, //是否隐藏明细表分页2023.10.23
        //弹出框从表(明细)对象
        //从表配置
        buttons: [], //弹出框从表表格操作按钮,目前有删除行,添加行,刷新操作,如需要其他操作按钮,可在表对应的.js中添加
@@ -356,15 +339,15 @@
        currentReadonly: false, //当前用户没有编辑或新建权限时,表单只读(可用于判断用户是否有编辑或新建权限)
        //开启编辑时
        beginEdit: (row, column, index) => {
          return true;
          return true
        },
        //结束编辑前
        endEditBefore: (row, column, index) => {
          return true;
          return true
        },
        //结束编辑后
        endEditAfter: (row, column, index) => {
          return true;
          return true
        },
        columnIndex: false, //2020.11.01明细是否显示行号
        ck: true //2020.11.01明细是否显示checkbox
@@ -421,68 +404,64 @@
      //2022.09.26增加自定义导出文件名
      downloadFileName: null,
      select2Count: 2000, //超出500数量显示select2组件
      paginationHide: false,//是隐藏分页(2023.10.11)
      queryFields: [],//快捷查询字段2024.01.18增加多个快捷查询字段
      lazy: true,//树形表格是否默认延迟加载
      defaultExpandAll: false,//树形表格是否展开所有
      expandRowKeys: [],//默认展开行的主键值2024.09.03
      paginationHide: false,//是否隐藏分页
      rowParentField: "", //树形表格父级id
      text: ""//界面上标题后显示的文本,可以是html标签
    };
      paginationHide: false, //是隐藏分页(2023.10.11)
      queryFields: [], //快捷查询字段2024.01.18增加多个快捷查询字段
      lazy: true, //树形表格是否默认延迟加载
      defaultExpandAll: false, //树形表格是否展开所有
      expandRowKeys: [], //默认展开行的主键值2024.09.03
      paginationHide: false, //是否隐藏分页
      rowParentField: '', //树形表格父级id
      text: '' //界面上标题后显示的文本,可以是html标签
    }
  },
  methods: {},
  activated() {
    this.initFlowQuery();
    this.initFlowQuery()
    //2020.06.25增加activated方法
    this.onActivated && this.onActivated();
    this.onActivated && this.onActivated()
    if (!this._inited) {
      this._inited = true;
      return;
      this._inited = true
      return
    }
    if (this.activatedLoad) {
      this.refresh();
      this.refresh()
    }
  },
  mounted() {
    this.mounted();
    this.mounted()
    // this.$refs.searchForm.forEach()
  },
  unmounted() {
    this.destroyed();
    this.destroyed()
  },
  created: function () {
    //合并自定义业务扩展方法
    Object.assign(this, this.extend.methods);
    Object.assign(this, this.extend.methods)
    //如果没有指定排序字段,则用主键作为默认排序字段
    this.pagination.sortName = this.table.sortName || this.table.key;
    this.initBoxButtons(); //初始化弹出框与明细表格按钮
    this.initAuditColumn();
    this.onInit(); //初始化前,如果需要做其他处理在扩展方法中覆盖此方法
    this.getButtons();
    this.pagination.sortName = this.table.sortName || this.table.key
    this.initBoxButtons() //初始化弹出框与明细表格按钮
    this.initAuditColumn()
    this.onInit() //初始化前,如果需要做其他处理在扩展方法中覆盖此方法
    this.getButtons()
    //初始化自定义表格列
    this.initViewColumns();
    this.initViewColumns()
    //初始编辑框等数据
    this.initBoxHeightWidth();
    this.initDicKeys(); //初始下框数据源
    this.onInited(); //初始化后,如果需要做其他处理在扩展方法中覆盖此方法
    this.initBoxHeightWidth()
    this.initDicKeys() //初始下框数据源
    this.onInited() //初始化后,如果需要做其他处理在扩展方法中覆盖此方法
  },
  beforeUpdate: function () { },
  updated: function () { }
};
}
import props from './props.js';
import methods from './methods.jsx';
import props from './props.js'
import methods from './methods.jsx'
//合并属性
vueParam.props = Object.assign(vueParam.props, props);
vueParam.props = Object.assign(vueParam.props, props)
//合并方法
vueParam.methods = Object.assign(
  vueParam.methods,
  methods,
  props.extend.methods
);
export default defineComponent(vueParam);
vueParam.methods = Object.assign(vueParam.methods, methods, props.extend.methods)
export default defineComponent(vueParam)
</script>
<style lang="less" scoped>
@import './ViewGrid.less';