adtec-hnyzfc-core-package 1.0.2 → 1.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/components/VxeExportDialog/VxeExportDialog.vue.d.ts +40 -0
- package/dist/src/components/VxeExportDialog/VxeExportDialog.vue.js +1 -0
- package/dist/src/components/VxeExportDialog/index.d.ts +30 -0
- package/dist/src/components/VxeExportDialog/index.js +1 -0
- package/dist/src/components/icon/ElIcons.vue.js +1 -1
- package/dist/src/components/vxeGrid/index.vue.js +1 -1
- package/dist/src/config/VxeTableConfig.d.ts +28 -3
- package/dist/src/config/VxeTableConfig.js +1 -1
- package/dist/src/plugins/renderDialog.js +1 -1
- package/dist/src/types/vxe-pc-ui/components/column.d.ts +9 -5
- package/dist/src/utils/modules.js +2 -2
- package/dist/styles/element-ui.css +1 -1
- package/dist/vite/umoCjsVirtual.js +4 -4
- package/package.json +13 -8
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
type __VLS_Props = {
|
|
2
|
+
modelValue?: boolean;
|
|
3
|
+
/** vxe-grid 实例(ref 指向的组件) */
|
|
4
|
+
gridRef?: any;
|
|
5
|
+
/** 弹窗标题 */
|
|
6
|
+
title?: string;
|
|
7
|
+
/** 导出文件名(不含扩展名) */
|
|
8
|
+
filename?: string;
|
|
9
|
+
/** 工作表名 */
|
|
10
|
+
sheetName?: string;
|
|
11
|
+
/** 导出范围类型:current=当前页,all=全部数据,selected=选中行;为空则直接导出当前页 */
|
|
12
|
+
exportTypes?: Array<'current' | 'all' | 'selected'>;
|
|
13
|
+
/** 提供后启用"全部数据"选项,返回全量记录 */
|
|
14
|
+
loadAllData?: () => Promise<any[]>;
|
|
15
|
+
/** 候选列配置(含多级列头时传嵌套 columns);不传则由 grid 当前列生成 */
|
|
16
|
+
columns?: any[];
|
|
17
|
+
/** 屏蔽不导出的列,按 field 或 title 匹配;勾选面板中对应列置灰且不可导出 */
|
|
18
|
+
excludeColumns?: string[];
|
|
19
|
+
/** 自定义导出样式钩子,在写入文件前回调 */
|
|
20
|
+
sheetMethod?: (params: Record<string, any>) => any;
|
|
21
|
+
};
|
|
22
|
+
declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
|
|
23
|
+
success: () => any;
|
|
24
|
+
"update:modelValue": (value: boolean) => any;
|
|
25
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
26
|
+
onSuccess?: (() => any) | undefined;
|
|
27
|
+
"onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
|
|
28
|
+
}>, {
|
|
29
|
+
modelValue: boolean;
|
|
30
|
+
title: string;
|
|
31
|
+
columns: any[];
|
|
32
|
+
gridRef: any;
|
|
33
|
+
filename: string;
|
|
34
|
+
sheetName: string;
|
|
35
|
+
exportTypes: Array<"current" | "all" | "selected">;
|
|
36
|
+
loadAllData: () => Promise<any[]>;
|
|
37
|
+
excludeColumns: string[];
|
|
38
|
+
sheetMethod: (params: Record<string, any>) => any;
|
|
39
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
40
|
+
export default _default;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{defineComponent as W,ref as x,computed as I,watch as X,nextTick as b,resolveComponent as u,openBlock as k,createBlock as T,isRef as Y,unref as Z,withCtx as d,createVNode as f,createElementBlock as A,Fragment as ee,renderList as te,createTextVNode as C,toDisplayString as M,createElementVNode as V,createCommentVNode as B}from"vue";import{useVModel as le}from"@vueuse/core";import oe from"../../utils/FrameworkUtils.js";import{_ as se}from"../../../chunks/_plugin-vue_export-helper-DlAUqK2U.js";import"element-plus";import"xlsx-js-style";import"crypto-js/enc-base64";import"crypto-js/enc-utf8";const ae={style:{width:"100%"}},ne={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"4px"}},re={class:"vxe-export-column-item"},de={key:0,class:"vxe-export-column-field"},ie=W({__name:"VxeExportDialog",props:{modelValue:{type:Boolean,default:!1},gridRef:{default:void 0},title:{default:""},filename:{default:""},sheetName:{default:""},exportTypes:{default:()=>[]},loadAllData:{type:Function,default:void 0},columns:{default:void 0},excludeColumns:{default:()=>[]},sheetMethod:{type:Function,default:void 0}},emits:["update:modelValue","success"],setup(F,{emit:K}){const a=F,D=K,g=le(a,"modelValue",D),N=x("current"),R=x(!1),w=x(),m=x([]),v=x([]);let _=!1;const z={current:{label:"当前页数据"},all:{label:"全部数据"},selected:{label:"选中行数据"}},L=I(()=>(a.exportTypes||[]).map(l=>({value:l,label:z[l]?.label||l}))),U=I(()=>a.title||(a.sheetName?`导出${a.sheetName}`:"导出数据")),$=I(()=>{const l=E(m.value).filter(e=>!e.disabled);return l.length>0&&l.every(e=>v.value.includes(e.key))}),S=l=>{if(!a.excludeColumns?.length)return!1;const e=l.field||l.property,o=l.title||l.label;return a.excludeColumns.some(n=>n&&(n===e||n===o))},j=l=>{const e=(o,n)=>(o||[]).map((t,s)=>{const i=t.children||t.childNodes||[],c=Array.isArray(i)&&i.length>0,p=t.field||t.property||"",y=t.type||"",h=p||y||t.colId||t.id||"col",r=n?`${n}::${h}::${s}`:`${h}::${s}`,J=!c&&S(t),Q=c||!["checkbox","radio"].includes(y);return{key:r,label:t.title||(c?"分组":p)||"未命名列",field:p,type:y,disabled:J,exportable:Q,resolved:t,children:e(i,r)}});return e(l)},E=l=>{const e=[],o=n=>{n.forEach(t=>{t.children?.length?o(t.children):e.push(t)})};return o(l),e},G=()=>{const l=a.gridRef,e=l?.getColumns?.()||[];if(!e.length)return[];const o=new Map;e.forEach(t=>{o.set(t.id,{column:t,children:[]})}),e.forEach(t=>{if(t.parentId){const s=l?.getColumnById?.(t.parentId);if(s){const i=o.get(t.parentId);i?i.column=s:o.set(t.parentId,{column:s,children:[]}),s.childNodes=s.childNodes||[],s.childNodes.includes(t)||s.childNodes.push(t)}}});const n=[];if(o.forEach(t=>{const s=t.column.parentId?o.get(t.column.parentId):null;s?s.children.push(t.column):n.push(t.column)}),a.columns?.length){const t=s=>{const i=s.children||s.childNodes||[];if(i.length)return{...s,children:i.map(t)};const c=s.field||s.property,p=s.type;return c&&l?.getColumnByField?.(c)||p&&e.find(h=>h.type===p&&(!c||h.field===c))||s};return a.columns.map(t)}return n},O=()=>{const l=new Map;if(E(m.value).forEach(o=>{v.value.includes(o.key)&&l.set(o.key,o)}),!l.size)return;const e=o=>{const n=[];return o.forEach(t=>{if(t.children?.length){const s=e(t.children);s.length&&n.push({...t.resolved||t.source||{},children:s})}else l.has(t.key)&&t.exportable&&t.resolved&&n.push(t.resolved)}),n};return e(m.value)},P=()=>{if(_)return;const l=w.value?.getCheckedLeaves?.()||[];v.value=l.map(e=>e.key)},q=()=>{const l=E(m.value).filter(o=>!o.disabled).map(o=>o.key),e=$.value?[]:l;v.value=e,_=!0,b(()=>{w.value?.setCheckedKeys?.(e),b(()=>{_=!1})})},H=async()=>{if(a.gridRef){R.value=!0;try{let l;N.value==="all"&&a.loadAllData?l=await a.loadAllData():N.value==="selected"&&(l=a.gridRef.getCheckboxRecords?.()??[]);const e=a.filename||a.sheetName||"导出数据",o={filename:e,sheetName:e,type:"xlsx",useStyle:!0};a.sheetMethod&&(o.sheetMethod=a.sheetMethod);const n=O();n&&(o.columns=n),a.excludeColumns?.length&&(o.excludeFields=a.excludeColumns),l&&(o.data=l),await a.gridRef.exportData(o),g.value=!1,D("success")}catch(l){oe.messageError(l)}finally{R.value=!1}}};return X(()=>a.modelValue,l=>{l&&b(()=>{m.value=j(G()),v.value=E(m.value).filter(e=>!e.disabled).map(e=>e.key),b(()=>{_=!0,w.value?.setCheckedKeys?.(v.value),b(()=>{_=!1})})})},{immediate:!0}),(l,e)=>{const o=u("el-radio"),n=u("el-radio-group"),t=u("el-form-item"),s=u("el-button"),i=u("el-tag"),c=u("el-tree"),p=u("el-scrollbar"),y=u("el-form"),h=u("el-dialog");return k(),T(h,{modelValue:Z(g),"onUpdate:modelValue":e[2]||(e[2]=r=>Y(g)?g.value=r:null),title:U.value,width:"520px","append-to-body":""},{footer:d(()=>[f(s,{onClick:e[1]||(e[1]=r=>g.value=!1)},{default:d(()=>[...e[5]||(e[5]=[C("取消",-1)])]),_:1}),f(s,{type:"primary",loading:R.value,onClick:H},{default:d(()=>[...e[6]||(e[6]=[C("导出",-1)])]),_:1},8,["loading"])]),default:d(()=>[f(y,{"label-width":"80px"},{default:d(()=>[f(t,{label:"导出范围"},{default:d(()=>[f(n,{modelValue:N.value,"onUpdate:modelValue":e[0]||(e[0]=r=>N.value=r)},{default:d(()=>[(k(!0),A(ee,null,te(L.value,r=>(k(),T(o,{key:r.value,value:r.value},{default:d(()=>[C(M(r.label),1)]),_:2},1032,["value"]))),128))]),_:1},8,["modelValue"])]),_:1}),f(t,{label:"导出列"},{default:d(()=>[V("div",ae,[V("div",ne,[e[3]||(e[3]=V("span",{style:{"font-size":"12px",color:"#909399"}},"勾选需要导出的列,父级列可一键全选/取消",-1)),f(s,{link:"",type:"primary",size:"small",onClick:q},{default:d(()=>[C(M($.value?"取消全选":"全选"),1)]),_:1})]),f(p,{"max-height":"220px"},{default:d(()=>[f(c,{ref_key:"treeRef",ref:w,data:m.value,props:{label:"label",children:"children"},"node-key":"key","show-checkbox":"","default-expand-all":"","expand-on-click-node":!1,onCheck:P},{default:d(({data:r})=>[V("span",re,[V("span",null,M(r.label),1),r.field?(k(),A("span",de,M(r.field),1)):B("v-if",!0),r.disabled?(k(),T(i,{key:1,size:"small",type:"info",style:{"margin-left":"4px"}},{default:d(()=>[...e[4]||(e[4]=[C("已屏蔽",-1)])]),_:1})):B("v-if",!0)])]),_:1},8,["data"])]),_:1})])]),_:1})]),_:1})]),_:1},8,["modelValue","title"])}}}),ge=se(ie,[["__scopeId","data-v-d67f1b10"]]);export{ge as default};
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export interface VxeExportOptions {
|
|
2
|
+
/** vxe-grid 实例 */
|
|
3
|
+
grid: any;
|
|
4
|
+
/** 弹窗标题(也用作默认导出文件名) */
|
|
5
|
+
title?: string;
|
|
6
|
+
/** 导出文件名(不含扩展名),默认取 title */
|
|
7
|
+
filename?: string;
|
|
8
|
+
/** 工作表名,默认取 title */
|
|
9
|
+
sheetName?: string;
|
|
10
|
+
/** 导出范围类型:current=当前页,all=全部数据,selected=选中行;为空则直接导出当前页 */
|
|
11
|
+
exportTypes?: Array<'current' | 'all' | 'selected'>;
|
|
12
|
+
/** 提供后"全部数据"会调用它获取全量记录 */
|
|
13
|
+
loadAllData?: () => Promise<any[]>;
|
|
14
|
+
/** 候选列配置(含多级列头时传嵌套 columns);不传则由 grid 当前列生成 */
|
|
15
|
+
columns?: any[];
|
|
16
|
+
/** 屏蔽不导出的列,按 field 或 title 匹配;勾选面板中对应列会置灰且不可导出 */
|
|
17
|
+
excludeColumns?: string[];
|
|
18
|
+
/**
|
|
19
|
+
* 自定义导出样式钩子,在写入文件前回调。
|
|
20
|
+
* 参数包含 vxe 导出插件的 { workbook, worksheet, columns, colgroups, datas, $grid, $table, options },
|
|
21
|
+
* 可用 ExcelJS 的 worksheet 直接调整单元格样式/列宽/行高等。
|
|
22
|
+
*/
|
|
23
|
+
sheetMethod?: (params: Record<string, any>) => any;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* 导出 vxe-grid 数据。
|
|
27
|
+
* - 有 exportTypes:弹出统一导出范围弹窗,由用户在弹窗内确认导出;
|
|
28
|
+
* - 无 exportTypes:直接导出当前页数据,不弹窗。
|
|
29
|
+
*/
|
|
30
|
+
export declare function exportGridData(options: VxeExportOptions): Promise<void>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{createApp as o,h as i}from"vue";import h from"element-plus";import c from"./VxeExportDialog.vue.js";import"@vueuse/core";import"../../utils/FrameworkUtils.js";import"xlsx-js-style";import"crypto-js/enc-base64";import"crypto-js/enc-utf8";import"../../../chunks/_plugin-vue_export-helper-DlAUqK2U.js";let t=null,l=null;function d(){t&&(t.unmount(),t=null),l&&(l.remove(),l=null)}async function M(e){const{grid:m,exportTypes:a=[]}=e;if(!m)return;const r=e.filename||e.sheetName||e.title||"导出数据",u={filename:r,sheetName:r,type:"xlsx",useStyle:!0};if(e.sheetMethod&&(u.sheetMethod=e.sheetMethod),e.excludeColumns?.length&&(u.excludeFields=e.excludeColumns),!a.length){await m.exportData(u);return}d(),l=document.createElement("div"),document.body.appendChild(l),t=o({render:()=>i(c,{modelValue:!0,gridRef:m,title:e.title,filename:e.filename,sheetName:e.sheetName,exportTypes:a,loadAllData:e.loadAllData,columns:e.columns,excludeColumns:e.excludeColumns,sheetMethod:e.sheetMethod,"onUpdate:modelValue":n=>{n||d()}})}),t.use(h),t.mount(l)}export{M as exportGridData};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{defineComponent as
|
|
1
|
+
import{defineComponent as a,computed as m,resolveComponent as i,openBlock as o,createBlock as t,withCtx as u,createElementBlock as p,createElementVNode as _,unref as n,resolveDynamicComponent as d}from"vue";import{useVModel as f}from"@vueuse/core";import{_ as h}from"../../../chunks/_plugin-vue_export-helper-DlAUqK2U.js";const v={key:0,class:"icon","aria-hidden":"true"},k=["href"],V=a({__name:"ElIcons",props:{modelValue:String},emits:["update:modelValue"],setup(c,{emit:s}){const e=f(c,"modelValue",s),l=m(()=>!!e.value?.includes("adtec"));return(E,y)=>{const r=i("el-icon");return o(),t(r,null,{default:u(()=>[l.value?(o(),p("svg",v,[_("use",{href:"#"+n(e)},null,8,k)])):(o(),t(d(n(e)),{key:1}))]),_:1})}}}),N=h(V,[["__scopeId","data-v-a14c49ca"]]);export{N as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{defineComponent as r,getCurrentInstance as a,resolveComponent as s,openBlock as m,createBlock as p,withCtx as c,resolveDynamicComponent as f,h as d,unref as u}from"vue";import{components as x,initVxeTableInPage as C}from"../../config/VxeTableConfig.js";import"vxe-table";import"@vxe-ui/core";import"@vxe-ui/plugin-
|
|
1
|
+
import{defineComponent as r,getCurrentInstance as a,resolveComponent as s,openBlock as m,createBlock as p,withCtx as c,resolveDynamicComponent as f,h as d,unref as u}from"vue";import{components as x,initVxeTableInPage as C}from"../../config/VxeTableConfig.js";import"vxe-table";import"@vxe-ui/core";import"@vxe-ui/plugin-export-xlsx";import"exceljs";import"vxe-table/es/style.css";import"vxe-table/es/locale/lang/zh-CN";import"../../utils/patchWujiePopperCoordinates.js";import"../vxeReplace/index.js";import"../tooltip/index.js";import"../tooltip/src/tooltip.js";import"../../../chunks/VxeButton.vue_vue_type_script_setup_true_lang-s_mYx9TA.js";import"../../../chunks/VxeInput.vue_vue_type_script_setup_true_lang-v9AqGSoL.js";import"../../../chunks/VxeSelect.vue_vue_type_script_setup_true_lang-BfVzFeBc.js";import"../../../chunks/VxeCheckbox.vue_vue_type_script_setup_true_lang-Ccr5YD1x.js";import"../../../chunks/VxeModal.vue_vue_type_script_setup_true_lang-B4gh7jFR.js";import"../../../chunks/VxeLoading.vue_vue_type_script_setup_true_lang-B253kD5t.js";import"../../../chunks/VxePager.vue_vue_type_script_setup_true_lang-DpOa3T96.js";import"../../../chunks/VxeForm.vue_vue_type_script_setup_true_lang-DXNZ8Qzg.js";const A=r({__name:"index",props:{renderComponent:{default:()=>({enableElementPlus:!0,enableExcel:!1,enablePdf:!1})}},setup(t){const{VxeGrid:o}=x;r({components:{VxeGrid:o}}),C(t.renderComponent.enableExcel,t.renderComponent.enablePdf,t.renderComponent.enableElementPlus??!0);const n=a(),i=e=>{n&&(n.exposed=e)};return(e,b)=>{const l=s("el-flex");return m(),p(l,null,{default:c(()=>[(m(),p(f(d(u(o),{...e.$attrs,ref:i},e.$slots))))]),_:1})}}});export{A as default};
|
|
@@ -1,12 +1,37 @@
|
|
|
1
|
-
import '@vxe-ui/plugin-render-element/dist/style.css';
|
|
2
1
|
import 'vxe-table/es/style.css';
|
|
3
2
|
import '../css/vxeTableUI/all.scss';
|
|
4
|
-
import type
|
|
3
|
+
import { type App, type Component } from 'vue';
|
|
5
4
|
/**
|
|
6
|
-
*
|
|
5
|
+
* Tab 键在可编辑单元格间切换:跳过不可编辑列,本行最后一个可编辑
|
|
6
|
+
* 单元格按 Tab 跳到下一行第一个可编辑单元格(最后一行回到第一行)。
|
|
7
7
|
*/
|
|
8
|
+
export declare const vxeEditTabNavigate: {
|
|
9
|
+
isTab: boolean;
|
|
10
|
+
isEsc: boolean;
|
|
11
|
+
tabMethod({ row, column, $table }: any): void;
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* 可编辑单元格伪样式分类:按列 editRender.name/required 返回类型类。
|
|
15
|
+
* 页面在 gridOptions 里声明 `cellClassName: vxeEditCellClassName`
|
|
16
|
+
* (vxe 只读网格自身的 cellClassName prop,全局配置不会下发)。
|
|
17
|
+
*/
|
|
18
|
+
export declare const vxeEditCellClassName: ({ column }: any) => string | string[];
|
|
8
19
|
export declare function initVxeTableInPage(enableExcel?: boolean, enablePdf?: boolean, enableElementPlus?: boolean): void;
|
|
9
20
|
export declare const components: Record<string, Component>;
|
|
21
|
+
/**
|
|
22
|
+
* 包装 vxe-grid:统一注入编辑相关默认配置,页面零配置。
|
|
23
|
+
*
|
|
24
|
+
* vxe 的限制:keyboardConfig / cellClassName 只读网格自身的 prop,
|
|
25
|
+
* 全局 setConfig 不会下发。这里通过包装组件在渲染时注入:
|
|
26
|
+
* - keyboardConfig:合并 vxeEditTabNavigate(isTab + isEsc + tabMethod),
|
|
27
|
+
* 使 Tab 编辑导航全局生效;
|
|
28
|
+
* - cellClassName:合并 vxeEditCellClassName(伪样式类型类),页面自己的
|
|
29
|
+
* cellClassName 仍会叠加;
|
|
30
|
+
* - 外部 ref 通过 Proxy 透传给内部 grid 实例,setEditCell/reloadData 等照常可用。
|
|
31
|
+
*/
|
|
32
|
+
export declare const VxeGridWithEditDefaults: import("vue").DefineComponent<{}, () => globalThis.VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
33
|
+
[key: string]: any;
|
|
34
|
+
}>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
10
35
|
/**
|
|
11
36
|
* 全局注册 vxe-grid,业务页面无需再局部引入/注册 VxeGrid。
|
|
12
37
|
* 同时注册 PascalCase 与 kebab-case 两种写法。
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{VxeGrid as
|
|
1
|
+
import{VxeGrid as p}from"vxe-table";import{VxeUI as c}from"@vxe-ui/core";import{VxeUIPluginExportXLSX as b}from"@vxe-ui/plugin-export-xlsx";import y from"exceljs";import"vxe-table/es/style.css";import v from"vxe-table/es/locale/lang/zh-CN";import{patchWujiePopperCoordinates as z}from"../utils/patchWujiePopperCoordinates.js";import{registerVxeReplaceComponents as I}from"../components/vxeReplace/index.js";import{defineComponent as S,ref as k,onMounted as E,h as F}from"vue";import"../components/tooltip/index.js";import"../components/tooltip/src/tooltip.js";import"../../chunks/VxeButton.vue_vue_type_script_setup_true_lang-s_mYx9TA.js";import"../../chunks/VxeInput.vue_vue_type_script_setup_true_lang-v9AqGSoL.js";import"../../chunks/VxeSelect.vue_vue_type_script_setup_true_lang-BfVzFeBc.js";import"../../chunks/VxeCheckbox.vue_vue_type_script_setup_true_lang-Ccr5YD1x.js";import"../../chunks/VxeModal.vue_vue_type_script_setup_true_lang-B4gh7jFR.js";import"../../chunks/VxeLoading.vue_vue_type_script_setup_true_lang-B253kD5t.js";import"../../chunks/VxePager.vue_vue_type_script_setup_true_lang-DpOa3T96.js";import"../../chunks/VxeForm.vue_vue_type_script_setup_true_lang-DXNZ8Qzg.js";let g=!1;function C(){g||(g=!0,c.use(b,{ExcelJS:y}))}C();I();const h={isTab:!0,isEsc:!0,tabMethod({row:s,column:r,$table:e}){const i=e.getColumns().filter(o=>o.editRender);if(!i.length)return;const f=i.findIndex(o=>o.id===r.id);if(f<0)return;const{fullData:l}=e.getTableData();let a=f+1,d=s;if(a>=i.length){a=0;const o=l.findIndex(n=>n===s);o<l.length-1?d=l[o+1]:d=l[0]}const t=i[a];d&&t&&e.setEditCell(d,t)}},x=({column:s})=>{const r=s.editRender;if(!r)return"";const e=[],i=String(r.name||"").toLowerCase();return i.includes("select")?e.push("vxe-edit--select"):i.includes("date")||i.includes("time")?e.push("vxe-edit--date"):e.push("vxe-edit--input"),r.required&&e.push("vxe-edit--required"),e};c.setConfig({table:{showHeader:!0,keepSource:!0,autoResize:!0,height:"100%",showOverflow:!0,showHeaderOverflow:!0,showFooterOverflow:!0,cellClassName:x,cellConfig:{},headerCellConfig:{height:41},resizeConfig:{refreshDelay:20},resizableConfig:{dragMode:"auto",showDragTip:!1,isSyncAutoHeight:!0,isSyncAutoWidth:!0,minHeight:18},columnDragConfig:{showIcon:!0,showGuidesStatus:!1,showDragTip:!1},checkboxConfig:{showHeader:!0,strict:!0,highlight:!1,range:!1},validConfig:{showMessage:!0,autoClear:!0,autoPos:!0,message:"inline",msgMode:"single",theme:"beautify"},columnConfig:{maxFixedSize:4,resizable:!0},tooltipConfig:{enterable:!0,theme:"light"},rowConfig:{isCurrent:!0},footerCellConfig:{height:"unset"},customConfig:{allowVisible:!0,allowResizable:!0,allowFixed:!0,allowSort:!0,showFooter:!0,placement:"top-right",modalOptions:{showMaximize:!0,mask:!0,lockView:!0,resize:!0,escClosable:!0},drawerOptions:{mask:!0,lockView:!0,escClosable:!0,resize:!0}},sortConfig:{showIcon:!0,allowClear:!0,allowBtn:!0,iconLayout:"vertical"},filterConfig:{showIcon:!0},treeConfig:{rowField:"id",parentField:"parentId",childrenField:"children",hasChildField:"hasChild",mapChildrenField:"_X_ROW_CHILD",indent:10,transform:!0,showIcon:!0},expandConfig:{showIcon:!0,mode:"fixed"},editConfig:{showIcon:!0,showAsterisk:!0,autoFocus:!0},keyboardConfig:h,importConfig:{_typeMaps:{csv:1,html:1,xml:1,txt:1}},exportConfig:{_typeMaps:{csv:1,html:1,xml:1,txt:1}},printConfig:{},mouseConfig:{extension:!0},areaConfig:{autoClear:!0,selectCellByHeader:!0,selectCellByBody:!0,extendDirection:{top:!0,left:!0,bottom:!0,right:!0}},clipConfig:{isCopy:!0,isCut:!0,isPaste:!0},fnrConfig:{isFind:!0,isReplace:!0},virtualXConfig:{enabled:!0,gt:60,preSize:0,oSize:1},virtualYConfig:{enabled:!0,gt:100,preSize:1,oSize:2},scrollbarConfig:{}},grid:{formConfig:{enabled:!0},pagerConfig:{enabled:!0},toolbarConfig:{enabled:!0},columnConfig:{maxFixedSize:4,resizable:!0},proxyConfig:{enabled:!0,autoLoad:!0,showResponseMsg:!0,showActiveMsg:!0,props:{list:null,result:"result",total:"page.total",message:"message"}}},toolbar:{}});function J(s=!1,r=!1,e=!0){z(!0),c.setI18n("zh-CN",v),c.setLanguage("zh-CN"),C()}const Y={VxeGrid:p},m=S({name:"VxeGrid",inheritAttrs:!1,setup(s,{attrs:r,slots:e,expose:i}){const f=k(null),l={};let a=!1;return E(()=>{const t=f.value;if(!t||a)return;a=!0;const o=new Set([...Object.keys(t),...Object.getOwnPropertyNames(t)]);for(const n of o){if(n==="__v_skip"||n.startsWith("$")||l[n]!==void 0)continue;const u=t[n];typeof u=="function"&&(l[n]=u.bind(t))}}),i(l),()=>F(p,{...r,ref:f,keyboardConfig:{...h,...r.keyboardConfig||{}},cellClassName:t=>{const o=x(t),n=r.cellClassName;if(typeof n=="function"){const u=n(t),w=Array.isArray(u)?u:u?[u]:[];return[o,...w].flat().filter(Boolean)}return o}},e)}});function K(s){s.component("VxeGrid",m),s.component("vxe-grid",m)}export{m as VxeGridWithEditDefaults,Y as components,J as initVxeTableInPage,K as installVxeGrid,x as vxeEditCellClassName,h as vxeEditTabNavigate};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{ref as m,createApp as g,h as t}from"vue";import v,{ElDialog as y,ElDrawer as C,ElButton as n}from"element-plus";import
|
|
1
|
+
import{ref as m,createApp as g,h as t}from"vue";import v,{ElDialog as y,ElDrawer as C,ElButton as n}from"element-plus";import E from"./plugins.js";import h from"../stores/storeConfig.js";/* empty css */import"../config/ElementPlusConfig.js";import b from"element-plus/es/locale/lang/zh-cn";import"../mixin/globalMixin.js";import"../../chunks/operationAuth.vue_vue_type_script_setup_true_lang-Cqn1ksOr.js";import"vue-router";import"../stores/userInfoStore.js";import"pinia";import"../utils/userSessionStorage.js";import"crypto-js/enc-base64";import"crypto-js/enc-utf8";import"../../chunks/ElFlex.vue_vue_type_script_setup_true_lang-D3H7QH-5.js";import"../interface/enum/FlexEnum.js";import"@vueuse/core";import"../components/icon/ElIcons.vue.js";import"../../chunks/_plugin-vue_export-helper-DlAUqK2U.js";import"../components/Search/ElSearch.vue.js";import"@element-plus/icons-vue";import"../../chunks/ElTitle.vue_vue_type_script_setup_true_lang-B0oGtxWu.js";import"../components/icon/ElIconBtn.vue.js";import"../components/Search/ElIconSearch.vue.js";import"../directives/vTrack.js";import"../utils/request.js";import"../utils/AxiosConfig.js";import"axios";import"uuid";import"../utils/encrypt.js";import"jsencrypt";import"../utils/buildUploadHeaders.js";import"ts-md5";import"../components/autoToolTip/ElAutoToolTip.vue.js";import"../components/business/userSelect.vue.js";import"../api/BasicApi.js";import"../api/SysUserApi.js";import"../utils/FrameworkUtils.js";import"xlsx-js-style";import"../../chunks/comp.selectUser.vue_vue_type_script_setup_true_lang-BQDO393q.js";import"../api/EmployeeInfoApi.js";import"../components/business/comp.userForm.vue.js";import"../api/DeptInfoApi.js";import"../hooks/useResetRefHooks.js";import"../../chunks/ElScrollbars.vue_vue_type_script_setup_true_lang-0Vhrxdyr.js";import"@vueuse/components";import"../../chunks/ElTotalTools.vue_vue_type_script_setup_true_lang-Dw9M4qw4.js";import"../components/ElCardList.vue.js";import"../components/kFrame/KFrame.vue.js";import"../components/kFrame/IframeOptions.js";import"pinia-plugin-store";import"../utils/patchWujiePopperCoordinates.js";function ko(a,u,c,s,d="dialog"){const p=m(!0),i=m(!1),e=m(),o=g(()=>t(d==="dialog"?y:C,{...c,modelValue:p.value,onClosed(){o.unmount(),document.body.removeChild(r)},onClose(){l()}},{default:()=>t(a,{...u,ref:e}),footer:()=>t("div",{className:"dialog-footer"},[t(n,{onClick:l},()=>"取 消"),t(n,{type:"primary",onClick:f,loading:i.value},()=>"确 认")])}));o.use(E),o.use(v,{locale:b}),o.use(h),o.use(s);const r=document.createElement("div");document.body.appendChild(r),o.mount(r);async function f(){i.value=!0;try{await e.value?.confirm?.()}finally{i.value=!1}}function l(){p.value=!1}}export{ko as renderDialog};
|
|
@@ -289,11 +289,15 @@ export namespace VxeColumnPropTypes {
|
|
|
289
289
|
autoSelect?: boolean
|
|
290
290
|
defaultValue?: ((params: { column: VxeTableDefines.ColumnInfo<D> }) => any) | null | undefined | string | number | RegExp | object | any[] | Date
|
|
291
291
|
immediate?: boolean
|
|
292
|
-
content?: string
|
|
293
|
-
placeholder?: string
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
292
|
+
content?: string
|
|
293
|
+
placeholder?: string
|
|
294
|
+
/**
|
|
295
|
+
* 是否必填(仅用于可编辑单元格伪样式的右上角必填角标,非校验规则)
|
|
296
|
+
*/
|
|
297
|
+
required?: boolean
|
|
298
|
+
|
|
299
|
+
/**
|
|
300
|
+
* 只对 VxeNumberInput 有效,当值为负数时,自动显示为红色
|
|
297
301
|
*/
|
|
298
302
|
showNegativeStatus?: boolean
|
|
299
303
|
|