提交 3d83b213 编写于 作者: zhf's avatar zhf

feat: 更新gs-web插件

上级 b3957b14
......@@ -382,4 +382,3 @@ const ue = {
export {
ue as default
};
//# sourceMappingURL=ibiz-template-plugin.es.js.map
{"version":3,"file":"ibiz-template-plugin.es.js","sources":["../src/components/wf-toolbar/wf-toolbar.tsx","../src/components/collaborative-satisfaction-grid/collaborative-satisfaction-grid.util.ts","../src/components/collaborative-satisfaction-grid/collaborative-satisfaction-grid.tsx","../src/provider/gs-index-css-provider/gs-index-css-provider.ts","../src/global.ts","../src/provider/collaborative-satisfaction-grid-provider/collaborative-satisfaction-grid-provider.ts","../src/index.ts"],"sourcesContent":["import { defineComponent } from 'vue';\nimport { useNamespace } from '@ibiz-template/vue-util';\nimport { WFLink } from '@ibiz-template/controller';\nimport './wf-toolbar.scss';\n\nexport const WFToolbar = defineComponent({\n name: 'WFToolbar',\n props: {\n wfLinks: {\n type: Array<WFLink>,\n required: true,\n },\n },\n setup(props, { emit }) {\n const ns = useNamespace('wf-toolbar');\n\n // 点击事件抛给表格执行\n const _handleClick = async (link: WFLink, event: MouseEvent) => {\n emit('wf-link-click', link, event);\n };\n\n // 按钮点击加延时。解决子界面行编辑没有失焦的情况下先触发了按钮的行为。\n const handleClick = async (link: WFLink, event: MouseEvent) => {\n setTimeout(() => {\n _handleClick(link, event);\n }, 30);\n };\n\n return { ns, handleClick };\n },\n render() {\n const wfLinks = this.wfLinks || [];\n return (\n <div class={`${this.ns.b()}`}>\n {wfLinks.length > 0 &&\n wfLinks.map(link => {\n const isReject =\n link.sequenceFlowName.startsWith('驳回') ||\n link.sequenceFlowName.startsWith('取消');\n return (\n <div\n key={link.sequenceFlowId}\n class={[\n this.ns.e('item'),\n isReject ? this.ns.em('item', 'reject') : '',\n ]}\n >\n <i-button\n title={link.sequenceFlowName}\n on-click={(e: MouseEvent) => this.handleClick(link, e)}\n >\n {link.sequenceFlowName || ''}\n </i-button>\n </div>\n );\n })}\n </div>\n );\n },\n});\n","/* eslint-disable no-param-reassign */\nimport { GridController } from '@ibiz-template/controller';\nimport {\n GridColumnModel,\n GridFieldColumnModel,\n GridGroupColumnModel,\n GridModel,\n} from '@ibiz-template/model';\nimport { ControlVO } from '@ibiz-template/service';\nimport { computed, ref } from 'vue';\n\nexport function generateColumnData(column: GridColumnModel, c: GridController) {\n const columnChildren: IData[] = [];\n if (column.source.columnType === 'GROUPGRIDCOLUMN') {\n // 如果是分组列,递归生成children\n (column as GridGroupColumnModel).children.forEach(child => {\n columnChildren.push(generateColumnData(child, c));\n });\n }\n const columnData = {\n title: column.title,\n width: column.source.widthUnit === 'STAR' ? undefined : column.width,\n minWidth: column.width,\n align: column.source.align?.toLowerCase() || 'center',\n slot: column.codeName,\n key: column.codeName,\n fieldName: (column as GridFieldColumnModel).deFieldName,\n ellipsis: true,\n tooltip: false, // todo 表格提示用title\n resizable: true,\n sortable: !c.noSort && column.source.enableSort ? 'custom' : false,\n columnType: column.source.columnType,\n userParams: column.source.userParams,\n className: column.source.getCellPSSysCss()?.cssName,\n };\n if (columnChildren.length > 0) {\n Object.assign(columnData, { children: columnChildren });\n }\n return columnData;\n}\n\n/**\n * 生成iViewTable要用的columns\n *\n * @author lxm\n * @date 2022-08-31 19:08:34\n * @export\n * @param {GridController} c\n * @returns {*} {IData[]}\n */\nexport function generateIViewColumns(c: GridController): IData[] {\n const gridModel: GridModel = c.model;\n const columns: IData[] = [];\n // 生成所有表格列对应的iView表格需要的对象\n const tempColumns: IData[] = gridModel.columns.map(column => {\n return generateColumnData(column, c);\n });\n // 根据表格第一层的子去生成iView表格需要的columns\n gridModel.children.forEach((childColumn: GridColumnModel) => {\n const tempColumn = tempColumns.find(column => {\n return column.key === childColumn.codeName;\n });\n if (tempColumn) {\n columns.push(tempColumn);\n }\n });\n\n // 多选的时候给第一列添加选择列\n if (!c.singleSelect) {\n columns.splice(0, 0, { type: 'selection', width: 60 });\n }\n\n return columns;\n}\n\n/**\n * 获取iview的Table使用的columns响应式变量\n *\n * @author lxm\n * @date 2022-08-18 19:08:22\n * @export\n * @param {GridController} c\n * @returns [columns, originColumns 原始]\n */\nexport function useITableColumns(c: GridController) {\n // 原始iview用列数据\n const originColumns = ref<IData[]>([]);\n\n c.nerve.self.evt.on('created', () => {\n originColumns.value = generateIViewColumns(c);\n });\n\n // 实际iview使用的columns\n const columns = computed(() => {\n // 先浅拷贝\n const copy = [...originColumns.value];\n\n // 如果没有自适应列,深拷贝最后一个对象,改成自适应\n const flexColumn = copy.find(column => !column.width);\n if (!flexColumn) {\n // 修改自适应列的索引,默认最后一个\n let index = copy.length - 1;\n if (copy[index].key === 'rowEdit') {\n index -= 1;\n }\n copy[index] = {\n ...copy[index],\n width: undefined,\n };\n }\n // 如果是操作列,固定右边\n const uaColumn = copy.find(column => column.columnType === 'UAGRIDCOLUMN');\n if (uaColumn) {\n const userParams = uaColumn.userParams;\n if (userParams && userParams.fixed === 'true') {\n uaColumn.fixed = 'right';\n }\n }\n return copy;\n });\n return [columns, originColumns];\n}\n\n/**\n * 适配iview的table的事件\n *\n * @author lxm\n * @date 2022-09-05 21:09:42\n * @export\n * @param {GridController} c\n * @returns {*}\n */\nexport function useITableEvent(c: GridController) {\n const getOriginData = (data: IData): ControlVO => {\n return c.items.find(item => item.srfkey === data.srfkey)!;\n };\n\n function onRowClick(data: IData) {\n const origin = getOriginData(data);\n // 单选的时候选中效果靠这个回调\n if (c.singleSelect) {\n const selectedItem = c.selectedData.find(\n item => item.srfkey === data.srfkey,\n );\n c.onSelectionChange(selectedItem ? [] : [origin]);\n }\n c.onRowClick(origin);\n }\n\n function onDbRowClick(data: IData) {\n c.onDbRowClick(getOriginData(data));\n }\n\n function onSelectionChange(selection: IData[]) {\n // 单选的时候选中效果靠点击事件\n if (!c.singleSelect) {\n const origins: IData[] = [];\n selection.forEach(item => {\n const find = getOriginData(item);\n if (find) {\n origins.push(find);\n }\n });\n c.onSelectionChange(origins);\n }\n }\n\n function onSortChange(opts: {\n column: IData;\n key: string;\n order: 'asc' | 'desc' | 'normal';\n }) {\n const { column, order } = opts;\n const order1 = order === 'asc' || order === 'desc' ? order : undefined;\n c.setSort(column.fieldName, order1);\n c.load();\n }\n return { onRowClick, onDbRowClick, onSelectionChange, onSortChange };\n}\n\n/**\n * 使用表格分页组件\n *\n * @author lxm\n * @date 2022-09-06 17:09:09\n * @export\n * @param {GridController} c\n * @returns {*}\n */\nexport function useAppGridPagination(c: GridController) {\n function onPageChange(page: number) {\n if (!page || page === c.curPage) {\n return;\n }\n c.curPage = page;\n c.load();\n }\n\n function onPageSizeChange(size: number) {\n if (!size || size === c.size) {\n return;\n }\n c.size = size;\n\n // 当page为第一页的时候切换size不会触发pageChange,需要自己触发加载\n if (c.curPage === 1) {\n c.load();\n }\n }\n\n function onPageReset() {\n c.curPage = 1;\n c.load();\n }\n return { onPageChange, onPageSizeChange, onPageReset };\n}\n","import { GridModel } from '@ibiz-template/model';\nimport { useGridController, useNamespace } from '@ibiz-template/vue-util';\nimport {\n computed,\n CreateElement,\n defineComponent,\n getCurrentInstance,\n h,\n onUnmounted,\n PropType,\n Ref,\n ref,\n watch,\n} from 'vue';\nimport { IModal } from '@ibiz-template/runtime';\nimport {\n useAppGridPagination,\n useITableColumns,\n useITableEvent,\n} from './collaborative-satisfaction-grid.util';\nimport '@ibiz-template/theme/style/components/widgets/grid/grid.scss';\nimport './collaborative-satisfaction-grid.scss';\n\nexport const CollaborativeSatisfactionGrid = defineComponent({\n props: {\n modelData: GridModel,\n context: { type: Object as PropType<IContext>, required: true },\n params: { type: Object as PropType<IParams>, default: () => ({}) },\n /**\n * 表格行数据默认激活模式\n * - 0 不激活\n * - 1 单击激活\n * - 2 双击激活(默认值)\n *\n * @type {(number | 0 | 1 | 2)}\n */\n gridRowActiveMode: { type: Number, default: 2 },\n modal: { type: Object as PropType<IModal> },\n },\n setup(props) {\n const { proxy } = getCurrentInstance()!;\n\n const ns = useNamespace('grid');\n const c = useGridController(\n proxy,\n props.modelData!,\n props.context!,\n props.params,\n );\n\n const [columns] = useITableColumns(c);\n const { onRowClick, onDbRowClick, onSelectionChange, onSortChange } =\n useITableEvent(c);\n const { onPageChange, onPageReset, onPageSizeChange } =\n useAppGridPagination(c);\n\n const highlight = computed(() => {\n const ctrlParams =\n props.modelData?.source.getPSControlParam()?.ctrlParams;\n return ctrlParams?.HIGHLIGHT !== 'false';\n });\n\n let timer: number | null = null;\n\n // iView表格单击行选中没有,必须手动调用选中方法\n const onUIRowClick = (data: IData, index: number) => {\n if (timer != null) {\n window.clearTimeout(timer);\n }\n timer = window.setTimeout(() => {\n const gridInstance: IData | undefined = proxy.$refs.grid;\n if (gridInstance) {\n const selectedItem = c.selectedData.find(\n item => item.srfkey === data.srfkey,\n );\n if (selectedItem) {\n gridInstance.clearCurrentRow();\n }\n if (gridInstance.toggleSelect) {\n gridInstance.toggleSelect(index);\n }\n }\n onRowClick(data);\n }, 300);\n };\n\n const onUIDbRowClick = (data: IData) => {\n if (timer != null) {\n window.clearTimeout(timer);\n }\n const gridInstance: IData | undefined = proxy.$refs.grid;\n if (gridInstance) {\n const selectedItem = c.selectedData.find(\n item => item.srfkey === data.srfkey,\n );\n if (!selectedItem) {\n gridInstance.clearCurrentRow();\n }\n }\n onDbRowClick(data);\n };\n\n // 给到iView table组件的高度\n const tableHeight = ref(0);\n\n // 表格外层div的引用\n const gridRef: Ref<HTMLElement | null> = ref(null);\n\n // 表格分页组件的引用\n const girdPaginationRef: Ref<Vue | null> = ref(null);\n\n // 浏览器ResizeObserver对象\n let resizeObserver: ResizeObserver | null = null;\n\n // 上次监听到的表格外层div高度,一旦发生变化就重新计算\n let lastGridHeight = 0;\n\n // 计算表格高度(用于固定头部)\n const calcGridHeight = () => {\n // 不是嵌入视图里的表格才去算高度\n if (gridRef.value && props.modal?.mode !== 'EMBED') {\n if (c.model.source.enablePagingBar && girdPaginationRef.value) {\n const gridPage = girdPaginationRef.value.$el as HTMLElement;\n const gridPageHeight =\n gridPage.offsetHeight +\n parseFloat(window.getComputedStyle(gridPage).paddingTop);\n tableHeight.value = gridRef.value.offsetHeight - gridPageHeight;\n } else {\n tableHeight.value = gridRef.value.offsetHeight;\n }\n }\n // 如果模型配置了高度走配置的\n if (c.model.source.height > 0) {\n tableHeight.value = c.model.source.height;\n }\n };\n\n watch(gridRef, (newVal, oldVal) => {\n if (newVal && newVal !== oldVal) {\n calcGridHeight();\n if (window.ResizeObserver && gridRef.value) {\n resizeObserver = new ResizeObserver(entries => {\n // 处理组件高度变化\n const height = entries[0].contentRect.height;\n if (height !== lastGridHeight) {\n calcGridHeight();\n lastGridHeight = height;\n }\n });\n resizeObserver.observe(gridRef.value);\n }\n }\n });\n\n onUnmounted(() => {\n // 在组件销毁前取消 ResizeObserver 的观察\n if (resizeObserver) {\n resizeObserver.disconnect();\n }\n });\n\n const tableData = computed(() => {\n return [{ hiddenRow: true }, ...c.items];\n });\n\n const ns2 = useNamespace('grid-field-column');\n const ns3 = useNamespace('collaborative-satisfaction-grid');\n\n const customColumns = ref<IData[]>([]);\n\n const tableColumns: Ref<IData[]> = computed(() => {\n const tempColumns = [...columns.value];\n tempColumns.splice(1, 0, ...customColumns.value);\n return tempColumns;\n });\n\n const departmentDataList: Ref<IData[]> = ref([]);\n\n watch(\n () => c.items,\n () => {\n customColumns.value = [];\n departmentDataList.value = [];\n if (!Array.isArray(c.items)) {\n return;\n }\n customColumns.value = c.items.map(item => {\n const title: string = item.bpjbm;\n const type: string = item.type;\n return {\n title,\n width: 120,\n minWidth: 120,\n align: 'right',\n key: type,\n ellipsis: true,\n tooltip: false,\n resizable: true,\n render: (_h: CreateElement, { index }: { index: number }) => {\n const data = departmentDataList.value[index - 1];\n return (\n <div\n class={[ns2.b()]}\n style={ns2.cssVarBlock({\n 'justify-content': 'flex-end',\n })}\n >\n <span class={ns2.e('text')}>{data?.[type] || ''}</span>\n </div>\n );\n },\n };\n });\n departmentDataList.value = c.items.map(item => {\n try {\n const departmentList = JSON.parse(item.pjdbs || '[]');\n if (Array.isArray(departmentList) && departmentList.length) {\n const obj: Record<string, string> = {};\n departmentList.forEach(department => {\n obj[department.type] = department.value || '';\n });\n return obj;\n }\n } catch (err) {\n ibiz.log.error(`${item.pjdbs} 解析错误`);\n }\n return {};\n });\n },\n );\n\n return {\n c,\n ns,\n columns,\n tableData,\n onDbRowClick,\n onUIRowClick,\n onUIDbRowClick,\n onSelectionChange,\n onSortChange,\n onPageChange,\n onPageSizeChange,\n onPageReset,\n tableHeight,\n gridRef,\n girdPaginationRef,\n highlight,\n ns2,\n ns3,\n tableColumns,\n };\n },\n render() {\n if (!this.c.complete) {\n return;\n }\n\n // 绘制作用域插槽\n const columnSlots: IData = {};\n // 表格列自定义\n this.c.model.columns.forEach(column => {\n if (column.source.columnType === 'GROUPGRIDCOLUMN') {\n return;\n }\n const columnName = column.codeName;\n columnSlots[columnName] = ({ row, index }: IData) => {\n const rowController = this.c.rows[index - 1];\n if (row.hiddenRow) {\n return (\n <span style='word-break: break-word;white-space: pre-wrap;'>\n 隐藏行的列隐藏行的列隐藏行的列隐藏行的列隐藏行的列隐藏行的列隐藏行的列隐藏行的列隐藏行的列隐藏行的列隐藏行的列隐藏行的列\n </span>\n );\n }\n if (rowController) {\n return h(this.c.providers[columnName].component, {\n props: {\n controller: this.c.columns[columnName],\n row: rowController,\n },\n key: row.srfkey + columnName,\n });\n }\n };\n });\n\n return (\n <control-layout modelData={this.c.model}>\n <div\n ref='gridRef'\n class={[\n this.ns.b(),\n this.ns.is('show-header', !this.c.model.source.hideHeader),\n this.ns.is('enable-page', this.c.model.source.enablePagingBar),\n this.ns3.b(),\n ]}\n >\n <i-table\n ref={'grid'}\n height={this.tableHeight}\n class={this.ns.b('content')}\n show-header={!this.c.model.source.hideHeader}\n highlight-row={this.c.singleSelect && this.highlight}\n data={this.tableData}\n columns={this.tableColumns}\n on-on-row-click={this.onUIRowClick}\n on-on-row-dblclick={this.onUIDbRowClick}\n on-on-selection-change={this.onSelectionChange}\n on-on-sort-change={this.onSortChange}\n row-class-name={(row: IData) => (row.hiddenRow ? 'hidden-row' : '')}\n scopedSlots={columnSlots}\n ></i-table>\n {this.c.model.source.enablePagingBar && (\n <app-grid-pagination\n ref='girdPaginationRef'\n total={this.c.total}\n curPage={this.c.curPage}\n size={this.c.size}\n on-change={this.onPageChange}\n on-page-size-change={this.onPageSizeChange}\n on-page-reset={this.onPageReset}\n ></app-grid-pagination>\n )}\n </div>\n </control-layout>\n );\n },\n});\n","import { IViewProvider } from '@ibiz-template/controller';\n\n/**\n * 应用首页样式\n *\n * @author fangZhiHao\n * @date 2023-01-16 17:01:00\n * @export\n * @class GsIndexCSSProvider\n * @implements {IViewProvider}\n */\nexport class GsIndexCSSProvider implements IViewProvider {\n component: string = 'IndexView';\n}\n","// 文件路径: [插件项目的根目录]/src/global.ts\n\nimport { PluginStaticResource } from '@ibiz-template/runtime';\n\nconst resource = new PluginStaticResource(import.meta.url);\n\nexport { resource };\n","import { IControlProvider } from '@ibiz-template/controller';\n\nexport class CollaborativeSatisfactionGridProvider implements IControlProvider {\n component: string = 'CollaborativeSatisfactionGrid';\n}\n","import { VueConstructor } from 'vue';\nimport { ModelUtil } from '@ibiz-template/model';\nimport { WFToolbar, CollaborativeSatisfactionGrid } from './components';\nimport { GsIndexCSSProvider } from './provider/gs-index-css-provider/gs-index-css-provider';\nimport { resource } from './global';\nimport './index.scss';\nimport './form-group-gs.scss';\nimport { CollaborativeSatisfactionGridProvider } from './provider/collaborative-satisfaction-grid-provider/collaborative-satisfaction-grid-provider';\n\nexport default {\n mateUrl: import.meta.url,\n install(vue: VueConstructor) {\n // 读取应用自定义参数模型,适配宽度自适应\n ModelUtil.getModelService().then(service => {\n const appModel = service.app;\n if (appModel.userParams.autoWidth === 'true') {\n document.getElementsByClassName('app')[0].classList.add('auto-width');\n }\n });\n\n resource.loadStyle(['/style.css']);\n vue.component('WfToolbar', WFToolbar);\n // 全局不启用信息栏\n ibiz.config.enableDataInfoBar = false;\n\n // 全局表格行编辑全开\n ibiz.config.gridEditShowMode = 'all';\n\n ibiz.register.view.register(\n 'VIEW_CUSTOM_GsIndexCSS',\n new GsIndexCSSProvider(),\n );\n\n vue.component(\n 'CollaborativeSatisfactionGrid',\n CollaborativeSatisfactionGrid,\n );\n\n ibiz.register.control.register(\n 'CUSTOM_CollaborativeSatisfactionGrid',\n new CollaborativeSatisfactionGridProvider(),\n );\n },\n};\n"],"names":["WFToolbar","defineComponent","name","props","wfLinks","type","Array","required","setup","emit","ns","useNamespace","_handleClick","link","event","handleClick","setTimeout","render","h","b","length","map","isReject","sequenceFlowName","startsWith","sequenceFlowId","e","em","generateColumnData","column","c","columnChildren","child","columnData","_a","_b","generateIViewColumns","gridModel","columns","tempColumns","childColumn","tempColumn","useITableColumns","originColumns","ref","computed","copy","index","uaColumn","userParams","useITableEvent","getOriginData","data","item","onRowClick","origin","selectedItem","onDbRowClick","onSelectionChange","selection","origins","find","onSortChange","opts","order","order1","useAppGridPagination","onPageChange","page","onPageSizeChange","size","onPageReset","CollaborativeSatisfactionGrid","modelData","GridModel","context","Object","params","default","gridRowActiveMode","Number","modal","proxy","getCurrentInstance","useGridController","highlight","ctrlParams","source","getPSControlParam","HIGHLIGHT","timer","onUIRowClick","window","clearTimeout","gridInstance","$refs","grid","selectedData","srfkey","clearCurrentRow","toggleSelect","onUIDbRowClick","tableHeight","gridRef","girdPaginationRef","resizeObserver","lastGridHeight","calcGridHeight","value","mode","model","enablePagingBar","gridPage","$el","gridPageHeight","offsetHeight","parseFloat","getComputedStyle","paddingTop","height","watch","newVal","oldVal","ResizeObserver","entries","contentRect","observe","onUnmounted","disconnect","tableData","hiddenRow","items","ns2","ns3","customColumns","tableColumns","splice","departmentDataList","isArray","title","bpjbm","width","minWidth","align","key","ellipsis","tooltip","resizable","_h","cssVarBlock","departmentList","JSON","parse","pjdbs","obj","forEach","department","err","ibiz","log","error","complete","columnSlots","columnType","columnName","codeName","row","rowController","rows","providers","component","controller","is","hideHeader","singleSelect","total","curPage","GsIndexCSSProvider","__publicField","resource","PluginStaticResource","CollaborativeSatisfactionGridProvider","vue","ModelUtil","service"],"mappings":"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"}
\ No newline at end of file
!function(){function e(t){return e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e(t)}function t(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,u(n.key),n)}}function r(e,r,n){return r&&t(e.prototype,r),n&&t(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,o,i,a,c=[],u=!0,l=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;u=!1}else for(;!(u=(n=i.call(r)).done)&&(c.push(n.value),c.length!==t);u=!0);}catch(s){l=!0,o=s}finally{try{if(!u&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(l)throw o}}return c}}(e,t)||s(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function a(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?i(Object(r),!0).forEach((function(t){c(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function c(e,t,r){return(t=u(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function u(t){var r=function(t,r){if("object"!==e(t)||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var o=n.call(t,r||"default");if("object"!==e(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===r?String:Number)(t)}(t,"string");return"symbol"===e(r)?r:String(r)}function l(e){return function(e){if(Array.isArray(e))return f(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||s(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function s(e,t){if(e){if("string"==typeof e)return f(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?f(e,t):void 0}}function f(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function h(){"use strict";/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */h=function(){return t};var t={},r=Object.prototype,n=r.hasOwnProperty,o=Object.defineProperty||function(e,t,r){e[t]=r.value},i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",c=i.asyncIterator||"@@asyncIterator",u=i.toStringTag||"@@toStringTag";function l(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{l({},"")}catch(R){l=function(e,t,r){return e[t]=r}}function s(e,t,r,n){var i=t&&t.prototype instanceof p?t:p,a=Object.create(i.prototype),c=new x(n||[]);return o(a,"_invoke",{value:C(e,r,c)}),a}function f(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(R){return{type:"throw",arg:R}}}t.wrap=s;var d={};function p(){}function v(){}function g(){}var y={};l(y,a,(function(){return this}));var m=Object.getPrototypeOf,b=m&&m(m(E([])));b&&b!==r&&n.call(b,a)&&(y=b);var w=g.prototype=p.prototype=Object.create(y);function S(e){["next","throw","return"].forEach((function(t){l(e,t,(function(e){return this._invoke(t,e)}))}))}function P(t,r){function i(o,a,c,u){var l=f(t[o],t,a);if("throw"!==l.type){var s=l.arg,h=s.value;return h&&"object"==e(h)&&n.call(h,"__await")?r.resolve(h.__await).then((function(e){i("next",e,c,u)}),(function(e){i("throw",e,c,u)})):r.resolve(h).then((function(e){s.value=e,c(s)}),(function(e){return i("throw",e,c,u)}))}u(l.arg)}var a;o(this,"_invoke",{value:function(e,t){function n(){return new r((function(r,n){i(e,t,r,n)}))}return a=a?a.then(n,n):n()}})}function C(e,t,r){var n="suspendedStart";return function(o,i){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===o)throw i;return L()}for(r.method=o,r.arg=i;;){var a=r.delegate;if(a){var c=O(a,r);if(c){if(c===d)continue;return c}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if("suspendedStart"===n)throw n="completed",r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);n="executing";var u=f(e,t,r);if("normal"===u.type){if(n=r.done?"completed":"suspendedYield",u.arg===d)continue;return{value:u.arg,done:r.done}}"throw"===u.type&&(n="completed",r.method="throw",r.arg=u.arg)}}}function O(e,t){var r=t.method,n=e.iterator[r];if(void 0===n)return t.delegate=null,"throw"===r&&e.iterator.return&&(t.method="return",t.arg=void 0,O(e,t),"throw"===t.method)||"return"!==r&&(t.method="throw",t.arg=new TypeError("The iterator does not provide a '"+r+"' method")),d;var o=f(n,e.iterator,t.arg);if("throw"===o.type)return t.method="throw",t.arg=o.arg,t.delegate=null,d;var i=o.arg;return i?i.done?(t[e.resultName]=i.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,d):i:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,d)}function k(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function j(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function x(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(k,this),this.reset(!0)}function E(e){if(e){var t=e[a];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var r=-1,o=function t(){for(;++r<e.length;)if(n.call(e,r))return t.value=e[r],t.done=!1,t;return t.value=void 0,t.done=!0,t};return o.next=o}}return{next:L}}function L(){return{value:void 0,done:!0}}return v.prototype=g,o(w,"constructor",{value:g,configurable:!0}),o(g,"constructor",{value:v,configurable:!0}),v.displayName=l(g,u,"GeneratorFunction"),t.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===v||"GeneratorFunction"===(t.displayName||t.name))},t.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,g):(e.__proto__=g,l(e,u,"GeneratorFunction")),e.prototype=Object.create(w),e},t.awrap=function(e){return{__await:e}},S(P.prototype),l(P.prototype,c,(function(){return this})),t.AsyncIterator=P,t.async=function(e,r,n,o,i){void 0===i&&(i=Promise);var a=new P(s(e,r,n,o),i);return t.isGeneratorFunction(r)?a:a.next().then((function(e){return e.done?e.value:a.next()}))},S(w),l(w,u,"Generator"),l(w,a,(function(){return this})),l(w,"toString",(function(){return"[object Generator]"})),t.keys=function(e){var t=Object(e),r=[];for(var n in t)r.push(n);return r.reverse(),function e(){for(;r.length;){var n=r.pop();if(n in t)return e.value=n,e.done=!1,e}return e.done=!0,e}},t.values=E,x.prototype={constructor:x,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(j),!e)for(var t in this)"t"===t.charAt(0)&&n.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var t=this;function r(r,n){return a.type="throw",a.arg=e,t.next=r,n&&(t.method="next",t.arg=void 0),!!n}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],a=i.completion;if("root"===i.tryLoc)return r("end");if(i.tryLoc<=this.prev){var c=n.call(i,"catchLoc"),u=n.call(i,"finallyLoc");if(c&&u){if(this.prev<i.catchLoc)return r(i.catchLoc,!0);if(this.prev<i.finallyLoc)return r(i.finallyLoc)}else if(c){if(this.prev<i.catchLoc)return r(i.catchLoc,!0)}else{if(!u)throw new Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return r(i.finallyLoc)}}}},abrupt:function(e,t){for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var i=o;break}}i&&("break"===e||"continue"===e)&&i.tryLoc<=t&&t<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=e,a.arg=t,i?(this.method="next",this.next=i.finallyLoc,d):this.complete(a)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),d},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),j(r),d}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var o=n.arg;j(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,r){return this.delegate={iterator:E(e),resultName:t,nextLoc:r},"next"===this.method&&(this.arg=void 0),d}},t}function d(e,t,r,n,o,i,a){try{var c=e[i](a),u=c.value}catch(l){return void r(l)}c.done?t(u):Promise.resolve(u).then(n,o)}function p(e){return function(){var t=this,r=arguments;return new Promise((function(n,o){var i=e.apply(t,r);function a(e){d(i,n,o,a,c,"next",e)}function c(e){d(i,n,o,a,c,"throw",e)}a(void 0)}))}}System.register(["@ibiz-template/model","vue","@ibiz-template/vue-util","@ibiz-template/runtime"],(function(e,t){"use strict";var i,u,s,f,d,v,g,y,m,b,w,S;return{setters:[function(e){i=e.GridModel,u=e.ModelUtil},function(e){s=e.defineComponent,f=e.h,d=e.ref,v=e.computed,g=e.getCurrentInstance,y=e.watch,m=e.onUnmounted},function(e){b=e.useNamespace,w=e.useGridController},function(e){S=e.PluginStaticResource}],execute:function(){var P=s({name:"WFToolbar",props:{wfLinks:{type:Array,required:!0}},setup:function(e,t){var r=t.emit,n=b("wf-toolbar"),o=function(){var e=p(h().mark((function e(t,n){return h().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:r("wf-link-click",t,n);case 1:case"end":return e.stop()}}),e)})));return function(t,r){return e.apply(this,arguments)}}(),i=function(){var e=p(h().mark((function e(t,r){return h().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:setTimeout((function(){o(t,r)}),30);case 1:case"end":return e.stop()}}),e)})));return function(t,r){return e.apply(this,arguments)}}();return{ns:n,handleClick:i}},render:function(){var e=this,t=this.wfLinks||[];return f("div",{class:"".concat(this.ns.b())},[t.length>0&&t.map((function(t){var r=t.sequenceFlowName.startsWith("驳回")||t.sequenceFlowName.startsWith("取消");return f("div",{key:t.sequenceFlowId,class:[e.ns.e("item"),r?e.ns.em("item","reject"):""]},[f("i-button",{attrs:{title:t.sequenceFlowName},on:{click:function(r){return e.handleClick(t,r)}}},[t.sequenceFlowName||""])])}))])}});function C(e,t){var r,n,o=[];"GROUPGRIDCOLUMN"===e.source.columnType&&e.children.forEach((function(e){o.push(C(e,t))}));var i={title:e.title,width:"STAR"===e.source.widthUnit?void 0:e.width,minWidth:e.width,align:(null===(r=e.source.align)||void 0===r?void 0:r.toLowerCase())||"center",slot:e.codeName,key:e.codeName,fieldName:e.deFieldName,ellipsis:!0,tooltip:!1,resizable:!0,sortable:!(t.noSort||!e.source.enableSort)&&"custom",columnType:e.source.columnType,userParams:e.source.userParams,className:null===(n=e.source.getCellPSSysCss())||void 0===n?void 0:n.cssName};return o.length>0&&Object.assign(i,{children:o}),i}function O(e){var t=e.model,r=[],n=t.columns.map((function(t){return C(t,e)}));return t.children.forEach((function(e){var t=n.find((function(t){return t.key===e.codeName}));t&&r.push(t)})),e.singleSelect||r.splice(0,0,{type:"selection",width:60}),r}var k=s({props:{modelData:i,context:{type:Object,required:!0},params:{type:Object,default:function(){return{}}},gridRowActiveMode:{type:Number,default:2},modal:{type:Object}},setup:function(e){var t=g().proxy,r=b("grid"),n=w(t,e.modelData,e.context,e.params),i=function(e){var t=d([]);return e.nerve.self.evt.on("created",(function(){t.value=O(e)})),[v((function(){var e=l(t.value);if(!e.find((function(e){return!e.width}))){var r=e.length-1;"rowEdit"===e[r].key&&(r-=1),e[r]=a(a({},e[r]),{},{width:void 0})}var n=e.find((function(e){return"UAGRIDCOLUMN"===e.columnType}));if(n){var o=n.userParams;o&&"true"===o.fixed&&(n.fixed="right")}return e})),t]}(n),c=o(i,1)[0],u=function(e){var t=function(t){return e.items.find((function(e){return e.srfkey===t.srfkey}))};return{onRowClick:function(r){var n=t(r);if(e.singleSelect){var o=e.selectedData.find((function(e){return e.srfkey===r.srfkey}));e.onSelectionChange(o?[]:[n])}e.onRowClick(n)},onDbRowClick:function(r){e.onDbRowClick(t(r))},onSelectionChange:function(r){if(!e.singleSelect){var n=[];r.forEach((function(e){var r=t(e);r&&n.push(r)})),e.onSelectionChange(n)}},onSortChange:function(t){var r=t.column,n=t.order,o="asc"===n||"desc"===n?n:void 0;e.setSort(r.fieldName,o),e.load()}}}(n),s=u.onRowClick,h=u.onDbRowClick,p=u.onSelectionChange,S=u.onSortChange,P=function(e){return{onPageChange:function(t){t&&t!==e.curPage&&(e.curPage=t,e.load())},onPageSizeChange:function(t){t&&t!==e.size&&(e.size=t,1===e.curPage&&e.load())},onPageReset:function(){e.curPage=1,e.load()}}}(n),C=P.onPageChange,k=P.onPageReset,j=P.onPageSizeChange,x=v((function(){var t,r,n=null===(t=e.modelData)||void 0===t||null===(r=t.source.getPSControlParam())||void 0===r?void 0:r.ctrlParams;return"false"!==(null==n?void 0:n.HIGHLIGHT)})),E=null,L=d(0),R=d(null),N=d(null),T=null,D=0,I=function(){var t;if(R.value&&"EMBED"!==(null===(t=e.modal)||void 0===t?void 0:t.mode))if(n.model.source.enablePagingBar&&N.value){var r=N.value.$el,o=r.offsetHeight+parseFloat(window.getComputedStyle(r).paddingTop);L.value=R.value.offsetHeight-o}else L.value=R.value.offsetHeight;n.model.source.height>0&&(L.value=n.model.source.height)};y(R,(function(e,t){e&&e!==t&&(I(),window.ResizeObserver&&R.value&&(T=new ResizeObserver((function(e){var t=e[0].contentRect.height;t!==D&&(I(),D=t)}))).observe(R.value))})),m((function(){T&&T.disconnect()}));var z=v((function(){return[{hiddenRow:!0}].concat(l(n.items))})),G=b("grid-field-column"),A=b("collaborative-satisfaction-grid"),_=d([]),U=v((function(){var e=l(c.value);return e.splice.apply(e,[1,0].concat(l(_.value))),e})),F=d([]);return y((function(){return n.items}),(function(){_.value=[],F.value=[],Array.isArray(n.items)&&(_.value=n.items.map((function(e){var t=e.bpjbm,r=e.type;return{title:t,width:120,minWidth:120,align:"right",key:r,ellipsis:!0,tooltip:!1,resizable:!0,render:function(e,t){var n=t.index,o=F.value[n-1];return f("div",{class:[G.b()],style:G.cssVarBlock({"justify-content":"flex-end"})},[f("span",{class:G.e("text")},[(null==o?void 0:o[r])||""])])}}})),F.value=n.items.map((function(e){try{var t=JSON.parse(e.pjdbs||"[]");if(Array.isArray(t)&&t.length){var r={};return t.forEach((function(e){r[e.type]=e.value||""})),r}}catch(n){ibiz.log.error("".concat(e.pjdbs," 解析错误"))}return{}})))})),{c:n,ns:r,columns:c,tableData:z,onDbRowClick:h,onUIRowClick:function(e,r){null!=E&&window.clearTimeout(E),E=window.setTimeout((function(){var o=t.$refs.grid;o&&(n.selectedData.find((function(t){return t.srfkey===e.srfkey}))&&o.clearCurrentRow(),o.toggleSelect&&o.toggleSelect(r));s(e)}),300)},onUIDbRowClick:function(e){null!=E&&window.clearTimeout(E);var r=t.$refs.grid;r&&(n.selectedData.find((function(t){return t.srfkey===e.srfkey}))||r.clearCurrentRow());h(e)},onSelectionChange:p,onSortChange:S,onPageChange:C,onPageSizeChange:j,onPageReset:k,tableHeight:L,gridRef:R,girdPaginationRef:N,highlight:x,ns2:G,ns3:A,tableColumns:U}},render:function(){var e=this;if(this.c.complete){var t={};return this.c.model.columns.forEach((function(r){if("GROUPGRIDCOLUMN"!==r.source.columnType){var n=r.codeName;t[n]=function(t){var r=t.row,o=t.index,i=e.c.rows[o-1];return r.hiddenRow?f("span",{style:"word-break: break-word;white-space: pre-wrap;"},["隐藏行的列隐藏行的列隐藏行的列隐藏行的列隐藏行的列隐藏行的列隐藏行的列隐藏行的列隐藏行的列隐藏行的列隐藏行的列隐藏行的列"]):i?f(e.c.providers[n].component,{props:{controller:e.c.columns[n],row:i},key:r.srfkey+n}):void 0}}})),f("control-layout",{attrs:{modelData:this.c.model}},[f("div",{ref:"gridRef",class:[this.ns.b(),this.ns.is("show-header",!this.c.model.source.hideHeader),this.ns.is("enable-page",this.c.model.source.enablePagingBar),this.ns3.b()]},[f("i-table",{ref:"grid",attrs:{height:this.tableHeight,"show-header":!this.c.model.source.hideHeader,"highlight-row":this.c.singleSelect&&this.highlight,data:this.tableData,columns:this.tableColumns,"row-class-name":function(e){return e.hiddenRow?"hidden-row":""}},class:this.ns.b("content"),on:{"on-row-click":this.onUIRowClick,"on-row-dblclick":this.onUIDbRowClick,"on-selection-change":this.onSelectionChange,"on-sort-change":this.onSortChange},scopedSlots:t}),this.c.model.source.enablePagingBar&&f("app-grid-pagination",{ref:"girdPaginationRef",attrs:{total:this.c.total,curPage:this.c.curPage,size:this.c.size},on:{change:this.onPageChange,"page-size-change":this.onPageSizeChange,"page-reset":this.onPageReset}})])])}}}),j=r((function e(){n(this,e),c(this,"component","IndexView")})),x=new S(t.meta.url),E=r((function e(){n(this,e),c(this,"component","CollaborativeSatisfactionGrid")}));e("default",{mateUrl:t.meta.url,install:function(e){u.getModelService().then((function(e){"true"===e.app.userParams.autoWidth&&document.getElementsByClassName("app")[0].classList.add("auto-width")})),x.loadStyle(["/style.css"]),e.component("WfToolbar",P),ibiz.config.enableDataInfoBar=!1,ibiz.config.gridEditShowMode="all",ibiz.register.view.register("VIEW_CUSTOM_GsIndexCSS",new j),e.component("CollaborativeSatisfactionGrid",k),ibiz.register.control.register("CUSTOM_CollaborativeSatisfactionGrid",new E)}})}}}))}();
//# sourceMappingURL=index.legacy.js.map
{"version":3,"file":"index.legacy.js","sources":["../src/components/wf-toolbar/wf-toolbar.tsx","../src/components/collaborative-satisfaction-grid/collaborative-satisfaction-grid.util.ts","../src/components/collaborative-satisfaction-grid/collaborative-satisfaction-grid.tsx","../src/provider/gs-index-css-provider/gs-index-css-provider.ts","../src/global.ts","../src/provider/collaborative-satisfaction-grid-provider/collaborative-satisfaction-grid-provider.ts","../src/index.ts"],"sourcesContent":["import { defineComponent } from 'vue';\nimport { useNamespace } from '@ibiz-template/vue-util';\nimport { WFLink } from '@ibiz-template/controller';\nimport './wf-toolbar.scss';\n\nexport const WFToolbar = defineComponent({\n name: 'WFToolbar',\n props: {\n wfLinks: {\n type: Array<WFLink>,\n required: true,\n },\n },\n setup(props, { emit }) {\n const ns = useNamespace('wf-toolbar');\n\n // 点击事件抛给表格执行\n const _handleClick = async (link: WFLink, event: MouseEvent) => {\n emit('wf-link-click', link, event);\n };\n\n // 按钮点击加延时。解决子界面行编辑没有失焦的情况下先触发了按钮的行为。\n const handleClick = async (link: WFLink, event: MouseEvent) => {\n setTimeout(() => {\n _handleClick(link, event);\n }, 30);\n };\n\n return { ns, handleClick };\n },\n render() {\n const wfLinks = this.wfLinks || [];\n return (\n <div class={`${this.ns.b()}`}>\n {wfLinks.length > 0 &&\n wfLinks.map(link => {\n const isReject =\n link.sequenceFlowName.startsWith('驳回') ||\n link.sequenceFlowName.startsWith('取消');\n return (\n <div\n key={link.sequenceFlowId}\n class={[\n this.ns.e('item'),\n isReject ? this.ns.em('item', 'reject') : '',\n ]}\n >\n <i-button\n title={link.sequenceFlowName}\n on-click={(e: MouseEvent) => this.handleClick(link, e)}\n >\n {link.sequenceFlowName || ''}\n </i-button>\n </div>\n );\n })}\n </div>\n );\n },\n});\n","/* eslint-disable no-param-reassign */\nimport { GridController } from '@ibiz-template/controller';\nimport {\n GridColumnModel,\n GridFieldColumnModel,\n GridGroupColumnModel,\n GridModel,\n} from '@ibiz-template/model';\nimport { ControlVO } from '@ibiz-template/service';\nimport { computed, ref } from 'vue';\n\nexport function generateColumnData(column: GridColumnModel, c: GridController) {\n const columnChildren: IData[] = [];\n if (column.source.columnType === 'GROUPGRIDCOLUMN') {\n // 如果是分组列,递归生成children\n (column as GridGroupColumnModel).children.forEach(child => {\n columnChildren.push(generateColumnData(child, c));\n });\n }\n const columnData = {\n title: column.title,\n width: column.source.widthUnit === 'STAR' ? undefined : column.width,\n minWidth: column.width,\n align: column.source.align?.toLowerCase() || 'center',\n slot: column.codeName,\n key: column.codeName,\n fieldName: (column as GridFieldColumnModel).deFieldName,\n ellipsis: true,\n tooltip: false, // todo 表格提示用title\n resizable: true,\n sortable: !c.noSort && column.source.enableSort ? 'custom' : false,\n columnType: column.source.columnType,\n userParams: column.source.userParams,\n className: column.source.getCellPSSysCss()?.cssName,\n };\n if (columnChildren.length > 0) {\n Object.assign(columnData, { children: columnChildren });\n }\n return columnData;\n}\n\n/**\n * 生成iViewTable要用的columns\n *\n * @author lxm\n * @date 2022-08-31 19:08:34\n * @export\n * @param {GridController} c\n * @returns {*} {IData[]}\n */\nexport function generateIViewColumns(c: GridController): IData[] {\n const gridModel: GridModel = c.model;\n const columns: IData[] = [];\n // 生成所有表格列对应的iView表格需要的对象\n const tempColumns: IData[] = gridModel.columns.map(column => {\n return generateColumnData(column, c);\n });\n // 根据表格第一层的子去生成iView表格需要的columns\n gridModel.children.forEach((childColumn: GridColumnModel) => {\n const tempColumn = tempColumns.find(column => {\n return column.key === childColumn.codeName;\n });\n if (tempColumn) {\n columns.push(tempColumn);\n }\n });\n\n // 多选的时候给第一列添加选择列\n if (!c.singleSelect) {\n columns.splice(0, 0, { type: 'selection', width: 60 });\n }\n\n return columns;\n}\n\n/**\n * 获取iview的Table使用的columns响应式变量\n *\n * @author lxm\n * @date 2022-08-18 19:08:22\n * @export\n * @param {GridController} c\n * @returns [columns, originColumns 原始]\n */\nexport function useITableColumns(c: GridController) {\n // 原始iview用列数据\n const originColumns = ref<IData[]>([]);\n\n c.nerve.self.evt.on('created', () => {\n originColumns.value = generateIViewColumns(c);\n });\n\n // 实际iview使用的columns\n const columns = computed(() => {\n // 先浅拷贝\n const copy = [...originColumns.value];\n\n // 如果没有自适应列,深拷贝最后一个对象,改成自适应\n const flexColumn = copy.find(column => !column.width);\n if (!flexColumn) {\n // 修改自适应列的索引,默认最后一个\n let index = copy.length - 1;\n if (copy[index].key === 'rowEdit') {\n index -= 1;\n }\n copy[index] = {\n ...copy[index],\n width: undefined,\n };\n }\n // 如果是操作列,固定右边\n const uaColumn = copy.find(column => column.columnType === 'UAGRIDCOLUMN');\n if (uaColumn) {\n const userParams = uaColumn.userParams;\n if (userParams && userParams.fixed === 'true') {\n uaColumn.fixed = 'right';\n }\n }\n return copy;\n });\n return [columns, originColumns];\n}\n\n/**\n * 适配iview的table的事件\n *\n * @author lxm\n * @date 2022-09-05 21:09:42\n * @export\n * @param {GridController} c\n * @returns {*}\n */\nexport function useITableEvent(c: GridController) {\n const getOriginData = (data: IData): ControlVO => {\n return c.items.find(item => item.srfkey === data.srfkey)!;\n };\n\n function onRowClick(data: IData) {\n const origin = getOriginData(data);\n // 单选的时候选中效果靠这个回调\n if (c.singleSelect) {\n const selectedItem = c.selectedData.find(\n item => item.srfkey === data.srfkey,\n );\n c.onSelectionChange(selectedItem ? [] : [origin]);\n }\n c.onRowClick(origin);\n }\n\n function onDbRowClick(data: IData) {\n c.onDbRowClick(getOriginData(data));\n }\n\n function onSelectionChange(selection: IData[]) {\n // 单选的时候选中效果靠点击事件\n if (!c.singleSelect) {\n const origins: IData[] = [];\n selection.forEach(item => {\n const find = getOriginData(item);\n if (find) {\n origins.push(find);\n }\n });\n c.onSelectionChange(origins);\n }\n }\n\n function onSortChange(opts: {\n column: IData;\n key: string;\n order: 'asc' | 'desc' | 'normal';\n }) {\n const { column, order } = opts;\n const order1 = order === 'asc' || order === 'desc' ? order : undefined;\n c.setSort(column.fieldName, order1);\n c.load();\n }\n return { onRowClick, onDbRowClick, onSelectionChange, onSortChange };\n}\n\n/**\n * 使用表格分页组件\n *\n * @author lxm\n * @date 2022-09-06 17:09:09\n * @export\n * @param {GridController} c\n * @returns {*}\n */\nexport function useAppGridPagination(c: GridController) {\n function onPageChange(page: number) {\n if (!page || page === c.curPage) {\n return;\n }\n c.curPage = page;\n c.load();\n }\n\n function onPageSizeChange(size: number) {\n if (!size || size === c.size) {\n return;\n }\n c.size = size;\n\n // 当page为第一页的时候切换size不会触发pageChange,需要自己触发加载\n if (c.curPage === 1) {\n c.load();\n }\n }\n\n function onPageReset() {\n c.curPage = 1;\n c.load();\n }\n return { onPageChange, onPageSizeChange, onPageReset };\n}\n","import { GridModel } from '@ibiz-template/model';\nimport { useGridController, useNamespace } from '@ibiz-template/vue-util';\nimport {\n computed,\n CreateElement,\n defineComponent,\n getCurrentInstance,\n h,\n onUnmounted,\n PropType,\n Ref,\n ref,\n watch,\n} from 'vue';\nimport { IModal } from '@ibiz-template/runtime';\nimport {\n useAppGridPagination,\n useITableColumns,\n useITableEvent,\n} from './collaborative-satisfaction-grid.util';\nimport '@ibiz-template/theme/style/components/widgets/grid/grid.scss';\nimport './collaborative-satisfaction-grid.scss';\n\nexport const CollaborativeSatisfactionGrid = defineComponent({\n props: {\n modelData: GridModel,\n context: { type: Object as PropType<IContext>, required: true },\n params: { type: Object as PropType<IParams>, default: () => ({}) },\n /**\n * 表格行数据默认激活模式\n * - 0 不激活\n * - 1 单击激活\n * - 2 双击激活(默认值)\n *\n * @type {(number | 0 | 1 | 2)}\n */\n gridRowActiveMode: { type: Number, default: 2 },\n modal: { type: Object as PropType<IModal> },\n },\n setup(props) {\n const { proxy } = getCurrentInstance()!;\n\n const ns = useNamespace('grid');\n const c = useGridController(\n proxy,\n props.modelData!,\n props.context!,\n props.params,\n );\n\n const [columns] = useITableColumns(c);\n const { onRowClick, onDbRowClick, onSelectionChange, onSortChange } =\n useITableEvent(c);\n const { onPageChange, onPageReset, onPageSizeChange } =\n useAppGridPagination(c);\n\n const highlight = computed(() => {\n const ctrlParams =\n props.modelData?.source.getPSControlParam()?.ctrlParams;\n return ctrlParams?.HIGHLIGHT !== 'false';\n });\n\n let timer: number | null = null;\n\n // iView表格单击行选中没有,必须手动调用选中方法\n const onUIRowClick = (data: IData, index: number) => {\n if (timer != null) {\n window.clearTimeout(timer);\n }\n timer = window.setTimeout(() => {\n const gridInstance: IData | undefined = proxy.$refs.grid;\n if (gridInstance) {\n const selectedItem = c.selectedData.find(\n item => item.srfkey === data.srfkey,\n );\n if (selectedItem) {\n gridInstance.clearCurrentRow();\n }\n if (gridInstance.toggleSelect) {\n gridInstance.toggleSelect(index);\n }\n }\n onRowClick(data);\n }, 300);\n };\n\n const onUIDbRowClick = (data: IData) => {\n if (timer != null) {\n window.clearTimeout(timer);\n }\n const gridInstance: IData | undefined = proxy.$refs.grid;\n if (gridInstance) {\n const selectedItem = c.selectedData.find(\n item => item.srfkey === data.srfkey,\n );\n if (!selectedItem) {\n gridInstance.clearCurrentRow();\n }\n }\n onDbRowClick(data);\n };\n\n // 给到iView table组件的高度\n const tableHeight = ref(0);\n\n // 表格外层div的引用\n const gridRef: Ref<HTMLElement | null> = ref(null);\n\n // 表格分页组件的引用\n const girdPaginationRef: Ref<Vue | null> = ref(null);\n\n // 浏览器ResizeObserver对象\n let resizeObserver: ResizeObserver | null = null;\n\n // 上次监听到的表格外层div高度,一旦发生变化就重新计算\n let lastGridHeight = 0;\n\n // 计算表格高度(用于固定头部)\n const calcGridHeight = () => {\n // 不是嵌入视图里的表格才去算高度\n if (gridRef.value && props.modal?.mode !== 'EMBED') {\n if (c.model.source.enablePagingBar && girdPaginationRef.value) {\n const gridPage = girdPaginationRef.value.$el as HTMLElement;\n const gridPageHeight =\n gridPage.offsetHeight +\n parseFloat(window.getComputedStyle(gridPage).paddingTop);\n tableHeight.value = gridRef.value.offsetHeight - gridPageHeight;\n } else {\n tableHeight.value = gridRef.value.offsetHeight;\n }\n }\n // 如果模型配置了高度走配置的\n if (c.model.source.height > 0) {\n tableHeight.value = c.model.source.height;\n }\n };\n\n watch(gridRef, (newVal, oldVal) => {\n if (newVal && newVal !== oldVal) {\n calcGridHeight();\n if (window.ResizeObserver && gridRef.value) {\n resizeObserver = new ResizeObserver(entries => {\n // 处理组件高度变化\n const height = entries[0].contentRect.height;\n if (height !== lastGridHeight) {\n calcGridHeight();\n lastGridHeight = height;\n }\n });\n resizeObserver.observe(gridRef.value);\n }\n }\n });\n\n onUnmounted(() => {\n // 在组件销毁前取消 ResizeObserver 的观察\n if (resizeObserver) {\n resizeObserver.disconnect();\n }\n });\n\n const tableData = computed(() => {\n return [{ hiddenRow: true }, ...c.items];\n });\n\n const ns2 = useNamespace('grid-field-column');\n const ns3 = useNamespace('collaborative-satisfaction-grid');\n\n const customColumns = ref<IData[]>([]);\n\n const tableColumns: Ref<IData[]> = computed(() => {\n const tempColumns = [...columns.value];\n tempColumns.splice(1, 0, ...customColumns.value);\n return tempColumns;\n });\n\n const departmentDataList: Ref<IData[]> = ref([]);\n\n watch(\n () => c.items,\n () => {\n customColumns.value = [];\n departmentDataList.value = [];\n if (!Array.isArray(c.items)) {\n return;\n }\n customColumns.value = c.items.map(item => {\n const title: string = item.bpjbm;\n const type: string = item.type;\n return {\n title,\n width: 120,\n minWidth: 120,\n align: 'right',\n key: type,\n ellipsis: true,\n tooltip: false,\n resizable: true,\n render: (_h: CreateElement, { index }: { index: number }) => {\n const data = departmentDataList.value[index - 1];\n return (\n <div\n class={[ns2.b()]}\n style={ns2.cssVarBlock({\n 'justify-content': 'flex-end',\n })}\n >\n <span class={ns2.e('text')}>{data?.[type] || ''}</span>\n </div>\n );\n },\n };\n });\n departmentDataList.value = c.items.map(item => {\n try {\n const departmentList = JSON.parse(item.pjdbs || '[]');\n if (Array.isArray(departmentList) && departmentList.length) {\n const obj: Record<string, string> = {};\n departmentList.forEach(department => {\n obj[department.type] = department.value || '';\n });\n return obj;\n }\n } catch (err) {\n ibiz.log.error(`${item.pjdbs} 解析错误`);\n }\n return {};\n });\n },\n );\n\n return {\n c,\n ns,\n columns,\n tableData,\n onDbRowClick,\n onUIRowClick,\n onUIDbRowClick,\n onSelectionChange,\n onSortChange,\n onPageChange,\n onPageSizeChange,\n onPageReset,\n tableHeight,\n gridRef,\n girdPaginationRef,\n highlight,\n ns2,\n ns3,\n tableColumns,\n };\n },\n render() {\n if (!this.c.complete) {\n return;\n }\n\n // 绘制作用域插槽\n const columnSlots: IData = {};\n // 表格列自定义\n this.c.model.columns.forEach(column => {\n if (column.source.columnType === 'GROUPGRIDCOLUMN') {\n return;\n }\n const columnName = column.codeName;\n columnSlots[columnName] = ({ row, index }: IData) => {\n const rowController = this.c.rows[index - 1];\n if (row.hiddenRow) {\n return (\n <span style='word-break: break-word;white-space: pre-wrap;'>\n 隐藏行的列隐藏行的列隐藏行的列隐藏行的列隐藏行的列隐藏行的列隐藏行的列隐藏行的列隐藏行的列隐藏行的列隐藏行的列隐藏行的列\n </span>\n );\n }\n if (rowController) {\n return h(this.c.providers[columnName].component, {\n props: {\n controller: this.c.columns[columnName],\n row: rowController,\n },\n key: row.srfkey + columnName,\n });\n }\n };\n });\n\n return (\n <control-layout modelData={this.c.model}>\n <div\n ref='gridRef'\n class={[\n this.ns.b(),\n this.ns.is('show-header', !this.c.model.source.hideHeader),\n this.ns.is('enable-page', this.c.model.source.enablePagingBar),\n this.ns3.b(),\n ]}\n >\n <i-table\n ref={'grid'}\n height={this.tableHeight}\n class={this.ns.b('content')}\n show-header={!this.c.model.source.hideHeader}\n highlight-row={this.c.singleSelect && this.highlight}\n data={this.tableData}\n columns={this.tableColumns}\n on-on-row-click={this.onUIRowClick}\n on-on-row-dblclick={this.onUIDbRowClick}\n on-on-selection-change={this.onSelectionChange}\n on-on-sort-change={this.onSortChange}\n row-class-name={(row: IData) => (row.hiddenRow ? 'hidden-row' : '')}\n scopedSlots={columnSlots}\n ></i-table>\n {this.c.model.source.enablePagingBar && (\n <app-grid-pagination\n ref='girdPaginationRef'\n total={this.c.total}\n curPage={this.c.curPage}\n size={this.c.size}\n on-change={this.onPageChange}\n on-page-size-change={this.onPageSizeChange}\n on-page-reset={this.onPageReset}\n ></app-grid-pagination>\n )}\n </div>\n </control-layout>\n );\n },\n});\n","import { IViewProvider } from '@ibiz-template/controller';\n\n/**\n * 应用首页样式\n *\n * @author fangZhiHao\n * @date 2023-01-16 17:01:00\n * @export\n * @class GsIndexCSSProvider\n * @implements {IViewProvider}\n */\nexport class GsIndexCSSProvider implements IViewProvider {\n component: string = 'IndexView';\n}\n","// 文件路径: [插件项目的根目录]/src/global.ts\n\nimport { PluginStaticResource } from '@ibiz-template/runtime';\n\nconst resource = new PluginStaticResource(import.meta.url);\n\nexport { resource };\n","import { IControlProvider } from '@ibiz-template/controller';\n\nexport class CollaborativeSatisfactionGridProvider implements IControlProvider {\n component: string = 'CollaborativeSatisfactionGrid';\n}\n","import { VueConstructor } from 'vue';\nimport { ModelUtil } from '@ibiz-template/model';\nimport { WFToolbar, CollaborativeSatisfactionGrid } from './components';\nimport { GsIndexCSSProvider } from './provider/gs-index-css-provider/gs-index-css-provider';\nimport { resource } from './global';\nimport './index.scss';\nimport './form-group-gs.scss';\nimport { CollaborativeSatisfactionGridProvider } from './provider/collaborative-satisfaction-grid-provider/collaborative-satisfaction-grid-provider';\n\nexport default {\n mateUrl: import.meta.url,\n install(vue: VueConstructor) {\n // 读取应用自定义参数模型,适配宽度自适应\n ModelUtil.getModelService().then(service => {\n const appModel = service.app;\n if (appModel.userParams.autoWidth === 'true') {\n document.getElementsByClassName('app')[0].classList.add('auto-width');\n }\n });\n\n resource.loadStyle(['/style.css']);\n vue.component('WfToolbar', WFToolbar);\n // 全局不启用信息栏\n ibiz.config.enableDataInfoBar = false;\n\n // 全局表格行编辑全开\n ibiz.config.gridEditShowMode = 'all';\n\n ibiz.register.view.register(\n 'VIEW_CUSTOM_GsIndexCSS',\n new GsIndexCSSProvider(),\n );\n\n vue.component(\n 'CollaborativeSatisfactionGrid',\n CollaborativeSatisfactionGrid,\n );\n\n ibiz.register.control.register(\n 'CUSTOM_CollaborativeSatisfactionGrid',\n new CollaborativeSatisfactionGridProvider(),\n );\n },\n};\n"],"names":["WFToolbar","defineComponent","name","props","wfLinks","type","Array","required","setup","_ref","emit","ns","useNamespace","_handleClick","_ref2","_asyncToGenerator","_regeneratorRuntime","mark","_callee","link","event","wrap","_callee$","_context","prev","next","stop","_x","_x2","apply","arguments","handleClick","_ref3","_callee2","_callee2$","_context2","setTimeout","_x3","_x4","render","_this","this","h","class","concat","b","length","map","isReject","sequenceFlowName","startsWith","key","sequenceFlowId","e","em","attrs","title","on","click","generateColumnData","column","c","_column$source$align","_column$source$getCel","columnChildren","source","columnType","children","forEach","child","push","columnData","width","widthUnit","minWidth","align","toLowerCase","slot","codeName","fieldName","deFieldName","ellipsis","tooltip","resizable","sortable","noSort","enableSort","userParams","className","getCellPSSysCss","cssName","Object","assign","generateIViewColumns","gridModel","model","columns","tempColumns","childColumn","tempColumn","find","singleSelect","splice","CollaborativeSatisfactionGrid","modelData","GridModel","context","params","default","gridRowActiveMode","Number","modal","proxy","getCurrentInstance","useGridController","_useITableColumns","originColumns","ref","nerve","self","evt","value","computed","copy","_toConsumableArray","index","_objectSpread","uaColumn","fixed","useITableColumns","_slicedToArray","_useITableEvent","getOriginData","data","items","item","srfkey","onRowClick","origin","selectedItem","selectedData","onSelectionChange","onDbRowClick","selection","origins","onSortChange","opts","order","order1","setSort","load","useITableEvent","_useAppGridPagination","onPageChange","page","curPage","onPageSizeChange","size","onPageReset","useAppGridPagination","highlight","_props$modelData","_props$modelData$sour","ctrlParams","getPSControlParam","HIGHLIGHT","timer","tableHeight","gridRef","girdPaginationRef","resizeObserver","lastGridHeight","calcGridHeight","_props$modal","mode","enablePagingBar","gridPage","$el","gridPageHeight","offsetHeight","parseFloat","window","getComputedStyle","paddingTop","height","watch","newVal","oldVal","ResizeObserver","entries","contentRect","observe","onUnmounted","disconnect","tableData","hiddenRow","ns2","ns3","customColumns","tableColumns","departmentDataList","isArray","bpjbm","_h","_ref4","style","cssVarBlock","departmentList","JSON","parse","pjdbs","obj","department","err","ibiz","log","error","onUIRowClick","clearTimeout","gridInstance","$refs","grid","clearCurrentRow","toggleSelect","onUIDbRowClick","_this2","complete","columnSlots","columnName","_ref5","row","rowController","rows","providers","component","controller","is","hideHeader","scopedSlots","total","change","GsIndexCSSProvider","_createClass","_classCallCheck","_defineProperty","resource","PluginStaticResource","module","CollaborativeSatisfactionGridProvider","exports","mateUrl","meta","url","install","vue","ModelUtil","getModelService","then","service","app","autoWidth","document","getElementsByClassName","classList","add","loadStyle","config","enableDataInfoBar","gridEditShowMode","register","view","control"],"mappings":"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"}
\ No newline at end of file
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册