@cimom/ci-web-plugins-commom 1.0.14 → 1.0.15

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/README.md CHANGED
@@ -31,6 +31,7 @@ npm run build
31
31
  ```bash
32
32
  npm publish
33
33
  ```
34
+ 查看 npm config get registry https://registry.npmmirror.com/
34
35
  > 建议发布前切换为 npm 官方源:`npm config set registry https://registry.npmjs.org/`
35
36
 
36
37
  ## 插件使用说明
@@ -156,3 +157,15 @@ import '@cimom/ci-web-plugins-commom/dist/CI.Web.Plugins.Commom.css'
156
157
  - [Vite](https://vitejs.dev/)
157
158
  - [Vue3](https://vuejs.org/)
158
159
  - [TailwindCSS](https://tailwindcss.com/)
160
+
161
+ ## 使用区别
162
+ ### 1.获取实列的方式
163
+ onMounted(() => {
164
+ const $table = tableRef.value && tableRef.value.Instance()
165
+ const $toolbar = toolbarRef.value
166
+ if ($table && $toolbar) {
167
+ $table.connect($toolbar)
168
+ }
169
+ })
170
+ ### 2.事件
171
+
@@ -1,3 +1,3 @@
1
- .tableTemplateClass[data-v-2c3574c1],.tableTemplateClass[data-v-49d49595],.tableTemplateSecondClass[data-v-2c3574c1],.tableTemplateSecondClass[data-v-49d49595]{margin-right:10px}.drawerClass [data-v-c8aa8fb0] .el-drawer__header{align-items:center;border-bottom:1px solid #dcdfe6!important;color:#72767b;display:flex;height:39px;margin-bottom:10px!important;padding:5px 10px}.drawerClass [data-v-c8aa8fb0] .el-tabs__header{margin:0!important}*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*
1
+ .tableTemplateClass[data-v-2c3574c1],.tableTemplateClass[data-v-49d49595],.tableTemplateSecondClass[data-v-2c3574c1],.tableTemplateSecondClass[data-v-49d49595]{margin-right:10px}.drawerClass [data-v-c8aa8fb0] .el-drawer__header{align-items:center;border-bottom:1px solid #dcdfe6!important;color:#72767b;display:flex;height:39px;margin-bottom:10px!important;padding:5px 10px}.drawerClass [data-v-c8aa8fb0] .el-tabs__header{margin:0!important}.gridHoverStyle,.gridSelection,.timelineSelection{background-color:#fff3a1}.gantt_grid_scale .gantt_grid_head_cell{border-right:none!important;border-top:none!important;color:#a6a6a6}.gantt_grid_data .gantt_cell{border-right:none;color:#454545}.gantt_task_link .gantt_link_arrow_right{border-width:6px;margin-top:-3px}.gantt_task_link .gantt_link_arrow_left{border-width:6px;margin-left:-6px;margin-top:-3px}.gantt_task_link .gantt_link_arrow_down,.gantt_task_link .gantt_link_arrow_up{border-width:6px}.gantt_task_line .gantt_task_progress_drag{bottom:-4px;height:10px;margin-left:-8px;width:16px}.chartHeaderBg{background-color:#fff}.gantt_task .gantt_task_scale .gantt_scale_cell{border-right:1px solid #ebebeb;color:#a6a6a6}.gantt_row.gantt_project,.gantt_row.odd.gantt_project{background-color:#edffef}.gantt_task_row.gantt_project,.gantt_task_row.odd.gantt_project{background-color:#f5fff6}.gantt_task_line.gantt_project{background-color:#65c16f;border:1px solid #3c9445}.gantt_task_line.gantt_project .gantt_task_progress{background-color:#46ad51}.buttonBg{background:#fff}.gantt_cal_light .gantt_btn_set{margin:5px 10px}.gantt_btn_set.gantt_cancel_btn_set{background:#fff;border:1px solid #cecece;color:#454545}.gantt_btn_set.gantt_save_btn_set{background:#3db9d3;color:#fff;text-shadow:0 -1px 0 #248a9f}.gantt_btn_set.gantt_delete_btn_set{background:#ec8e00;color:#fff;text-shadow:0 -1px 0 #6f6f6f;text-shadow:0 -1px 0 #a60}.gantt_cal_light_wide{padding-left:0!important;padding-right:0!important}.gantt_cal_light_wide .gantt_cal_larea{border-left:none!important;border-right:none!important}.gantt_popup_button.gantt_ok_button{background:#3db9d3;border-width:0;color:#fff;font-weight:700;text-shadow:0 -1px 0 #248a9f}.gantt_popup_button.gantt_cancel_button{color:#454544;font-weight:700}.gantt_popup_title{background-color:#fff}.gantt_popup_shadow{box-shadow:3px 3px 3px rgba(0,0,0,.07)}.gantt_qi_big_icon.icon_edit{background:#fff;color:#454545}.gantt_qi_big_icon.icon_delete{background:#ec8e00;border-width:0;color:#fff;text-shadow:0 -1px 0 #a60}.gantt_tooltip{border-left:1px solid rgba(0,0,0,.07);border-top:1px solid rgba(0,0,0,.07);box-shadow:3px 3px 3px rgba(0,0,0,.07);color:#454545;font-size:8pt}.gantt_container,.gantt_tooltip{background-color:#fff;font-family:Arial}.gantt_container{border:1px solid #cecece;font-size:13px;overflow-x:hidden;overflow-y:hidden;position:relative;white-space:nowrap}.gantt_touch_active{overscroll-behavior:none}.gantt_task_scroll{overflow-x:scroll}.gantt_grid,.gantt_task{display:inline-block;overflow-x:hidden;overflow-y:hidden;position:relative;vertical-align:top}.gantt_grid_scale,.gantt_task_scale{border-bottom:1px solid #cecece;box-sizing:border-box;color:#6b6b6b;font-size:12px}.gantt_grid_scale,.gantt_task_scale,.gantt_task_vscroll{background-color:#fff}.gantt_scale_line{border-top:1px solid #cecece;box-sizing:border-box;-moz-box-sizing:border-box}.gantt_scale_line:first-child{border-top:none}.gantt_grid_head_cell{border-right:1px solid #cecece;box-sizing:border-box;-moz-box-sizing:border-box;cursor:default;display:inline-block;height:100%;line-height:33px;overflow:hidden;position:relative;text-align:center;-moz-user-select:-moz-none;-webkit-user-select:none;user-select:none;vertical-align:top}.gantt_scale_line{clear:both}.gantt_grid_data{overflow:hidden;position:relative;width:100%}.gantt_row{position:relative;-webkit-user-select:none;-moz-user-select:none;-moz-user-select:-moz-none}.gantt_add,.gantt_grid_head_add{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NTQ3MjMyMENDNkI0MTFFMjk4MTI5QTg3MDhFNDVDQTkiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NTQ3MjMyMERDNkI0MTFFMjk4MTI5QTg3MDhFNDVDQTkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo1NDcyMzIwQUM2QjQxMUUyOTgxMjlBODcwOEU0NUNBOSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo1NDcyMzIwQkM2QjQxMUUyOTgxMjlBODcwOEU0NUNBOSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PshZT8UAAABbSURBVHjaYrTdeZmBEsCER+4wEP+H4sPkGGCDg020ARR7gb4GIAcYDKMDdPnDyAbYkGG5DVW9cIQMvUdBBAuUY4vDz8iAcZinA2zgCHqAYQMseAywJcYFAAEGAM+UFGuohFczAAAAAElFTkSuQmCC);background-position:50%;background-repeat:no-repeat;cursor:pointer;height:100%;-moz-opacity:.3;opacity:.3;position:relative;width:100%}.gantt_grid_head_cell.gantt_grid_head_add{-moz-opacity:.6;opacity:.6;top:0}.gantt_grid_head_cell.gantt_grid_head_add:hover{-moz-opacity:1;opacity:1}.gantt_grid_data .gantt_row.odd:hover,.gantt_grid_data .gantt_row:hover{background-color:#fff3a1}.gantt_grid_data .gantt_row.odd:hover .gantt_add,.gantt_grid_data .gantt_row:hover .gantt_add{-moz-opacity:1;opacity:1}.gantt_row,.gantt_task_row{background-color:#fff;border-bottom:1px solid #ebebeb}.gantt_row.odd,.gantt_task_row.odd{background-color:#fff}.gantt_cell,.gantt_grid_head_cell,.gantt_row,.gantt_scale_cell,.gantt_task_cell,.gantt_task_row{box-sizing:border-box;-moz-box-sizing:border-box}.gantt_grid_head_cell,.gantt_scale_cell{line-height:inherit}.gantt_grid_scale .gantt_grid_column_resize_wrap{cursor:col-resize;margin-left:-7px;position:absolute;width:13px}.gantt_grid_column_resize_wrap .gantt_grid_column_resize{background-color:#cecece;height:100%;margin:0 auto;width:1px}.gantt_task_grid_row_resize_wrap{cursor:row-resize;height:13px;left:0;margin-top:-7px;position:absolute;width:100%}.gantt_task_grid_row_resize_wrap .gantt_task_grid_row_resize{background-color:#ebebeb;height:1px;margin:0 auto;position:relative;top:6px;width:100%}.gantt_drag_marker{pointer-events:none}.gantt_drag_marker.gantt_grid_resize_area,.gantt_drag_marker.gantt_row_grid_resize_area{background-color:hsla(0,0%,91%,.5);box-sizing:border-box;height:100%;width:100%}.gantt_drag_marker.gantt_grid_resize_area{border-left:1px solid #cecece;border-right:1px solid #cecece}.gantt_drag_marker.gantt_row_grid_resize_area{border-bottom:1px solid #cecece;border-top:1px solid #cecece;pointer-events:none}.gantt_row{display:flex}.gantt_row>div{flex-grow:0;flex-shrink:0}.gantt_cell{border-right:1px solid #ebebeb;font-size:13px;height:100%;overflow:hidden;padding-left:6px;padding-right:6px;vertical-align:top;white-space:nowrap}.gantt_cell_tree{display:flex;flex-wrap:nowrap}.gantt_grid_data .gantt_last_cell,.gantt_grid_scale .gantt_last_cell,.gantt_task .gantt_task_scale .gantt_scale_cell.gantt_last_cell,.gantt_task_bg .gantt_last_cell{border-right-width:0}.gantt_task .gantt_task_scale .gantt_scale_cell.gantt_last_cell{border-right-width:1px}.gantt_task_bg{overflow:hidden}.gantt_scale_cell{border-right:1px solid #cecece;display:inline-block;height:100%;overflow:hidden;text-align:center;white-space:nowrap}.gantt_task_cell{border-right:1px solid #ebebeb;display:inline-block;height:100%}.gantt_layout_cell.gantt_ver_scroll{background-color:transparent;height:1px;overflow-x:hidden;overflow-y:scroll;position:absolute;right:0;width:0;z-index:1}.gantt_ver_scroll>div{height:1px;width:1px}.gantt_hor_scroll{background-color:transparent;clear:both;height:0;overflow-x:scroll;overflow-y:hidden;width:100%}.gantt_layout_cell .gantt_hor_scroll{position:absolute}.gantt_hor_scroll>div{height:1px;width:5000px}.gantt_tree_icon,.gantt_tree_indent{flex-grow:0;flex-shrink:0}.gantt_tree_indent{height:100%;width:15px}.gantt_tree_content,.gantt_tree_icon{vertical-align:top}.gantt_tree_icon{background-position:50%;background-repeat:no-repeat;height:100%;width:28px}.gantt_tree_content{height:100%;min-width:0;white-space:nowrap}.gantt_tree_icon.gantt_open{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAArklEQVQ4T2NkoBJgpJI5DEPAoFOnTv0/c+YMQR+bmJgwmJmZwX2E4bVp06b9j4yMZODg4MBp2I8fPxiWL1/OkJWVNUAGcXJyMnz//h3uQrJdRLFBIAPQAchlJLsIFuCMjIwM////B5sJMoRkg2CuIdtrQcHBDOxsbHBfCQgIMHz48AHO//nrF8O6tWsJR7+7uzsDIxMTznT0/98/hp07d+I3iGopm2DewKFg8OV+AJWkfRMrTobLAAAAAElFTkSuQmCC);cursor:pointer;width:18px}.gantt_tree_icon.gantt_close{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAkUlEQVQ4T2NkoBJgpJI5DEPAoFOnTv0/c+YMQR+bmJgwmJmZwX2E4bVp06b9j4yMZODg4MBp2I8fPxiWL1/OkJWVNeIN4uTkxAin79+/M5AcRtgCHGQIyQbhijaiDQoKDmZgZ2PDGf0/f/1iWLd2LeHod3d3Z2BkYsJp0P9//xh27tyJ3yCqpWyCeQOHgsGX+wEZpW4T5LCxKwAAAABJRU5ErkJggg==);cursor:pointer;width:18px}.gantt_tree_icon.gantt_blank{width:18px}.gantt_tree_icon.gantt_folder_open{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAs0lEQVQ4T62T0Q2EIBBEpQlzuaaMsQoqooqLsSljbMLLmMxmUXBR4U+Qt7Mzi2sqLVeJ00SgEMKWAnvvzYLyAyHfT5sU2fXDJSwCAXK8MI0/UTkva7IIFJsg3NSwnKdFoKtAWOQ1CN7CEqeTotE5L7QyJhmBcklZM4ZgTiAr3iOU3kD93ppO5SkMjB1EeXdBWoSkRql3YeIRe+cGvktS056JR9wsmeBUkujCfNXWCPC8GugPqn5ii/hV+FoAAAAASUVORK5CYII=)}.gantt_tree_icon.gantt_folder_closed{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAfElEQVQ4T2NkoBJgpJI5DCgGTZ8+/T82gzMzMwlaCFcAM0RKQgyrI/0Dg/EahmIQyBB0DRvXr4W78tmLV1gtAbmYoEEgnciG4QpTogzCFyEwSyg2CBS2oCAZNQh3cA+hMAJ5AlcKxuVBlOgnNgVjMwyUrQjmamKLGaoZBAAOTFyLnFFW4wAAAABJRU5ErkJggg==)}.gantt_tree_icon.gantt_file{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAeElEQVQ4T2NkoBJgRDZn+vTp/wmZm5mZiaIHph7DICkJMUJmMfgHBmMYhtUgbAo3rl+L4lp0NUQbBPI2umuRDaPIIFAYwAyjv0HoMQALM5JdhG4QLMxGDcKdyIdoGIE89OzFK4KZF5Rl8EY/QROQFGA1iBQD0NUCAJVjcxO0naAQAAAAAElFTkSuQmCC)}.gantt_grid_head_cell .gantt_sort{background-position:50%;background-repeat:no-repeat;height:13px;position:absolute;right:5px;top:8px;width:7px}.gantt_grid_head_cell .gantt_sort.gantt_asc{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAANCAYAAABlyXS1AAAARUlEQVR4nGNgQAKGxib/GbABkIS7b8B/DAUwCRiGK0CXwFBAb1DfP/U/LszwHwi2X7qFgUEArBtdAVwCBmAKMCSQFSDzAWXXaOHsXeqkAAAAAElFTkSuQmCC)}.gantt_grid_head_cell .gantt_sort.gantt_desc{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAANCAYAAABlyXS1AAAARUlEQVR42mNgQAL1/VP/M2ADIIntF2/9x1AAlrh0C47hCmA60DFYwX88gIFGwNDY5D8uDFbg7hvwHx2jmIBTAlkB0e4BAEjlaNtBWJPnAAAAAElFTkSuQmCC)}.gantt_inserted,.gantt_updated{font-weight:700}.gantt_deleted{text-decoration:line-through}.gantt_invalid{background-color:#ffe0e0}.gantt_error{color:red}.gantt_status{background:hsla(0,0%,61%,.1);opacity:0;padding:5px 10px;position:absolute;right:1px;top:1px;transition:opacity .2s}.gantt_status.gantt_status_visible{opacity:1}#gantt_ajax_dots span{background-repeat:no-repeat;opacity:0;transition:opacity .2s}#gantt_ajax_dots span.gantt_dot_visible{opacity:1}.gantt_column_drag_marker{border:1px solid #cecece;opacity:.8;pointer-events:none}.gantt_grid_head_cell_dragged{border:1px solid #cecece;opacity:.3}.gantt_grid_target_marker{background-color:#ffa011;height:100%;position:absolute;top:0;transform:translateX(-1px);width:2px}.gantt_grid_target_marker:after,.gantt_grid_target_marker:before{border:6px solid transparent;content:"";display:block;height:0;left:-5px;position:absolute;width:0}.gantt_grid_target_marker:before{border-top-color:#ffa011}.gantt_grid_target_marker:after{border-bottom-color:#ffa011;bottom:0}.gantt_message_area{position:fixed;right:5px;width:250px;z-index:1000}.gantt-info{font-family:Arial;margin:5px 5px 10px;min-width:120px;padding:4px 4px 4px 20px;transition:all .5s ease;z-index:10000}.gantt-info.hidden{border-width:0;height:0;margin:0;overflow:hidden;padding:0}.gantt_modal_box{background:#fff;border:1px solid #cecece;border-radius:6px;box-shadow:3px 3px 3px rgba(0,0,0,.07);display:inline-block;font-family:Arial;min-width:250px;overflow:hidden;position:fixed;text-align:center;width:250px;z-index:20000}.gantt_popup_title{border-top-left-radius:6px;border-top-right-radius:6px;border-width:0}.gantt_button,.gantt_popup_button{background:#fff;border:1px solid #cecece;border-radius:4px;display:inline-block;height:30px;line-height:30px;margin:0 5px}.gantt-info,.gantt_button,.gantt_popup_button{cursor:pointer;user-select:none;-webkit-user-select:none;-moz-user-select:-moz-none}.gantt_popup_text{overflow:hidden}.gantt_popup_controls{border-radius:6px;padding:10px}.gantt_popup_button{min-width:100px}div.dhx_modal_cover{zoom:1;background-color:#000;border:none;cursor:default;filter:progid:DXImageTransform.Microsoft.Alpha(opacity=20);height:100%;left:0;opacity:.2;position:fixed;top:0;width:100%;z-index:19999}.gantt-info img,.gantt_modal_box img{float:left;margin-right:20px}.gantt-alert-error,.gantt-confirm-error{border:1px solid red}.gantt_button input,.gantt_popup_button div{border-radius:4px;box-sizing:content-box;font-size:14px;margin:0;padding:0;vertical-align:top}.gantt_popup_title{border-bottom:1px solid #cecece;font-size:20px;height:40px;line-height:40px}.gantt_popup_text{border-radius:6px;color:#000;font-size:14px;margin:15px 15px 5px;min-height:30px}.gantt-error,.gantt-info{background-color:#fff;border:1px solid #fff;border-radius:3px;box-shadow:3px 3px 3px rgba(0,0,0,.07);color:#000;font-size:14px;padding:0}.gantt-info div{background-color:#fff;border:1px solid #cecece;border-radius:3px;padding:5px 10px}.gantt-error{background-color:#d81b1b;border:1px solid #ff3c3c}.gantt-error div{background-color:#d81b1b;border:1px solid #940000;color:#fff}.gantt-warning{background-color:#ff9000;border:1px solid #ffa633}.gantt-warning div{background-color:#ff9000;border:1px solid #b36500;color:#fff}.gantt_data_area div,.gantt_grid div{-webkit-tap-highlight-color:rgba(0,0,0,0);-ms-touch-action:none}.gantt_data_area{overflow-x:hidden;overflow-y:hidden;position:relative;-moz-user-select:-moz-none;-webkit-user-select:none;user-select:none}.gantt_links_area{left:0;position:absolute;top:0}.gantt_side_content,.gantt_task_content,.gantt_task_progress{height:100%;line-height:inherit;overflow:hidden}.gantt_task_content{color:#fff;cursor:pointer;font-size:12px;position:absolute;text-align:center;top:0;white-space:nowrap;width:100%}.gantt_task_progress{background:#299cb4;text-align:center;z-index:0}.gantt_task_progress_wrapper{border-radius:inherit;height:100%;overflow:hidden;position:relative;width:100%}.gantt_task_line{background-color:#3db9d3;border:1px solid #2898b0;border-radius:2px;box-sizing:border-box;position:absolute;-webkit-user-select:none;-moz-user-select:none;-moz-user-select:-moz-none}.gantt_task_line.gantt_drag_move div{cursor:move}.gantt_touch_move,.gantt_touch_progress .gantt_touch_resize{transform:scale(1.02,1.1);transform-origin:50%}.gantt_touch_progress .gantt_task_progress_drag,.gantt_touch_resize .gantt_task_drag{transform:scaleY(1.3);transform-origin:50%}.gantt_side_content{color:#6e6e6e;font-size:11px;position:absolute;top:0;white-space:nowrap}.gantt_side_content.gantt_left{padding-right:20px;right:100%}.gantt_side_content.gantt_right{left:100%;padding-left:20px}.gantt_side_content.gantt_link_crossing{bottom:8.75px;top:auto}.gantt_link_arrow,.gantt_task_link .gantt_line_wrapper{cursor:pointer;position:absolute}.gantt_line_wrapper div{background-color:#ffa011}.gantt_task_link:hover .gantt_line_wrapper div{box-shadow:0 0 5px 0 #ffa011}.gantt_task_link div.gantt_link_arrow{background-color:transparent;border-style:solid;height:0;width:0}.gantt_link_control{position:absolute;top:0;width:20px}.gantt_link_control div{background-color:#f0f0f0;border:1px solid #929292;border-radius:6.5px;box-sizing:border-box;cursor:pointer;display:none;height:13px;margin-top:-7.5px;position:relative;top:50%;vertical-align:middle;width:13px}.gantt_link_control.task_right div.gantt_link_point{margin-left:7px}.gantt_link_control div:hover{background-color:#fff}.gantt_link_control.task_left{left:-20px}.gantt_link_control.task_right{right:-20px}.gantt_link_target .gantt_link_control div,.gantt_task_line.gantt_drag_move .gantt_link_control div,.gantt_task_line.gantt_drag_move .gantt_task_drag,.gantt_task_line.gantt_drag_move .gantt_task_progress_drag,.gantt_task_line.gantt_drag_progress .gantt_link_control div,.gantt_task_line.gantt_drag_progress .gantt_task_drag,.gantt_task_line.gantt_drag_progress .gantt_task_progress_drag,.gantt_task_line.gantt_drag_resize .gantt_link_control div,.gantt_task_line.gantt_drag_resize .gantt_task_drag,.gantt_task_line.gantt_drag_resize .gantt_task_progress_drag,.gantt_task_line.gantt_selected .gantt_link_control div,.gantt_task_line.gantt_selected .gantt_task_drag,.gantt_task_line.gantt_selected .gantt_task_progress_drag,.gantt_task_line:hover .gantt_link_control div,.gantt_task_line:hover .gantt_task_drag,.gantt_task_line:hover .gantt_task_progress_drag{display:block}.gantt_link_source,.gantt_link_target{box-shadow:0 0 3px #3db9d3}.gantt_link_target.link_finish_allow,.gantt_link_target.link_start_allow{box-shadow:0 0 3px #ffbf5e}.gantt_link_target.link_finish_deny,.gantt_link_target.link_start_deny{box-shadow:0 0 3px #e87e7b}.link_finish_allow .gantt_link_control.task_end_date div,.link_start_allow .gantt_link_control.task_start_date div{background-color:#ffbf5e;border-color:#ffa011}.link_finish_deny .gantt_link_control.task_end_date div,.link_start_deny .gantt_link_control.task_start_date div{background-color:#e87e7b;border-color:#dd3e3a}.gantt_link_arrow_right{border-bottom-color:transparent!important;border-left-color:#ffa011;border-right-color:transparent!important;border-top-color:transparent!important;border-width:4px 0 4px 6px}.gantt_link_arrow_left{border-bottom-color:transparent!important;border-left-color:transparent!important;border-right-color:#ffa011;border-top-color:transparent!important;border-width:4px 6px 4px 0;margin-top:-1px}.gantt_link_arrow_up{border-right-color:transparent!important;border-top-color:transparent!important;border-color:transparent transparent #ffa011;border-left-color:transparent!important;border-width:0 4px 6px}.gantt_link_arrow_down{border-bottom-color:transparent!important;border-left-color:transparent!important;border-right-color:transparent!important;border-top-color:#ffa011;border-width:4px 6px 0 4px}.gantt_task_drag,.gantt_task_progress_drag{cursor:ew-resize;display:none;position:absolute}.gantt_task_drag.task_right{cursor:e-resize}.gantt_task_drag.task_left{cursor:w-resize}.gantt_task_drag{height:100%;top:-1px;width:8px;z-index:1}.gantt_task_drag.task_left{left:-7px}.gantt_task_drag.task_right{right:-7px}.gantt_task_progress_drag{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAYAAAB24g05AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MkY3Rjk0RUVDMkYzMTFFMkI1OThEQTA3ODU0OTkzMEEiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MkY3Rjk0RUZDMkYzMTFFMkI1OThEQTA3ODU0OTkzMEEiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoyRjdGOTRFQ0MyRjMxMUUyQjU5OERBMDc4NTQ5OTMwQSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoyRjdGOTRFREMyRjMxMUUyQjU5OERBMDc4NTQ5OTMwQSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PobPBzIAAADkSURBVHjaYpk2bRoDDsAExL1QdjEQ/8OmiAWHZk4gXqymqhQM4ty6fU8OSMUA8XdiDBAB4k0a6iqWRga6EKcwMQXduHlnL5DpB8Rv0J2JDFSA+JiOtgZcMwiA2CAxkBxUDVYDLEAKgIpV9XQ0MZwFEgPJAZnHoWpRDAgC4n2W5saiQKfjClQGkBxQDciL+6B6wAbkA/EqJwdrTkUFOQZCAKQGpBbIXA3SCzJggo+XK7OEuBgDsQCkFqgHrBfsBT5eHgZSAUwP2IBfv36TbABMDygdtK1Zv6UESLORaAbIhG6AAAMAKN8wE24DXWcAAAAASUVORK5CYII=);background-position:bottom;background-repeat:no-repeat;bottom:-4px;height:8px;margin-left:-4px;width:8px;z-index:1}.gantt_task_progress_drag:hover{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAYAAAB24g05AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAs0lEQVQoz6WMPW7CQBgFJxZaiZ60qcgdwjVMmzu8gpwhDULabXyBdHAGuzRHivQiQZovigS2+Jtu95t5T03TMITtCtjEc5VSOgx5k5F4CnxJWgKUUl5sv6eUvk/daiCeAe1fDCCpBtq4jQ/YngO9pMWpGH99OOcDtt8ifmWEuO3D/R+wXQOdpGcuIGkGdNFQ2RawlTTlSsLd2RY55+O95JyPFQ/y8MAE+CylfADpxvYHWP8CXj+JR4wdKHYAAAAASUVORK5CYII=)}.gantt_link_tooltip{background-color:#fff;border-left:1px dotted #cecece;border-top:1px dotted #cecece;box-shadow:3px 3px 3px #888;color:#444;font-family:Tahoma;font-size:8pt;line-height:20px;padding:6px}.gantt_link_direction{border:0 #ffa011;border-bottom:2px dashed #ffa011;height:0;margin-left:1px;position:absolute;transform-origin:0 0;-ms-transform-origin:0 0;-webkit-transform-origin:0 0;z-index:2}.gantt_grid_data .gantt_row.gantt_selected,.gantt_grid_data .gantt_row.odd.gantt_selected,.gantt_task_row.gantt_selected{background-color:#fff3a1}.gantt_task_row.gantt_selected .gantt_task_cell{border-right-color:#ffec6e}.gantt_task_line.gantt_selected{box-shadow:0 0 5px #299cb4}.gantt_task_line.gantt_project.gantt_selected{box-shadow:0 0 5px #46ad51}.gantt_task_line.gantt_milestone{background-color:#d33daf;border:0 solid #61164f;box-sizing:content-box;-moz-box-sizing:content-box;visibility:hidden}.gantt_task_line.gantt_milestone div{visibility:visible}.gantt_task_line.gantt_milestone .gantt_task_content{background:inherit;border:inherit;border-radius:inherit;border-width:1px;box-sizing:border-box;-moz-box-sizing:border-box;transform:rotate(45deg)}.gantt_task_line.gantt_task_inline_color{border-color:#999}.gantt_task_line.gantt_task_inline_color .gantt_task_progress{background-color:#363636;opacity:.2}.gantt_task_line.gantt_task_inline_color.gantt_project.gantt_selected,.gantt_task_line.gantt_task_inline_color.gantt_selected{box-shadow:0 0 5px #999}.gantt_task_link.gantt_link_inline_color:hover .gantt_line_wrapper div{box-shadow:0 0 5px 0 #999}.gantt_critical_task{background-color:#e63030;border-color:#9d3a3a}.gantt_critical_task .gantt_task_progress{background-color:rgba(0,0,0,.4)}.gantt_critical_link .gantt_line_wrapper>div{background-color:#e63030}.gantt_critical_link .gantt_link_arrow{border-color:#e63030}.gantt_btn_set:focus,.gantt_cell:focus,.gantt_grid_head_cell:focus,.gantt_popup_button:focus,.gantt_qi_big_icon:focus,.gantt_row:focus{box-shadow:inset 0 0 1px 1px #4d90fe}.gantt_split_parent,.gantt_split_subproject{opacity:.1;pointer-events:none}.gantt_rollup_child .gantt_link_control,.gantt_rollup_child:hover .gantt_link_control{display:none}.gantt_unselectable,.gantt_unselectable div{-webkit-user-select:none;-moz-user-select:none;-moz-user-select:-moz-none}.gantt_cal_light{-webkit-tap-highlight-color:transparent;background:#fff;border:1px solid #cecece;border-radius:6px;box-shadow:3px 3px 3px rgba(0,0,0,.07);color:#6b6b6b;font-family:Arial;font-size:12px;height:250px;position:absolute;width:550px;z-index:10001}.gantt_cal_light_wide{width:650px}.gantt_cal_light select{border:1px solid #cecece;font-family:Arial;font-size:13px;margin:0;padding:2px}.gantt_cal_ltitle{-moz-border-radius-topleft:6px;-moz-border-radius-bottomleft:0;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:0;-webkit-border-bottom-left-radius:0;border-bottom-left-radius:0;-webkit-border-bottom-right-radius:0;border-bottom-right-radius:0;-webkit-border-top-left-radius:6px;border-top-left-radius:6px;-webkit-border-top-right-radius:6px;border-top-right-radius:6px;overflow:hidden;padding:7px 10px}.gantt_cal_ltitle,.gantt_cal_ltitle span{white-space:nowrap}.gantt_cal_lsection{color:#727272;font-weight:700;padding:12px 0 5px 10px}.gantt_cal_lsection .gantt_fullday{cursor:pointer;float:right;font-size:12px;font-weight:400;line-height:20px;margin-right:5px;vertical-align:top}.gantt_cal_lsection{font-size:13px}.gantt_cal_ltext{overflow:hidden;padding:2px 10px}.gantt_cal_ltext textarea{border:1px solid #cecece;box-sizing:border-box;font-family:Arial;font-size:13px;height:100%;outline:none!important;overflow-x:hidden;overflow-y:auto;resize:none;width:100%}.gantt_section_constraint [data-constraint-time-select]{margin-left:20px}.gantt_time{font-weight:700}.gantt_cal_light .gantt_title{padding-left:10px}.gantt_cal_larea{background-color:#fff;border:1px solid #cecece;border-left:none;border-right:none;height:1px;overflow:hidden}.gantt_btn_set{background:#fff;border:0 solid #cecece;border-radius:4px;box-sizing:border-box;cursor:pointer;float:left;font-weight:700;height:32px;margin:10px 7px 5px 10px;padding:5px 15px 5px 10px}.gantt_hidden{display:none}.gantt_btn_set div{background-repeat:no-repeat;float:left;font-size:13px;height:22px;line-height:22px;vertical-align:middle}.gantt_save_btn{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MTk1OUU5RDFDMzA0MTFFMkExMUZBQTdDNDAzOUE5RjMiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MTk1OUU5RDJDMzA0MTFFMkExMUZBQTdDNDAzOUE5RjMiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoxOTU5RTlDRkMzMDQxMUUyQTExRkFBN0M0MDM5QTlGMyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoxOTU5RTlEMEMzMDQxMUUyQTExRkFBN0M0MDM5QTlGMyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PjDroXYAAAEXSURBVHjaYvz//z8DJYCRUgPIAUxAbAnEHiAHMIBcQCwGaRYXF3e6evXqoffv39/dv38/CymaGSUkJBzv3LlzCsj///fv3wdAihkkIQnEvkAshU8zLy+v7a1bt06ANP/79+87kDIAy505cybq06dPr3p7ezuwGQLTfOPGjWP/ESAZLg8kPKBO+g01RBJNszWyZqC6uSgWgIg/f/4shxnS2dnZBjMEqNkSFGBImi8CKTYMA4BYCGjIczRDHC5dunQQSfN7IKWI4UUkjjdMMdCwnw8ePLjwHxV4Yw1gZA5Q47z/2EELzhhCE+ABGvIQWSeQvwcU38QaAML2wHj+C/X3MyAlijeB4ZBoBOIPQGxJKIVSnBsBAgwABddBclWfcZUAAAAASUVORK5CYII=);margin-top:2px;width:21px}.gantt_cancel_btn{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MDkzMDA3MzlDMzA0MTFFMjg2QTVFMzFEQzgwRkJERDYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MDkzMDA3M0FDMzA0MTFFMjg2QTVFMzFEQzgwRkJERDYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDowOTMwMDczN0MzMDQxMUUyODZBNUUzMURDODBGQkRENiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDowOTMwMDczOEMzMDQxMUUyODZBNUUzMURDODBGQkRENiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PmYuYOUAAAEdSURBVHjaYvz//z8DJYAFXWDlypU8QKoIiD2A2AwqfAqIdwBxX3h4+Bdk9YzILgBqtgdS84FYEYeF94E4EWjIQZgAE5LmQCB1AKoZZKMPEAtAMYh9GSp3AKjWD8UFQAEhIPshEIOc3wHENUBb/qJ57SyQMoJyPwKxElDNO1gYFEE17wMKVmIJlzNQzeegrjaA6qmBecEbSvfh0GwMxGeBhoPoemQ9MAO0kEIbl2YTqPAFKK2IbMB3AjabYIkRZmQD7kNpMyI0G0PpO8gGbIUFJj7NQDk2INWIrIcJKfBAKcwJqvkcDs0TgFgXGo19KCkRmpDWQdWDEk0NUoCBoq0FqhkE/IEWbKJKUmZEz43QzFSKIzN1481M5ACAAAMAlfl/lCwRpagAAAAASUVORK5CYII=);margin-top:2px;width:20px}.gantt_delete_btn{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MjFENzI3NUNDMzA0MTFFMjhBNjJGQTc3MUIyQzYzNEYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MjFENzI3NURDMzA0MTFFMjhBNjJGQTc3MUIyQzYzNEYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoyMUQ3Mjc1QUMzMDQxMUUyOEE2MkZBNzcxQjJDNjM0RiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoyMUQ3Mjc1QkMzMDQxMUUyOEE2MkZBNzcxQjJDNjM0RiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PmUD0gAAAABvSURBVHjaYvz//z8DIyMjAxYQicReji4J0ofKQNP8HwmgGQbXB8IsWGwDSSwDuioKjY9uBthVjFAXYHUGAQA2kYmBUoAUBpGk0LAwgBvwH+YX4mkwptgLowYMRgOITUyYKRFIN/wnDjQgJySAAAMApryKzL8wjfUAAAAASUVORK5CYII=);margin-top:2px;width:20px}.gantt_cal_cover{background-color:#000;filter:progid:DXImageTransform.Microsoft.Alpha(opacity=10);height:100%;left:0;opacity:.1;position:fixed;top:0;width:100%;z-index:10000}.gantt_custom_button{border:1px solid #cecece;border-radius:4px;cursor:pointer;float:right;font-family:Arial;font-size:13px;font-weight:400;height:21px;margin-right:10px;margin-top:-5px;padding:0 3px;text-align:center;width:90px}.gantt_custom_button div{cursor:pointer;float:none;height:21px;line-height:21px;vertical-align:middle}.gantt_custom_button div:first-child{display:none}.gantt_cal_light_wide{padding:2px 4px;width:580px}.gantt_cal_light_wide .gantt_cal_larea{border:1px solid #cecece;box-sizing:border-box}.gantt_cal_light_wide .gantt_cal_lsection{border:0;float:left;height:20px;padding:5px 10px 0 0;text-align:right;width:80px}.gantt_cal_light_wide .gantt_wrap_section{border-bottom:1px solid #ebebeb;overflow:hidden;padding:10px 0;position:relative}.gantt_cal_light_wide .gantt_section_time{height:20px!important;overflow:hidden;padding-right:0;padding-top:2px!important}.gantt_cal_light_wide .gantt_cal_ltext{padding-right:0}.gantt_cal_light_wide .gantt_cal_larea{padding:0 10px;width:100%}.gantt_cal_light_wide .gantt_section_time{background:transparent}.gantt_cal_light_wide .gantt_cal_checkbox label{padding-left:0}.gantt_cal_light_wide .gantt_cal_lsection .gantt_fullday{cursor:pointer;float:none;font-weight:700;margin-right:0}.gantt_cal_light_wide .gantt_custom_button{margin-top:2px;position:absolute;right:0;top:0}.gantt_cal_light_wide .gantt_repeat_right{margin-right:55px}.gantt_cal_light_wide{width:738px}.gantt_cal_light_full{width:auto}.gantt_cal_wide_checkbox input{margin-left:14px;margin-top:8px}.gantt_cal_light input{font-size:13px}.gantt_section_time{background-color:#fff;padding:2px 10px 5px;padding-top:2px!important;white-space:nowrap}.gantt_section_time .gantt_time_selects{float:left;height:25px}.gantt_section_time .gantt_time_selects select{border:1px solid #cecece;height:23px;padding:2px}.gantt_duration{float:left;height:23px;line-height:23px;margin-left:20px;white-space:nowrap;width:100px}.gantt_duration .gantt_duration_dec,.gantt_duration .gantt_duration_inc,.gantt_duration .gantt_duration_value{border:1px solid #cecece;box-sizing:border-box;height:100%;text-align:center;vertical-align:top}.gantt_duration .gantt_duration_value{border-left-width:0;border-right-width:0;padding:3px 4px;width:40px}.gantt_duration .gantt_duration_value.gantt_duration_value_formatted{width:70px}.gantt_duration .gantt_duration_dec,.gantt_duration .gantt_duration_inc{background:#fff;padding:1px;width:20px}.gantt_duration .gantt_duration_dec{-moz-border-bottom-left-radius:4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-top-left-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px}.gantt_duration .gantt_duration_inc{-moz-border-bottom-right-radius:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-top-right-radius:4px;-webkit-border-top-right-radius:4px;border-top-right-radius:4px;margin-right:4px}.gantt_resources{height:auto;max-height:150px;overflow-y:auto}.gantt_resource_row{border-bottom:1px solid #ebebeb;cursor:pointer;display:block;padding:10px 0}.gantt_resource_row input[type=checkbox]:not(:checked),.gantt_resource_row input[type=checkbox]:not(:checked)~div{opacity:.5}.gantt_resource_toggle{vertical-align:middle}.gantt_resources_filter .gantt_resources_filter_input{box-sizing:border-box;padding:1px 2px}.gantt_resources_filter .switch_unsetted{vertical-align:middle}.gantt_resource_cell{display:inline-block}.gantt_resource_cell.gantt_resource_cell_checkbox{max-width:24px;min-width:24px;vertical-align:middle;width:24px}.gantt_resource_cell.gantt_resource_cell_label{max-width:40%;vertical-align:middle;width:40%}.gantt_resource_cell.gantt_resource_cell_value{max-width:30%;vertical-align:middle;width:30%}.gantt_resource_cell.gantt_resource_cell_value input,.gantt_resource_cell.gantt_resource_cell_value select{box-sizing:border-box;padding:1px 2px;vertical-align:middle;width:80%}.gantt_resource_cell.gantt_resource_cell_unit{max-width:10%;vertical-align:middle;width:10%}.gantt_resource_early_value{font-size:.9em;opacity:.8}.gantt_cal_quick_info{background-color:#fff;border:1px solid #cecece;border-radius:6px;box-shadow:3px 3px 3px rgba(0,0,0,.07);position:absolute;transition:left .5s ease,right .5s;-moz-transition:left .5s ease,right .5s;-webkit-transition:left .5s ease,right .5s;-o-transition:left .5s ease,right .5s;width:300px;z-index:300}.gantt_no_animate{transition:none;-moz-transition:none;-webkit-transition:none;-o-transition:none}.gantt_cal_quick_info.gantt_qi_left .gantt_qi_big_icon{float:right}.gantt_cal_qi_title{-moz-border-radius-topleft:6px;-moz-border-radius-bottomleft:0;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:0;background-color:#fff;border-bottom:1px solid #cecece;-webkit-border-bottom-left-radius:0;border-bottom-left-radius:0;-webkit-border-bottom-right-radius:0;border-bottom-right-radius:0;-webkit-border-top-left-radius:6px;border-top-left-radius:6px;-webkit-border-top-right-radius:6px;border-top-right-radius:6px;color:#454545;padding:5px 0 8px 12px}.gantt_cal_qi_tdate{font-size:14px;font-weight:700}.gantt_cal_qi_tcontent{font-size:13px}.gantt_cal_qi_content{color:#454545;font-size:13px;overflow:hidden;padding:16px 8px}.gantt_cal_qi_controls{-moz-border-radius-topleft:0;-moz-border-radius-bottomleft:6px;-moz-border-radius-topright:0;-moz-border-radius-bottomright:6px;-webkit-border-bottom-left-radius:6px;border-bottom-left-radius:6px;-webkit-border-bottom-right-radius:6px;border-bottom-right-radius:6px;-webkit-border-top-left-radius:0;border-top-left-radius:0;-webkit-border-top-right-radius:0;border-top-right-radius:0;padding-left:7px}.gantt_cal_qi_controls .gantt_menu_icon{background-repeat:no-repeat;margin-top:6px}.gantt_cal_qi_controls .gantt_menu_icon.icon_edit{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAB3RJTUUH3QYFCjI5ZQj5bAAAAFNJREFUOMvt0zEOACAIA0DkwTymH8bJTRTKZGJXyaWEKPKTCQAH4Ls37cItcDUzsxHNDLZNhCq7Gt1wh9ErV7EjyGAhyGLphlnsClWuS32rn0czAV+vNGrM/LBtAAAAAElFTkSuQmCC);width:20px}.gantt_cal_qi_controls .gantt_menu_icon.icon_delete{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MjFENzI3NUNDMzA0MTFFMjhBNjJGQTc3MUIyQzYzNEYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MjFENzI3NURDMzA0MTFFMjhBNjJGQTc3MUIyQzYzNEYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoyMUQ3Mjc1QUMzMDQxMUUyOEE2MkZBNzcxQjJDNjM0RiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoyMUQ3Mjc1QkMzMDQxMUUyOEE2MkZBNzcxQjJDNjM0RiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PmUD0gAAAABvSURBVHjaYvz//z8DIyMjAxYQicReji4J0ofKQNP8HwmgGQbXB8IsWGwDSSwDuioKjY9uBthVjFAXYHUGAQA2kYmBUoAUBpGk0LAwgBvwH+YX4mkwptgLowYMRgOITUyYKRFIN/wnDjQgJySAAAMApryKzL8wjfUAAAAASUVORK5CYII=);width:20px}.gantt_qi_big_icon{background:#fff;border:1px solid #cecece;border-radius:4px;cursor:pointer;font-size:13px;font-weight:700;line-height:32px;margin:5px 9px 8px 0;min-width:60px;padding:0 10px 0 5px;vertical-align:middle}.gantt_cal_qi_controls div{float:left;height:32px;line-height:32px;text-align:center}.gantt_cal_quick_info.gantt_qi_hidden{display:none}.gantt_tooltip{padding:10px;position:absolute;white-space:nowrap;z-index:50}.gantt_resource_marker{color:#fff;font-size:14px;position:absolute;text-align:center}.gantt_resource_marker_ok{background:rgba(78,208,134,.75)}.gantt_resource_marker_overtime{background:hsla(0,100%,76%,.69)}.gantt_histogram_label{font-size:13px;font-weight:700;height:100%;position:absolute;width:100%;z-index:1}.gantt_histogram_fill{background-color:rgba(41,157,180,.2);bottom:0;position:absolute;width:100%}.gantt_histogram_hor_bar{height:1px;margin-top:-1px}.gantt_histogram_hor_bar,.gantt_histogram_vert_bar{background:#299db4;margin-left:-1px;position:absolute}.gantt_histogram_vert_bar{width:1px}.gantt_histogram_cell{color:#000;font-size:13px;position:absolute;text-align:center}.gantt_marker{background-color:rgba(255,0,0,.4);box-sizing:border-box;height:100%;position:absolute;text-align:center;top:0;width:2px}.gantt_marker .gantt_marker_content{background:inherit;color:#fff;font-size:12px;line-height:12px;opacity:.8;padding:5px;position:absolute}.gantt_marker_area{left:0;position:absolute;top:0}.gantt_grid_editor_placeholder{position:absolute}.gantt_grid_editor_placeholder input,.gantt_grid_editor_placeholder select,.gantt_grid_editor_placeholder>div{box-sizing:border-box;height:100%;width:100%}.gantt_row_placeholder div{opacity:.5}.gantt_row_placeholder .gantt_add,.gantt_row_placeholder .gantt_file{display:none}.gantt_drag_marker.gantt_grid_dnd_marker{background-color:transparent;transition:all .1s ease}.gantt_grid_dnd_marker_line{background-color:#3498db;height:4px;width:100%}.gantt_grid_dnd_marker_line:before{background:#fff;border:3px solid #3498db;border-radius:6px;box-sizing:border-box;content:"";display:block;height:12px;line-height:1px;margin-left:-11px;margin-top:-4px;pointer-events:none;position:absolute;width:12px}.gantt_grid_dnd_marker_folder{background:transparent;box-shadow:inset 0 0 0 2px #3f98db;box-sizing:border-box;height:100%;pointer-events:none;position:absolute;width:100%}.gantt_overlay_area{display:none}.gantt_overlay,.gantt_overlay_area{height:inherit;left:0;position:absolute;top:0;width:inherit}.gantt_click_drag_rect{background-color:rgba(52,152,219,.3);left:0;outline:1px solid #3f98db;position:absolute;top:0}.gantt_timeline_move_available,.gantt_timeline_move_available *{cursor:move}.gantt_rtl .gantt_grid{text-align:right}.gantt_rtl .gantt_cell,.gantt_rtl .gantt_row{flex-direction:row-reverse}.gantt_layout_content{box-sizing:border-box;overflow:auto;width:100%}.gantt_layout_cell{box-sizing:border-box;position:relative}.gantt_layout_cell>.gantt_layout_header{background:#33aae8;box-sizing:border-box;color:#fff;font-size:17px;padding:5px 10px}.gantt_layout_header.collapsed_x{background:#a9a9a9}.gantt_layout_header.collapsed_x .gantt_header_arrow:before{content:"\21E7"}.gantt_layout_header.collapsed_y{background:#a9a9a9}.gantt_layout_header.collapsed_y .gantt_header_arrow:before{content:"\21E9"}.gantt_layout_header{cursor:pointer}.gantt_layout_header .gantt_header_arrow{float:right;text-align:right}.gantt_layout_header .gantt_header_arrow:before{content:"\21E6"}.gantt_layout_header.vertical .gantt_header_arrow:before{content:"\21E7"}.gantt_layout_outer_scroll_vertical .gantt_layout_content{overflow-y:hidden}.gantt_layout_outer_scroll_horizontal .gantt_layout_content{overflow-x:hidden}.gantt_layout_x>.gantt_layout_cell{display:inline-block;vertical-align:top}.gantt_layout_x{white-space:nowrap}.gantt_resizing{background:#f2f2f2;opacity:.7}.gantt_layout_cell_border_right.gantt_resizer{border-right:0;overflow:visible}.gantt_resizer{cursor:e-resize;position:relative}.gantt_resizer_y{cursor:n-resize}.gantt_resizer_stick{background:#33aae8;position:absolute;top:0;width:100%;z-index:9999}.gantt_resizer_x .gantt_resizer_x{height:100%;left:0;margin-left:-10px;position:absolute;top:0;width:20px;z-index:1}.gantt_resizer_y .gantt_resizer_y{height:20px;left:0;position:absolute;top:-10px;width:100%;z-index:1}.gantt_resizer_error{background:#cd5c5c!important}.gantt_layout_cell_border_left{border-left:1px solid #cecece}.gantt_layout_cell_border_right{border-right:1px solid #cecece}.gantt_layout_cell_border_top{border-top:1px solid #cecece}.gantt_layout_cell_border_bottom{border-bottom:1px solid #cecece}.gantt_layout_cell_border_transparent{border-color:transparent}.gantt_window{background:#fff;left:50%;position:absolute;top:50%;z-index:999999999}.gantt_window_content{position:relative}.gantt_window_content_header{background:#39c;border-bottom:2px solid #fff;color:#fff;height:33px;padding:10px 10px 0;position:relative}.gantt_window_content_header_text{padding-left:10%}.gantt_window_content_header_buttons{position:absolute;right:10px;top:10px}.gantt_window_content_header_buttons:hover{color:#000;cursor:pointer}.gantt_window_content_resizer{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAMAAAAMCGV4AAAABlBMVEUAAAAAAAClZ7nPAAAAAXRSTlMAQObYZgAAABZJREFUeAFjIAUwUshlpJDLSIhLGAAACQ4AFk79JaMAAAAASUVORK5CYII=);bottom:0;cursor:nw-resize;height:15px;line-height:15px;position:absolute;right:-1px;text-align:center;width:15px;z-index:999}.gantt_window_content_frame{background:rgba(0,0,0,.1);height:100%;left:0;position:absolute;top:0;width:100%;z-index:9999}.gantt_window_drag{cursor:pointer!important}.gantt_window_resizing{overflow:visible}.gantt_window_resizing_body{overflow:hidden!important}.gantt_window_modal{background:rgba(0,0,0,.1);height:100%;left:0;position:fixed;top:0;width:100%;z-index:9999}.gantt_cal_light,.gantt_cal_quick_info,.gantt_container,.gantt_message_area,.gantt_modal_box,.gantt_tooltip{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}.gantt_noselect{-moz-user-select:-moz-none;-webkit-user-select:none;user-select:none}.gantt_noselect .gantt_grid_data .gantt_row.odd:hover,.gantt_noselect .gantt_grid_data .gantt_row:hover{background-color:unset}.gantt_drag_marker{font-family:Arial;font-size:13px;left:-1000px;position:absolute;top:-1000px;white-space:nowrap;z-index:1}.gantt_drag_marker .gantt_tree_icon.gantt_blank,.gantt_drag_marker .gantt_tree_icon.gantt_close,.gantt_drag_marker .gantt_tree_icon.gantt_open,.gantt_drag_marker .gantt_tree_indent{display:none}.gantt_empty_state_wrapper{position:relative}.gantt_empty_state{box-sizing:border-box;display:flex;flex-direction:column;height:100%;justify-content:flex-start;margin:0 auto;max-width:500px;overflow-wrap:break-word;white-space:pre-line}.gantt_empty_state_image{background-image:url("data:image/png;base64,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");background-position-x:center;background-position-y:bottom;background-repeat:no-repeat;background-size:contain;display:block;height:200px;margin-left:auto;margin-right:auto;margin-top:40px;max-height:500px;max-width:500px;min-height:0;width:100%}.gantt_empty_state_text{text-align:center}.gantt_empty_state_text_link{background-position:100% 0;background:none;color:#03a9f4;cursor:pointer;height:unset;opacity:1}.gantt_drag_marker,.gantt_drag_marker .gantt_row.odd{background-color:#fff}.gantt_drag_marker .gantt_row{border-left:1px solid #d2d2d2;border-top:1px solid #d2d2d2}.gantt_drag_marker .gantt_cell{border-color:#d2d2d2}.gantt_row.gantt_over,.gantt_task_row.gantt_over{background-color:#0070fe}.gantt_row.gantt_transparent .gantt_cell{opacity:.7}.gantt_task_row.gantt_transparent{background-color:#f8fdfd}.gantt_popup_button.gantt_delete_button{background:#3db9d3;border-width:0;color:#fff;font-weight:700;text-shadow:0 -1px 0 #248a9f}.gantt_container_resize_watcher{background:transparent;border:0;box-sizing:border-box;height:100%;left:0;opacity:0;pointer-events:none;position:absolute;top:0;width:100%;z-index:-1}.dhtmlx-gantt-pro[data-v-0c7cf755]{height:100%;width:100%}.gantt-container[data-v-0c7cf755]{border:1px solid #ddd;border-radius:4px;overflow:hidden}[data-v-0c7cf755] .gantt_container{border-radius:4px;box-shadow:0 2px 8px rgba(0,0,0,.1)}[data-v-0c7cf755] .gantt_grid_scale,[data-v-0c7cf755] .gantt_task_scale{background:#f8f9fa;border-bottom:2px solid #e9ecef}[data-v-0c7cf755] .gantt_task_line,[data-v-0c7cf755] .gantt_task_progress{border-radius:3px}[data-v-0c7cf755] .gantt_readonly{opacity:.8}@media (max-width:768px){.gantt-container[data-v-0c7cf755]{font-size:12px}[data-v-0c7cf755] .gantt_grid_column{min-width:80px}}*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*
2
2
  ! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com
3
- */*,:after,:before{border:0 solid #e5e7eb;box-sizing:border-box}:after,:before{--tw-content:""}:host,html{-webkit-text-size-adjust:100%;font-feature-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-variation-settings:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-feature-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{font-feature-settings:inherit;color:inherit;font-family:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:#9ca3af;opacity:1}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]:where(:not([hidden=until-found])){display:none}.visible{visibility:visible}.mb-2{margin-bottom:.5rem}.mb-5{margin-bottom:1.25rem}.mr-2\.5{margin-right:.625rem}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.table{display:table}.h-\[100px\]{height:100px}.h-\[600px\]{height:600px}.w-\[500px\]{width:500px}.w-full{width:100%}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-pointer{cursor:pointer}.resize{resize:both}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.rounded{border-radius:.25rem}.border{border-width:1px}.border-blue-300{--tw-border-opacity:1;border-color:rgb(147 197 253/var(--tw-border-opacity,1))}.border-blue-400{--tw-border-opacity:1;border-color:rgb(96 165 250/var(--tw-border-opacity,1))}.border-blue-500{--tw-border-opacity:1;border-color:rgb(59 130 246/var(--tw-border-opacity,1))}.border-red-500{--tw-border-opacity:1;border-color:rgb(239 68 68/var(--tw-border-opacity,1))}.bg-blue-500{--tw-bg-opacity:1;background-color:rgb(59 130 246/var(--tw-bg-opacity,1))}.p-4{padding:1rem}.p-5{padding:1.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.py-1\.5{padding-bottom:.375rem;padding-top:.375rem}.text-left{text-align:left}.text-center{text-align:center}.text-lg{font-size:1.125rem}.text-lg,.text-xl{line-height:1.75rem}.text-xl{font-size:1.25rem}.font-bold{font-weight:700}.text-blue-500{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity,1))}.text-red-200{--tw-text-opacity:1;color:rgb(254 202 202/var(--tw-text-opacity,1))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.blur{--tw-blur:blur(8px)}.blur,.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.andyHuang{color:red}
3
+ */*,:after,:before{border:0 solid #e5e7eb;box-sizing:border-box}:after,:before{--tw-content:""}:host,html{-webkit-text-size-adjust:100%;font-feature-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-variation-settings:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-feature-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{font-feature-settings:inherit;color:inherit;font-family:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:#9ca3af;opacity:1}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]:where(:not([hidden=until-found])){display:none}.visible{visibility:visible}.mb-2{margin-bottom:.5rem}.mb-5{margin-bottom:1.25rem}.mr-2\.5{margin-right:.625rem}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.table{display:table}.hidden{display:none}.h-\[100px\]{height:100px}.h-\[600px\]{height:600px}.w-\[500px\]{width:500px}.w-full{width:100%}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-pointer{cursor:pointer}.resize{resize:both}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.rounded{border-radius:.25rem}.border{border-width:1px}.border-blue-300{--tw-border-opacity:1;border-color:rgb(147 197 253/var(--tw-border-opacity,1))}.border-blue-400{--tw-border-opacity:1;border-color:rgb(96 165 250/var(--tw-border-opacity,1))}.border-blue-500{--tw-border-opacity:1;border-color:rgb(59 130 246/var(--tw-border-opacity,1))}.border-red-500{--tw-border-opacity:1;border-color:rgb(239 68 68/var(--tw-border-opacity,1))}.bg-blue-500{--tw-bg-opacity:1;background-color:rgb(59 130 246/var(--tw-bg-opacity,1))}.p-4{padding:1rem}.p-5{padding:1.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.py-1\.5{padding-bottom:.375rem;padding-top:.375rem}.text-left{text-align:left}.text-center{text-align:center}.text-lg{font-size:1.125rem}.text-lg,.text-xl{line-height:1.75rem}.text-xl{font-size:1.25rem}.font-bold{font-weight:700}.text-blue-500{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity,1))}.text-red-200{--tw-text-opacity:1;color:rgb(254 202 202/var(--tw-text-opacity,1))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.blur{--tw-blur:blur(8px)}.blur,.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.andyHuang{color:red}
@@ -0,0 +1,360 @@
1
+ # DhtmlxGanttPro 插件
2
+
3
+ 基于 DHTMLX-Gantt 的 Vue3 封装组件,提供开箱即用的甘特图功能。
4
+
5
+ ## 功能特性
6
+
7
+ - ✅ **Vue3 Composition API** - 使用最新的 Vue3 语法
8
+ - ✅ **TypeScript 支持** - 完整的类型定义
9
+ - ✅ **响应式数据** - 支持数据动态更新
10
+ - ✅ **事件系统** - 完整的事件回调机制
11
+ - ✅ **配置灵活** - 支持自定义配置和主题
12
+ - ✅ **中文本地化** - 内置中文界面支持
13
+ - ✅ **只读模式** - 支持只读和编辑模式切换
14
+ - ✅ **生命周期管理** - 自动处理组件初始化和销毁
15
+ - ✅ **错误处理** - 完善的错误处理和恢复机制
16
+
17
+ ## 安装
18
+
19
+ ```bash
20
+ npm install @cimom/ci-web-plugins-commom dhtmlx-gantt
21
+ ```
22
+
23
+ ## 基础用法
24
+
25
+ ```vue
26
+ <template>
27
+ <div>
28
+ <DhtmlxGanttPro
29
+ :data="ganttData"
30
+ :links="ganttLinks"
31
+ :height="'500px'"
32
+ @task-click="onTaskClick"
33
+ @task-change="onTaskChange"
34
+ />
35
+ </div>
36
+ </template>
37
+
38
+ <script>
39
+ import { ref } from 'vue'
40
+ import { DhtmlxGanttPro } from '@cimom/ci-web-plugins-commom'
41
+
42
+ export default {
43
+ components: {
44
+ DhtmlxGanttPro
45
+ },
46
+ setup() {
47
+ const ganttData = ref([
48
+ { id: 1, text: '任务1', start_date: '2024-01-01', duration: 5, progress: 0.6 },
49
+ { id: 2, text: '任务2', start_date: '2024-01-08', duration: 3, progress: 0.3 }
50
+ ])
51
+
52
+ const ganttLinks = ref([
53
+ { id: 1, source: 1, target: 2, type: '0' }
54
+ ])
55
+
56
+ const onTaskClick = ({ task }) => {
57
+ console.log('点击任务:', task)
58
+ }
59
+
60
+ const onTaskChange = ({ id, task }) => {
61
+ console.log('任务变更:', id, task)
62
+ }
63
+
64
+ return {
65
+ ganttData,
66
+ ganttLinks,
67
+ onTaskClick,
68
+ onTaskChange
69
+ }
70
+ }
71
+ }
72
+ </script>
73
+ ```
74
+
75
+ ## 按需引入
76
+
77
+ ```javascript
78
+ import { DhtmlxGanttPro } from '@cimom/ci-web-plugins-commom/DhtmlxGanttPro'
79
+ ```
80
+
81
+ ## 全局注册
82
+
83
+ ```javascript
84
+ import { createApp } from 'vue'
85
+ import CIWebPlugins from '@cimom/ci-web-plugins-commom'
86
+ import 'dhtmlx-gantt/codebase/dhtmlxgantt.css'
87
+
88
+ const app = createApp(App)
89
+ app.use(CIWebPlugins)
90
+ ```
91
+
92
+ ## Props
93
+
94
+ | 参数 | 类型 | 默认值 | 说明 |
95
+ |------|------|--------|------|
96
+ | width | String/Number | '100%' | 甘特图宽度 |
97
+ | height | String/Number | '500px' | 甘特图高度 |
98
+ | data | Array | [] | 任务数据 |
99
+ | links | Array | [] | 任务依赖关系数据 |
100
+ | config | Object | {} | 甘特图配置 |
101
+ | readonly | Boolean | false | 是否只读模式 |
102
+ | locale | String | 'cn' | 本地化语言 |
103
+ | theme | String | 'default' | 主题样式 |
104
+
105
+ ## 数据格式
106
+
107
+ ### 任务数据 (data)
108
+
109
+ ```javascript
110
+ [
111
+ {
112
+ id: 1, // 任务ID (必需)
113
+ text: '任务名称', // 任务名称 (必需)
114
+ start_date: '2024-01-01', // 开始日期 (必需)
115
+ duration: 5, // 工期 (必需)
116
+ progress: 0.6, // 进度 0-1
117
+ parent: 0, // 父任务ID
118
+ type: 'task', // 任务类型
119
+ color: '#3498db', // 颜色
120
+ priority: 1, // 优先级
121
+ // ... 其他自定义字段
122
+ }
123
+ ]
124
+ ```
125
+
126
+ ### 依赖关系数据 (links)
127
+
128
+ ```javascript
129
+ [
130
+ {
131
+ id: 1, // 链接ID (必需)
132
+ source: 1, // 源任务ID (必需)
133
+ target: 2, // 目标任务ID (必需)
134
+ type: '0' // 链接类型: '0'-'结束到开始', '1'-'开始到开始', '2'-'结束到结束', '3'-'开始到结束'
135
+ }
136
+ ]
137
+ ```
138
+
139
+ ## 事件
140
+
141
+ | 事件名 | 参数 | 说明 |
142
+ |--------|------|------|
143
+ | task-click | { task, event } | 任务点击 |
144
+ | task-dblclick | { task, event } | 任务双击 |
145
+ | task-change | { id, task } | 任务变更 |
146
+ | task-add | { id, task } | 任务添加 |
147
+ | task-delete | { id } | 任务删除 |
148
+ | data-loaded | { data, links } | 数据加载完成 |
149
+ | data-error | error | 数据加载错误 |
150
+ | view-change | { mode } | 视图变更 |
151
+ | scale-change | - | 时间尺度变更 |
152
+
153
+ ## 配置选项
154
+
155
+ ```javascript
156
+ const config = {
157
+ // 日期格式
158
+ date_format: '%Y-%m-%d',
159
+
160
+ // 时间尺度
161
+ scale_unit: 'day', // 'minute', 'hour', 'day', 'week', 'month', 'year'
162
+ date_scale: '%m/%d',
163
+ step: 1,
164
+
165
+ // 子尺度
166
+ subscales: [
167
+ { unit: 'month', step: 1, date: '%Y年%m月' }
168
+ ],
169
+
170
+ // 列配置
171
+ columns: [
172
+ { name: 'text', label: '任务名称', width: 150, tree: true },
173
+ { name: 'start_date', label: '开始时间', width: 80 },
174
+ { name: 'duration', label: '工期', width: 60 },
175
+ { name: 'progress', label: '进度', width: 60 }
176
+ ],
177
+
178
+ // 其他配置...
179
+ }
180
+ ```
181
+
182
+ ## 方法
183
+
184
+ 通过 ref 可以调用以下方法:
185
+
186
+ ```javascript
187
+ const ganttRef = ref(null)
188
+
189
+ // 获取甘特图实例
190
+ const ganttInstance = ganttRef.value.getGanttInstance()
191
+
192
+ // 刷新甘特图 - 重新应用配置
193
+ ganttRef.value.refresh()
194
+
195
+ // 获取选中的任务
196
+ const selectedTask = ganttRef.value.getSelectedTask()
197
+
198
+ // 添加任务
199
+ ganttRef.value.addTask({
200
+ text: '新任务',
201
+ start_date: '2024-01-01',
202
+ duration: 3
203
+ })
204
+
205
+ // 更新任务
206
+ ganttRef.value.updateTask(1, {
207
+ text: '更新的任务',
208
+ progress: 0.8
209
+ })
210
+
211
+ // 删除任务
212
+ ganttRef.value.deleteTask(1)
213
+
214
+ // 缩放到适应所有任务
215
+ ganttRef.value.fitToTask()
216
+ ```
217
+
218
+ ### 配置更新
219
+
220
+ 为了避免递归更新问题,配置变更不会自动应用到甘特图。如需更新配置,请调用 `refresh()` 方法:
221
+
222
+ ```javascript
223
+ const ganttRef = ref(null)
224
+ const ganttConfig = ref({
225
+ scale_unit: 'day',
226
+ date_scale: '%m/%d'
227
+ })
228
+
229
+ // 更新配置后刷新
230
+ const updateConfig = () => {
231
+ ganttConfig.value.scale_unit = 'week'
232
+ ganttConfig.value.date_scale = '%W周'
233
+
234
+ // 手动刷新以应用新配置
235
+ nextTick(() => {
236
+ ganttRef.value?.refresh()
237
+ })
238
+ }
239
+ ```
240
+
241
+ ## 高级用法
242
+
243
+ ### 自定义主题
244
+
245
+ ```vue
246
+ <template>
247
+ <DhtmlxGanttPro
248
+ :data="ganttData"
249
+ :theme="'dark'"
250
+ :config="customConfig"
251
+ />
252
+ </template>
253
+
254
+ <script>
255
+ const customConfig = {
256
+ // 自定义样式配置
257
+ grid_width: 350,
258
+ add_column: false,
259
+ autosize: 'y',
260
+ details_on_create: true,
261
+ // 更多配置...
262
+ }
263
+ </script>
264
+ ```
265
+
266
+ ### 动态数据加载
267
+
268
+ ```javascript
269
+ const loadProjectData = async (projectId) => {
270
+ try {
271
+ const response = await fetch(`/api/projects/${projectId}`)
272
+ const { data, links } = await response.json()
273
+
274
+ ganttData.value = data
275
+ ganttLinks.value = links
276
+ } catch (error) {
277
+ console.error('数据加载失败:', error)
278
+ }
279
+ }
280
+ ```
281
+
282
+ ### 只读模式
283
+
284
+ ```vue
285
+ <template>
286
+ <div>
287
+ <button @click="toggleReadonly">
288
+ {{ readonly ? '编辑模式' : '只读模式' }}
289
+ </button>
290
+
291
+ <DhtmlxGanttPro
292
+ :data="ganttData"
293
+ :readonly="readonly"
294
+ />
295
+ </div>
296
+ </template>
297
+ ```
298
+
299
+ ## 样式定制
300
+
301
+ ```css
302
+ /* 容器样式 */
303
+ .dhtmlx-gantt-pro {
304
+ border-radius: 8px;
305
+ overflow: hidden;
306
+ }
307
+
308
+ /* 任务条样式 */
309
+ :deep(.gantt_task_line) {
310
+ border-radius: 4px;
311
+ }
312
+
313
+ /* 进度条样式 */
314
+ :deep(.gantt_task_progress) {
315
+ border-radius: 4px;
316
+ background: linear-gradient(90deg, #4CAF50, #45a049);
317
+ }
318
+
319
+ /* 网格头部样式 */
320
+ :deep(.gantt_grid_scale) {
321
+ background: #f8f9fa;
322
+ border-bottom: 2px solid #e9ecef;
323
+ }
324
+ ```
325
+
326
+ ## 注意事项
327
+
328
+ 1. **依赖版本**: 确保安装了正确版本的 `dhtmlx-gantt`
329
+ 2. **CSS 样式**: 需要导入 `dhtmlx-gantt/codebase/dhtmlxgantt.css`
330
+ 3. **数据格式**: 严格按照文档格式提供数据
331
+ 4. **性能优化**: 大量数据时建议使用分页或虚拟滚动
332
+ 5. **浏览器兼容**: 支持现代浏览器,IE 需要额外 polyfill
333
+
334
+ ## 常见问题
335
+
336
+ ### Q: 甘特图不显示?
337
+ A: 检查是否正确导入了 CSS 文件,确保容器有正确的宽高。
338
+
339
+ ### Q: 数据更新后视图不刷新?
340
+ A: 确保使用响应式数据,或者调用 `refresh()` 方法。
341
+
342
+ ### Q: 如何自定义列?
343
+ A: 在 `config.columns` 中配置列定义。
344
+
345
+ ### Q: 如何处理大量数据?
346
+ A: 建议使用分页加载,或者启用虚拟滚动。
347
+
348
+ ## 更新日志
349
+
350
+ ### v1.0.0
351
+ - 🎉 初始版本发布
352
+ - ✨ 支持 Vue3 Composition API
353
+ - ✨ 完整的事件系统
354
+ - ✨ 中文本地化支持
355
+ - ✨ 只读模式
356
+ - ✨ TypeScript 类型定义
357
+
358
+ ## 许可证
359
+
360
+ MIT License
@@ -0,0 +1 @@
1
+ import"../components/DhtmlxGanttPro/index.vue/index.js";export{default}from"../components/DhtmlxGanttPro/index.vue/index2.js";
@@ -1,3 +1,3 @@
1
- import{getCurrentInstance as e,ref as l,computed as a,onMounted as t,resolveComponent as o,createElementBlock as n,openBlock as u,Fragment as r,createCommentVNode as d,createVNode as i,withCtx as s,renderList as c,createBlock as m,withDirectives as v,vShow as p,watch as f,nextTick as h,createTextVNode as g,toDisplayString as y,withKeys as b,normalizeStyle as C,defineComponent as w,createElementVNode as S,reactive as _,onUnmounted as x,unref as D,normalizeClass as V}from"vue";import T from"vxe-table";import k from"axios";import E from"dayjs";function I(e){let l=window.localStorage.getItem(e);return JSON.parse(l)}function A(e){var l=document.cookie,a=l.indexOf(e+"=");if(-1!=a){var t=l.indexOf("=",a)+1,o=l.indexOf(";",a);return-1==o&&(o=l.length),unescape(l.substring(t,o))}}I("mian_code"),I("multiOrganization");var N=I("userInfo")||A("userInfo");var M={dev:"http://61.144.186.197:19719/",pro:"/"};const O="development"===process.env.NODE_ENV?M.dev:M.pro,U=new class{constructor(e=baseURL){this.baseUrl=e,this.queue={},this.timer=null}getInsideConfig(){return{baseURL:this.baseUrl,headers:{Accept:"currentusername$$"+N?.CUSER_NAME+"_-enterprisecode$$"+N?.CENTERPRISE_CODE}}}destroy(e){delete this.queue[e],Object.keys(this.queue).length}interceptors(e,l){e.interceptors.request.use((e=>{let a=I("token")||A("token");a&&(e.headers.Authorization="Bearer "+a);var t=I("language");t&&(e.headers.language=t);let o=I("multiOrganization");return o?.CORG_CODE&&(e.headers.Accept="currentusername$$"+N?.CUSER_NAME+"_-enterprisecode$$"+N?.CENTERPRISE_CODE+"_-OrgCode$$"+o?.CORG_CODE),Object.keys(this.queue).length,this.queue[l]=!0,e}),(e=>Promise.reject(e))),e.interceptors.response.use((e=>{this.destroy(l);const{data:a,status:t}=e;if(400!=e.data.code)return{data:a,status:t}}),(e=>{if(this.destroy(l),e&&e.statusCode)switch(e.statusCode){case 400:e.errMsg="错误请求";break;case 401:e.errMsg="未授权,请重新登录";break;case 403:e.errMsg="拒绝访问";break;case 404:e.errMsg="请求错误,未找到该资源";break;case 405:e.errMsg="请求方法未允许";break;case 408:e.errMsg="请求超时";break;case 500:e.errMsg="服务器端出错";break;case 501:e.errMsg="网络未实现";break;case 502:e.errMsg="网络错误";break;case 503:e.errMsg="服务不可用";break;case 504:e.errMsg="网络超时";break;case 505:e.errMsg="http版本不支持该请求";break;default:e.errMsg=`连接错误${e.response.status}`}else e.errMsg="连接到服务器失败",e.statusCode="";let a=e.errMsg+" "+e.statusCode+" 请稍后重试!";return Promise.reject(a)}))}request(e){const l=k.create();return e=Object.assign(this.getInsideConfig(),e),this.interceptors(l,e.url),l(e)}}(O);var P={request:function(e){try{if(this[e.method]&&"function"==typeof this[e.method])return this[e.method](e.url,e.data,e.params);throw new Error(`Method ${e.method} not found`)}catch(e){return T.modal.message({message:"请求方式不存在",status:"error"}),Promise.reject(e)}},get:function(e,l,a){let t=this;return new Promise(((o,n)=>{U.request({url:e,method:"get",params:a||{},data:l||{}}).then((e=>{t.requestSuccessHandler(e,o,n)})).catch((e=>{t.requestErrorHandler(e,o,n)}))}))},post:function(e,l,a){let t=this;return new Promise(((o,n)=>{U.request({url:e,method:"post",params:a||{},data:l||{}}).then((e=>{t.requestSuccessHandler(e,o,n)})).catch((e=>{t.requestErrorHandler(e,o,n)}))}))},download_post:function(e,l,a){return new Promise(((t,o)=>{U.request({url:e,method:"POST",responseType:"blob",params:a||{},data:l||{}}).then((e=>{t(e)})).catch((e=>{o(e)}))}))},download_get:function(e,l,a){return new Promise(((t,o)=>{U.request({url:e,method:"get",responseType:"blob",params:a||{},data:l||{}}).then((e=>{t(e)})).catch((e=>{o(e)}))}))},formPost:function(e,l,a){let t=this;return new Promise(((o,n)=>{U.request({url:e,method:"post",headers:{Accept:"*/*","Content-Type":"multipart/form-data",withCredentials:!0},params:a||{},data:l||{}}).then((e=>{t.requestSuccessHandler(e,o,n)})).catch((e=>{t.requestErrorHandler(e,o,n)}))}))},update:function(e,l,a){let t=this;return this.openFullScreen(!0),new Promise(((o,n)=>{U.request({url:e,method:"post",params:a||{},data:l||{}}).then((e=>{t.openFullScreen(!1),t.requestSuccessHandlerByUpdate(e,o,n)})).catch((e=>{t.openFullScreen(!1),t.requestErrorHandler(e,o,n)}))}))},requestSuccessHandlerByUpdate(e,l,a){if(e)if(e.data.success){l(e.data.data);let a="操作成功";T.modal.message({message:a,status:"success"})}else{let l="请求业务异常,请联系系统管理员-001",t=null==e.data.message.content||""==e.data.message.content?l:e.data.message.content;this.showErrMessage(t),a(t)}else a(!1)},requestSuccessHandler(e,l,a){if(e)if(e.data.success)e.data.data.Success?l(e.data.data):(l(e.data.data),this.showErrMessage(e.data.data.Content?e.data.data.Content:"返回结果失败,请检查!!"));else{let l="请求业务异常,请联系系统管理员",t=null==e.data.message.content||""==e.data.message.content?l:e.data.message.content;this.showErrMessage(t),a(t)}else a(!1)},showErrMessage(e){clearTimeout(this.showMessageTimer),this.showMessageTimer=setTimeout((()=>{T.modal.message({message:e,status:"error"})}),300)},requestErrorHandler(e,l,a){e&&(this.showErrMessage(e),a(e))},openFullScreen(e=!1){}};function L(){const a=e(),t=l(""),o=(e,l)=>{let a=null,t="";switch(e){case"date":t="YYYY-MM-DD";break;case"dateTime":t="YYYY-MM-DD HH:mm:ss";break;default:t=""}if(l)if("curdate"==l)a=E().format(t);else if(l.includes("-")){let e=l.split("-");a=E()[e[0]](Number(e[1]),e[2]).format(t)}else a=null;return a};return{value:t,init:()=>{},changeEvent:e=>{t.value=e;let l={value:e,type:"change"};a?.emit("changeEvent",l)},clear:(e,l,a,n)=>{if(e&&l&&a&&t.value&&a[e]){let u=n.defaultValue;switch(l){case"date":case"dateTime":case"month":let t=o(l,u);a[e]=t;break;case"number":let n=Number(u);a[e]=n;break;default:a[e]=u}t.value=""}},setDateTimeDefaultVal:o,setDateTimeRangeDefaultVal:(e,l)=>{const a=new Date,t=new Date;try{let o=[t,a],n="",u=l.split("#");switch(e){case"daterange":n="YYYY-MM-DD";break;case"datetimerange":n="YYYY-MM-DD HH:mm:ss";break;default:n=""}if(u[0])if("curdate"==u[0])o[0]=E().format(n);else if(u[0].includes("-")){let e=u[0].split("-");o[0]=E()[e[0]](Number(e[1]),e[2]).format(n)}else o[0]=t;if(u[1])if("curdate"==u[1])o[1]=E().format(n);else if(u[1].includes("-")){let e=u[1].split("-");o[1]=E()[e[0]](Number(e[1]),e[2]).format(n)}else o[1]=a;return o}catch(e){return[t,a]}},getDBDataByActionName:async e=>{let l={Id:e?.CDATASET_ID,Parameter:{}};if(!l.hasOwnProperty("Id")||!l.Id)return void console.error("====DataSetId 为空,跳过查询====");let a=[];return await P.request({url:"/api/MD/DataSet/GetListByDataSetId",method:"post",data:l}).then((e=>{e.Success&&([4,5,6].includes(e.Data)&&(e.Datas=JSON.parse(e.Datas)),e&&e.Datas&&(a=e.Datas))})),a},formatQuery:e=>{let l={};if(e&&Object.keys(e).length>0)for(const[a,t]of Object.entries(e))l[a]=t.value;return l}}}var F={__name:"reportSelect",props:{modelValue:{type:[String,Number],default:""},row:{type:Object,default:()=>({})},field:{type:String,default:""}},emits:["update:modelValue","changeEvent"],setup(e,{emit:v}){const p={},f=e,h=v;let g=window.location.href;const{init:y,changeEvent:b,getDBDataByActionName:C}=L(),w=l(!1),S=l(null),_=l([]),x=l({key:"",text:""}),D=a((()=>{let e={};try{e=f.row.controlOptions}catch(l){e={}}return e}));t((()=>{y(),V()}));const V=e=>{0==_.value.length&&(D.value&&(S.value=D.value,S.value.hasOwnProperty("CDATAS")&&S.value.CDATAS&&T(S.value.CDATAS)),k())},T=e=>{e&&e.length>0?e.forEach((e=>{e.isSelectTextField&&(x.value.text=e.field),e.isSelectKeyField&&(x.value.key=e.field)})):x.value={key:"",text:""}},k=async()=>{let e=(()=>{let e=[];try{e=p[g+f.field]}catch(l){e=[]}return e})();if(e&&e.length>0)return void(_.value=e);w.value=!0;let l=await C(S.value);var a;l&&l.length>0?(_.value=E(l),a=_.value,p[g+f.field]=a):_.value=[{value:"",label:"请选择"}],w.value=!1,setTimeout((()=>{w.value=!1}),1e4)},E=e=>{let l=[{value:"",label:"请选择"}];return e&&e.length>0&&e.forEach((e=>{if(e[x.value.text]){let a={value:e[x.value.key],label:e[x.value.text]};l.push(a)}})),l},I=e=>{h("update:modelValue",e),b(e),h("changeEvent",{value:e,type:"change"})};return(l,a)=>{const t=o("el-option"),v=o("el-select");return u(),n(r,null,[d(' @focus="focusEvent" '),i(v,{onChange:I,loading:w.value,filterable:"",clearable:"","model-value":e.modelValue,"onUpdate:modelValue":a[0]||(a[0]=e=>l.$emit("update:modelValue",e)),placeholder:"请选择"},{default:s((()=>[(u(!0),n(r,null,c(_.value,((e,l)=>(u(),m(t,{key:e.value+l,label:e.label,value:e.value},null,8,["label","value"])))),128))])),_:1},8,["loading","model-value"])],2112)}},__file:"src/components/SearchPro/innerComponents/reportSelect.vue"},R={__name:"reportCustomSelect",props:{modelValue:{type:[String,Number],default:""},row:{type:Object,default:()=>({})},field:{type:String,default:""}},emits:["update:modelValue","changeEvent"],setup(e,{emit:v}){const p=e,f=v,{init:h,changeEvent:g}=L();l(!1);const y=l(null),b=l([]),C=l({key:"",text:""}),w=a((()=>{let e={};try{e=p.row.controlOptions}catch(l){e={}}return e}));t((()=>{h(),S()}));const S=e=>{0==b.value.length&&(w.value&&(y.value=w.value,y.value.hasOwnProperty("CDATAS")&&y.value.CDATAS&&_(y.value.CDATAS)),x())},_=e=>{e&&e.length>0?e.forEach((e=>{e.isSelectTextField&&(C.value.text=e.field),e.isSelectKeyField&&(C.value.key=e.field)})):C.value={key:"",text:""}},x=()=>{let e=[{value:"",label:"请选择"}];y.value.CDATAS&&y.value.CDATAS.length>0&&y.value.CDATAS.forEach((l=>{let a={value:l.field,label:l.title?l.title:l.field};e.push(a)})),b.value=e},D=e=>{f("update:modelValue",e),g(e),f("changeEvent",{value:e,type:"change"})};return(l,a)=>{const t=o("el-option"),v=o("el-select");return u(),n(r,null,[d(' @focus="focusEvent" '),i(v,{onChange:D,filterable:"",clearable:"","model-value":e.modelValue,"onUpdate:modelValue":a[0]||(a[0]=e=>l.$emit("update:modelValue",e)),placeholder:"请选择"},{default:s((()=>[(u(!0),n(r,null,c(b.value,(e=>(u(),m(t,{key:e.value,label:e.label,value:e.value},null,8,["label","value"])))),128))])),_:1},8,["model-value"])],2112)}},__file:"src/components/SearchPro/innerComponents/reportCustomSelect.vue"},q={__name:"reportCustomMulSelect",props:{modelValue:{type:Array,default:()=>[]},row:{type:Object,default:()=>({})},field:{type:String,default:""}},emits:["update:modelValue","changeEvent"],setup(e,{emit:v}){const p=e,f=v,{init:h,changeEvent:g}=L();l(!1);const y=l(null),b=l([]),C=l({key:"",text:""}),w=a((()=>{let e={};try{e=p.row.controlOptions}catch(l){e={}}return e}));t((()=>{h(),S()}));const S=e=>{0==b.value.length&&(w.value&&(y.value=w.value,y.value.hasOwnProperty("CDATAS")&&y.value.CDATAS&&_(y.value.CDATAS)),x())},_=e=>{e&&e.length>0?e.forEach((e=>{e.isSelectTextField&&(C.value.text=e.field),e.isSelectKeyField&&(C.value.key=e.field)})):C.value={key:"",text:""}},x=()=>{let e=[{value:"",label:"请选择"}];y.value.CDATAS&&y.value.CDATAS.length>0&&y.value.CDATAS.forEach((l=>{let a={value:l.field,label:l.title?l.title:l.field};e.push(a)})),b.value=e},D=e=>{f("update:modelValue",e),g(e),f("changeEvent",{value:e,type:"change"})};return(l,a)=>{const t=o("el-option"),v=o("el-select");return u(),n(r,null,[d(' @focus="focusEvent" '),i(v,{"collapse-tags":"","collapse-tags-tooltip":"",onChange:D,multiple:!0,filterable:"",clearable:"","model-value":e.modelValue,"onUpdate:modelValue":a[0]||(a[0]=e=>l.$emit("update:modelValue",e)),placeholder:"请选择"},{default:s((()=>[(u(!0),n(r,null,c(b.value,(e=>(u(),m(t,{key:e.value,label:e.label,value:e.value},null,8,["label","value"])))),128))])),_:1},8,["model-value"])],2112)}},__file:"src/components/SearchPro/innerComponents/reportCustomMulSelect.vue"},H={__name:"reportSelectTable",props:{modelValue:{type:[String,Number],default:""},fieldName:{type:String,default:""},field:{type:String,default:""},row:{type:Object,default:()=>({})}},emits:["update:modelValue","changeEvent"],setup(f,{emit:h}){const g={},y=f,b=h;let C=window.location.href;e();const{init:w,changeEvent:S,getDBDataByActionName:_}=L(),x=l(null),D=l(null),V=l(!1),T=l(!1),k=l([]);l("");const E=l({total:0,currentPage:1,pageSize:10}),I=l([]),A=l({key:"",text:""}),N=l({columns:[],data:[]}),M=l(null),O=a((()=>{let e={};try{e=y.row.controlOptions}catch(l){e={}}return e}));t((()=>{w(),F(),setTimeout((()=>{y.modelValue&&(x.value=y.modelValue)}),300)}));const U=e=>{x.value=e.row[A.value.key],y.row[y.fieldName]=x.value,M.value?.blur()},P=e=>{13===e.keyCode&&q()},F=e=>{0==I.value.length&&(O.value&&(D.value=O.value,D.value.hasOwnProperty("CDATAS")&&D.value.CDATAS&&(R(D.value.CDATAS),E.value.pageSize=Number(D.value.CPAGE_SIZE),V.value="Y"==D.value.CIS_PAGE)),q())},R=e=>{k.value=[],N.value.columns=[],e&&e.length>0?e.forEach((e=>{if(e.isSelectTextField&&(A.value.text=e.field),e.isSelectKeyField&&(A.value.key=e.field),e.iisShowList){let l={field:e.field,headerAlign:"center",minWidth:Number(e.width),title:e.title?e.title:e.field};k.value.push(l),N.value.columns.push(l)}})):A.value={key:"",text:""}},q=async()=>{T.value=!0;let e=[],l=(()=>{let e=[];try{e=g[C+y.field]}catch(l){e=[]}return e})();var a;l&&l.length>0?e=l:(e=await _(D.value),a=e,g[C+y.field]=a),e&&e.length>0?(I.value=H(e),N.value.data=e):I.value=[{value:"",label:"请选择"}],T.value=!1,setTimeout((()=>{T.value=!1}),1e4)},H=e=>{let l=[{value:"",label:"请选择"}];return e&&e.length>0&&e.forEach((e=>{if(e[A.value.text]){let a={value:e[A.value.key],label:e[A.value.text]};l.push(a)}})),l},B=e=>{E.value.currentPage=e,q()},j=e=>{b("update:modelValue",e),S(e),b("changeEvent",{value:e,type:"change"})};return(e,l)=>{const a=o("el-option"),t=o("vxe-column"),h=o("vxe-table"),g=o("el-pagination"),y=o("el-select");return u(),n(r,null,[d(' @focus="focusEvent()" '),i(y,{clearable:"",onChange:j,ref_key:"elSelectRef",ref:M,modelValue:x.value,"onUpdate:modelValue":[l[0]||(l[0]=e=>x.value=e),l[1]||(l[1]=l=>e.$emit("update:modelValue",l))],"model-value":f.modelValue,loading:T.value,placeholder:"请选择"},{default:s((()=>[(u(!0),n(r,null,c(I.value,((e,l)=>(u(),m(a,{key:e.value+l,label:e.label,value:e.value,style:{display:"none"}},null,8,["label","value"])))),128)),d(' <div> <el-input style="padding:2px 5px;" @keyup="keyupEvent" size="mini" v-model="searchkey"\n placeholder="请输入关键字 回车 ENTER"></el-input></div> '),i(h,{size:"mini",border:"",onKeyup:P,height:"180px",onCellClick:U,data:N.value.data},{default:s((()=>[(u(!0),n(r,null,c(N.value.columns,((e,l)=>(u(),m(t,{"header-align":"center","min-width":e.minWidth,key:l+e.field,field:e.field,title:e.title},null,8,["min-width","field","title"])))),128))])),_:1},8,["data"]),v(i(g,{background:"",size:"small","current-page":E.value.currentPage,"page-size":E.value.pageSize,onCurrentChange:B,layout:"prev, pager, next",total:E.value.total},null,8,["current-page","page-size","total"]),[[p,V.value]])])),_:1},8,["modelValue","model-value","loading"])],2112)}},__file:"src/components/SearchPro/innerComponents/reportSelectTable.vue"},B={__name:"reportMulSelect",props:{modelValue:{type:Array,default:()=>[]},row:{type:Object,default:()=>({})},field:{type:String,default:""}},emits:["update:modelValue","changeEvent"],setup(e,{emit:v}){const p={},f=e,h=v;let g=window.location.href;const{changeEvent:y,getDBDataByActionName:b}=L(),C=l(!1),w=l(null),S=l([]),_=l({key:"",text:""}),x=a((()=>{let e={};try{e=f.row.controlOptions}catch(l){e={}}return e}));t((()=>{D()}));const D=e=>{0==S.value.length&&(x.value&&(w.value=x.value,w.value.hasOwnProperty("CDATAS")&&w.value.CDATAS&&V(w.value.CDATAS)),T())},V=e=>{e&&e.length>0?e.forEach((e=>{e.isSelectTextField&&(_.value.text=e.field),e.isSelectKeyField&&(_.value.key=e.field)})):_.value={key:"",text:""}},T=async()=>{let e=(()=>{let e=[];try{e=p[g+f.field]}catch(l){e=[]}return e})();if(e&&e.length>0)return void(S.value=e);C.value=!0;let l=await b(w.value);var a;l&&l.length>0?(S.value=k(l),a=S.value,p[g+f.field]=a):S.value=[{value:"",label:"请选择"}],C.value=!1,setTimeout((()=>{C.value=!1}),1e4)},k=e=>{let l=[{value:"",label:"请选择"}];return e&&e.length>0&&e.forEach((e=>{if(e[_.value.text]){let a={value:e[_.value.key],label:e[_.value.text]};l.push(a)}})),l},E=e=>{h("update:modelValue",e),y(e),h("changeEvent",{value:e,type:"change"})};return(l,a)=>{const t=o("el-option"),v=o("el-select");return u(),n(r,null,[d(' @focus="focusEvent" '),i(v,{"collapse-tags":"","collapse-tags-tooltip":"",onChange:E,multiple:!0,loading:C.value,filterable:"",clearable:"","model-value":e.modelValue,"onUpdate:modelValue":a[0]||(a[0]=e=>l.$emit("update:modelValue",e)),placeholder:"请选择"},{default:s((()=>[(u(!0),n(r,null,c(S.value,((e,l)=>(u(),m(t,{key:e.value+l,label:e.label,value:e.value},null,8,["label","value"])))),128))])),_:1},8,["loading","model-value"])],2112)}},__file:"src/components/SearchPro/innerComponents/reportMulSelect.vue"};const j={class:"tableTemplateClass"},Y={key:1};var z={__name:"index",props:{activeName:{type:String,default:"first"},tableDataLoading:{type:Boolean,default:!1},tableOptions:{type:Array,default:()=>[]},conditionConfig:{type:Object,default:()=>({hash:698,flag:""})},isClearTreeData:{type:[Number,String],default:0},isAdd:{type:Boolean,default:!1}},emits:["handleEnterEvent"],setup(e,{emit:a}){const t=e,v=a,p=l(!1),C=l([{value:0,label:"等于",text:"Equal"},{value:1,label:"模糊查询",text:"Like"},{value:2,label:"大于",text:"GreaterThan"},{value:3,label:"大于等于",text:"GreaterThanOrEqual"},{value:4,label:"小于",text:"LessThan"},{value:5,label:"小于等于",text:"LessThanOrEqual"},{value:6,label:"In操作",text:"In"},{value:7,label:"NotIn操作",text:"NotIn"},{value:8,label:"左模糊",text:"LikeLeft"},{value:9,label:"右模糊",text:"LikeRight"},{value:10,label:"不等于",text:"NoEqual"},{value:11,label:"IsNullOrEmpty",text:"IsNullOrEmpty"},{value:12,label:"IsNot",text:"IsNot"},{value:13,label:"模糊查询取反",text:"NoLike"},{value:14,label:"EqualNull ",text:"EqualNull"},{value:15,label:"InLike",text:"InLike"},{value:16,label:"区间范围 ",text:"BetweenAnd"}]),w=l([]),S=l(null);f((()=>t.isAdd),(e=>{e&&(w.value=[])})),f((()=>t.conditionConfig),((e,l)=>{h((()=>{}))}),{deep:!0,immediate:!0}),f((()=>t.tableOptions),((e,l)=>{w.value=e,e&&h((()=>{x()}))}),{deep:!0});const _=e=>{v("handleEnterEvent",e)},x=()=>{p.value||(p.value=!0,setTimeout((()=>{const e=S.value;e&&e.setAllTreeExpand(!0)}),300))};return(l,a)=>{const t=o("vxe-column"),v=o("el-option"),p=o("el-select"),f=o("el-date-picker"),h=o("el-input-number"),x=o("el-input"),D=o("vxe-table");return u(),n("div",j,[i(D,{ref_key:"vxeTableRef",ref:S,"checkbox-config":{checkField:"isCheck"},loading:e.tableDataLoading,"show-overflow":"",border:"",size:"mini","column-config":{resizable:!0},"row-config":{useKey:!0,keyField:"id",isCurrent:!0,isHover:!0},"edit-config":{trigger:"click",mode:"cell"},"tree-config":{transform:!0,rowField:"id",parentField:"parentId",expandAll:!0},data:w.value,"scroll-y":{enabled:!1}},{default:s((()=>[i(t,{type:"checkbox",width:"40","header-align":"center",align:"center"}),i(t,{field:"field",title:"参数名称",width:"160","tree-node":"","header-align":"center"},{default:s((({row:e})=>[0!=e.parentId?(u(),n(r,{key:0},[g(y(e.title?e.title:e.field),1)],64)):(u(),n("span",Y,"条件组"))])),_:1}),i(t,{field:"comparator",title:"比较符",width:"150","header-align":"center"},{default:s((({row:e})=>[0!=e.parentId?(u(),m(p,{key:0,modelValue:e.comparator,"onUpdate:modelValue":l=>e.comparator=l,placeholder:"请选择"},{default:s((()=>[(u(!0),n(r,null,c(C.value,((e,l)=>(u(),m(v,{key:l,label:e.label,value:e.value},null,8,["label","value"])))),128))])),_:2},1032,["modelValue","onUpdate:modelValue"])):d("v-if",!0)])),_:1}),i(t,{field:"value",title:"比较值","header-align":"center"},{default:s((({row:e})=>[0!=e.parentId?(u(),n(r,{key:0},["select"==e.controlType?(u(),n(r,{key:0},[d(' <el-select style="width: 100%;" v-model="row.value" placeholder="请选择">\n\t\t\t\t\t\t\t\t<el-option label="比较值1" value="&&" />\n\t\t\t\t\t\t\t\t<el-option label="比较值2" value="||" />\n\t\t\t\t\t\t\t</el-select> ')],64)):"date"==e.controlType?(u(),m(f,{key:1,field:e.field,type:"date",style:{width:"100%"},modelValue:e.value,"onUpdate:modelValue":l=>e.value=l,placeholder:"请选择","value-format":"yyyy-MM-dd"},null,8,["field","modelValue","onUpdate:modelValue"])):"datetime"==e.controlType?(u(),m(f,{key:2,field:e.field,type:"datetime",style:{width:"100%"},modelValue:e.value,"onUpdate:modelValue":l=>e.value=l,placeholder:"请选择","value-format":"yyyy-MM-dd HH:mm:ss"},null,8,["field","modelValue","onUpdate:modelValue"])):"daterange"==e.controlType?(u(),m(f,{key:3,field:e.field,type:"daterange",style:{width:"100%"},modelValue:e.value,"onUpdate:modelValue":l=>e.value=l,placeholder:"请选择","value-format":"yyyy-MM-dd"},null,8,["field","modelValue","onUpdate:modelValue"])):"datetimerange"==e.controlType?(u(),m(f,{key:4,field:e.field,type:"datetimerange",style:{width:"100%"},modelValue:e.value,"onUpdate:modelValue":l=>e.value=l,placeholder:"请选择","value-format":"yyyy-MM-dd HH:mm:ss"},null,8,["field","modelValue","onUpdate:modelValue"])):"reportSelect"==e.controlType?(u(),n(r,{key:5},[d(" 下拉框 "),i(F,{field:e.field,modelValue:e.value,"onUpdate:modelValue":l=>e.value=l,style:{width:"100%"},row:e},null,8,["field","modelValue","onUpdate:modelValue","row"])],64)):"reportSelectTable"==e.controlType?(u(),n(r,{key:6},[d(" 下拉框(表) "),i(H,{field:e.field,fieldName:"value",modelValue:e.value,"onUpdate:modelValue":l=>e.value=l,style:{width:"100%"},row:e},null,8,["field","modelValue","onUpdate:modelValue","row"])],64)):"customSelect"==e.controlType?(u(),n(r,{key:7},[d(" 下拉框(自定义单选) "),i(R,{field:e.field,modelValue:e.value,"onUpdate:modelValue":l=>e.value=l,style:{width:"100%"},row:e},null,8,["field","modelValue","onUpdate:modelValue","row"])],64)):"customMulSelect"==e.controlType?(u(),n(r,{key:8},[d(" 下拉框(自定义多选) "),i(q,{field:e.field,modelValue:e.value,"onUpdate:modelValue":l=>e.value=l,style:{width:"100%"},row:e},null,8,["field","modelValue","onUpdate:modelValue","row"])],64)):"reportMulSelect"==e.controlType?(u(),n(r,{key:9},[d(" 下拉框(多选) "),i(B,{field:e.field,modelValue:e.value,"onUpdate:modelValue":l=>e.value=l,style:{width:"100%"},row:e},null,8,["field","modelValue","onUpdate:modelValue","row"])],64)):"number"==e.controlType?(u(),m(h,{key:10,field:e.field,onKeyup:a[0]||(a[0]=b((e=>_(e)),["enter","native"])),style:{width:"100%"},modelValue:e.value,"onUpdate:modelValue":l=>e.value=l},null,8,["field","modelValue","onUpdate:modelValue"])):(u(),m(x,{key:11,field:e.field,onKeyup:a[1]||(a[1]=b((e=>_(e)),["enter","native"])),style:{width:"100%"},modelValue:e.value,"onUpdate:modelValue":l=>e.value=l,placeholder:"请输入"},null,8,["field","modelValue","onUpdate:modelValue"]))],64)):d("v-if",!0)])),_:1}),i(t,{field:"relationSign",title:"关系",width:"70","header-align":"center"},{default:s((({row:e})=>[d(' <template v-if="row.parentId != 0">\n\t\t\t\t\t\t\n\t\t\t\t\t</template> '),i(p,{modelValue:e.relationSign,"onUpdate:modelValue":l=>e.relationSign=l,placeholder:"请选择"},{default:s((()=>[i(v,{label:"并",value:0}),i(v,{label:"或",value:1}),i(v,{label:"无",value:-1})])),_:2},1032,["modelValue","onUpdate:modelValue"])])),_:1})])),_:1},8,["loading","data"])])}}};function $(e,l){void 0===l&&(l={});var a=l.insertAt;if(e&&"undefined"!=typeof document){var t=document.head||document.getElementsByTagName("head")[0],o=document.createElement("style");o.type="text/css","top"===a&&t.firstChild?t.insertBefore(o,t.firstChild):t.appendChild(o),o.styleSheet?o.styleSheet.cssText=e:o.appendChild(document.createTextNode(e))}}$(".tableTemplateClass[data-v-2c3574c1],.tableTemplateSecondClass[data-v-2c3574c1]{margin-right:10px}"),z.__scopeId="data-v-2c3574c1",z.__file="src/components/SearchPro/tableTemplate/index.vue";const K={class:"tableTemplateSecondClass"},G={key:0},J={key:1};var Q={__name:"second",props:{isClearTreeData:{type:[String,Number],default:""},solutionCID:{type:[String,Number],default:""},solutionList:{type:Array,default:()=>[]},optionModel:{type:Object,default:()=>({})},formSolution:{type:Object,default:()=>({})},conditionConfig:{type:Object,default:()=>({hash:698,flag:""})}},emits:["formDataChangeFn","disabledDeleteBtnFn","submitSuccess","submitBtnLoadingFn"],setup(a,{expose:t,emit:y}){const b=a,w=y;e();const S=l(null),_=l(!1),x=l(!1),D=l(null);l(!1),l(!1);const V=l(null),k=l(null),E=l([{value:0,label:"等于",text:"Equal"},{value:1,label:"模糊查询",text:"Like"},{value:2,label:"大于",text:"GreaterThan"},{value:3,label:"大于等于",text:"GreaterThanOrEqual"},{value:4,label:"小于",text:"LessThan"},{value:5,label:"小于等于",text:"LessThanOrEqual"},{value:6,label:"In操作",text:"In"},{value:7,label:"NotIn操作",text:"NotIn"},{value:8,label:"左模糊",text:"LikeLeft"},{value:9,label:"右模糊",text:"LikeRight"},{value:10,label:"不等于",text:"NoEqual"},{value:11,label:"IsNullOrEmpty",text:"IsNullOrEmpty"},{value:12,label:"IsNot",text:"IsNot"},{value:13,label:"模糊查询取反",text:"NoLike"},{value:14,label:"EqualNull ",text:"EqualNull"},{value:15,label:"InLike",text:"InLike"},{value:16,label:"区间范围 ",text:"BetweenAnd"}]),I=l([]),A=l([]),N=l(null);f((()=>b.isClearTreeData),((e,l)=>{e&&M()}),{deep:!0,immediate:!1}),f((()=>b.conditionConfig),((e,l)=>{h((()=>{Y(e),I.value&&0==I.value.length&&ee()}))}),{deep:!0,immediate:!1});const M=()=>{V.value=null,k.value=null,A.value=[],b.solutionCID="",S.value=null,I.value=[],setTimeout((()=>{const e=N.value;e&&e.reloadData([])}),300)},O=e=>{w("submitBtnLoadingFn",e)},U=()=>{let e=[];const l=N.value;l&&(e=l.getTableData().visibleData),e=L(e);let a={tableData:e,loadDataConfig:S.value};return JSON.stringify(a)},L=(e=[])=>{let l=[];return e.forEach((e=>{delete e.children,l.push(e)})),l},j=e=>{0==e.row.parentId?V.value=e.row:V.value=null,k.value=e.row},Y=e=>{switch(e.flag){case"group":Q();break;case"condition":z()}},z=async()=>{V.value?await W(V.value):$()},$=async()=>{let e={id:Math.floor(1e6*Math.random()+1),parentId:-1,field:"",title:"",check:null,isCheck:!0,controlType:"text",defaultValue:"",tableName:"",comparator:0,relationSign:0,value:""};const l=N.value;if(k.value&&-1==k.value.parentId){const{row:a}=await l.insertAt(e,k.value);l.setCurrentRow(a)}else{const{row:a}=await l.insertAt(e,-1);l.setCurrentRow(a)}},Q=async()=>{let e={id:Math.floor(1e6*Math.random()+1),parentId:0,field:"",title:"",isCheck:!0,controlType:"text",defaultValue:"",tableName:"",comparator:0,relationSign:0,value:""};const l=N.value,{row:a}=await l.insertAt(e,-1);l.setCurrentRow(a),V.value=a,k.value=a},W=async(e,l)=>{let a=Math.floor(1e6*Math.random()+1);const t=N.value;{const l={id:a,parentId:e.id,field:"",title:"",isCheck:!0,controlType:"text",defaultValue:"",tableName:"",comparator:0,relationSign:0,value:""},{row:o}=await t.insertAt(l,-1);await t.setTreeExpand(e,!0),await t.setCurrentRow(o),k.value=o}},Z=()=>{const e=N.value;e&&e.setAllTreeExpand(!0)},X=e=>{_.value=!1,e==b.optionModel.searchProSettingID&&(_.value=!0),w("disabledDeleteBtnFn",_.value);let l=null,a=b.solutionList.filter((l=>{if(l.CID==e)return l}));return a&&a.length>0&&(l=a[0]),l},ee=()=>{I.value=[];let e=X(b.optionModel.searchProSettingID);if(e){let l=JSON.parse(e.CCONDITION);if(l.tableData){let e=l.tableData;I.value=e.filter((e=>{if(e.field)return e}))}}};return t({reloadData:e=>{const l=N.value;l&&l.reloadData(e)},solutionCID_change:e=>{I.value&&0==I.value.length&&ee(),x.value=!0;let l=X(e);if(l){let e=JSON.parse(l.CCONDITION);e.tableData&&(A.value=e.tableData),e.loadDataConfig&&(S.value=e.loadDataConfig),D.value=l,w("formDataChangeFn",l)}setTimeout((()=>{x.value=!1,Z()}),100)},submitEditDialog:async()=>{const e=N.value;let l=[];if(e&&(l=e.getTableData().visibleData),l.length<=0)return void T.modal.message({message:"数据不能为空",status:"error"});O(!0);let a="/api/SYSTEM/Common/Insert",t=(e=>{let l=window.location.search,a=new RegExp("(^|&)"+e+"=([^&]*)(&|$)","i"),t=l.substr(1).match(a);return null!=t?unescape(t[2]):null})("formName");t||(t=window.location.pathname);let o={};b.solutionCID&&(a="/api/system/Common/Edit",o=Object.assign({},D.value)),o.CPID=t,o.CSCHEME_NAME=b.formSolution.name,o.CVISIBILITY_USER_ID=b.formSolution.region,o.CCONDITION=U(),o.CTEMPLATE_ID=b.solutionCID?b.solutionCID:"",o.CGROUP=b.optionModel.searchProSettingCPARENT,o.CPARENT=b.optionModel.searchProSettingCPARENT,o.CDEFAULT=b.formSolution.defaultOption,delete o.RowIndex;let n={table:"TBL_SYS_ADVANCED_SEARCH",modelJson:JSON.stringify(o)};await P.request({url:a,method:"post",data:n}).then((e=>{e.Success&&(O(!1),M(),setTimeout((()=>{w("submitSuccess",{})}),300),b.solutionCID&&o.CDEFAULT&&(async()=>{if(!b.solutionCID||!b.optionModel.searchProSettingCPARENT)return;let e={ConnId:"",table:"TBL_SYS_ADVANCED_SEARCH",ModelJson:'{"CDEFAULT":false}',where:`CPARENT='${b.optionModel.searchProSettingCPARENT}' AND CID <> ${b.solutionCID}`};await P.request({url:"/api/system/Common/EditBatch",method:"post",data:e}).then((e=>{e.Success}))})())}))}}),(e,l)=>{const t=o("el-option"),f=o("el-select"),h=o("vxe-column"),y=o("el-date-picker"),b=o("el-input-number"),w=o("el-input"),S=o("vxe-button"),D=o("vxe-table");return u(),n("div",K,[i(D,{ref_key:"vxeTableSecondRef",ref:N,"keep-source":"",onCurrentChange:j,loading:x.value,"show-overflow":"",border:"",size:"mini","column-config":{resizable:!0},"row-config":{useKey:!0,keyField:"id",isCurrent:!0,isHover:!0},"edit-config":{trigger:"click",mode:"cell"},"tree-config":{transform:!0,rowField:"id",parentField:"parentId",expandAll:!0},data:A.value,"scroll-y":{enabled:!1}},{default:s((()=>[i(h,{field:"field",title:"参数名称",width:"200","tree-node":"","header-align":"center"},{default:s((({row:e})=>[0!=e.parentId?(u(),n(r,{key:0},[-1==e.parentId?(u(),n("span",G,"+")):d("v-if",!0),i(f,{style:C([{width:-1==e.parentId?"96%":"100%"}]),modelValue:e.field,"onUpdate:modelValue":l=>e.field=l,placeholder:"请选择"},{default:s((()=>[(u(!0),n(r,null,c(I.value.filter((e=>e&&null!=e.field)),((l,a)=>(u(),m(t,{onClick:a=>((e,l)=>{l.controlType=e.controlType,l.title=e.title,l.isCheck=!0,l.tableName=e.tableName,l.controlOptions=e.controlOptions})(l,e),key:a,label:l.title?l.title:l.field,value:l.field||""},null,8,["onClick","label","value"])))),128))])),_:2},1032,["style","modelValue","onUpdate:modelValue"])],64)):(u(),n("span",J,"条件组"))])),_:1}),i(h,{field:"comparator",title:"比较符",width:"150","header-align":"center"},{default:s((({row:e})=>[0!=e.parentId?(u(),m(f,{key:0,modelValue:e.comparator,"onUpdate:modelValue":l=>e.comparator=l,placeholder:"请选择"},{default:s((()=>[(u(!0),n(r,null,c(E.value,((e,l)=>(u(),m(t,{key:l,label:e.label,value:e.value},null,8,["label","value"])))),128))])),_:2},1032,["modelValue","onUpdate:modelValue"])):d("v-if",!0)])),_:1}),i(h,{field:"value",title:"比较值","header-align":"center"},{default:s((({row:e})=>[0!=e.parentId?(u(),n(r,{key:0},["select"==e.controlType?(u(),n(r,{key:0},[d(' <el-select style="width: 100%;" v-model="row.value" placeholder="请选择">\n\t\t\t\t\t\t\t\t<el-option label="比较值1" value="&&" />\n\t\t\t\t\t\t\t\t<el-option label="比较值2" value="||" />\n\t\t\t\t\t\t\t</el-select> ')],64)):"date"==e.controlType?(u(),m(y,{key:1,field:e.field,type:"date",style:{width:"100%"},modelValue:e.value,"onUpdate:modelValue":l=>e.value=l,placeholder:"请选择","value-format":"yyyy-MM-dd"},null,8,["field","modelValue","onUpdate:modelValue"])):"datetime"==e.controlType?(u(),m(y,{key:2,field:e.field,type:"datetime",style:{width:"100%"},modelValue:e.value,"onUpdate:modelValue":l=>e.value=l,placeholder:"请选择","value-format":"yyyy-MM-dd HH:mm:ss"},null,8,["field","modelValue","onUpdate:modelValue"])):"daterange"==e.controlType?(u(),m(y,{key:3,field:e.field,type:"daterange",style:{width:"100%"},modelValue:e.value,"onUpdate:modelValue":l=>e.value=l,placeholder:"请选择","value-format":"yyyy-MM-dd"},null,8,["field","modelValue","onUpdate:modelValue"])):"datetimerange"==e.controlType?(u(),m(y,{key:4,field:e.field,type:"datetimerange",style:{width:"100%"},modelValue:e.value,"onUpdate:modelValue":l=>e.value=l,placeholder:"请选择","value-format":"yyyy-MM-dd HH:mm:ss"},null,8,["field","modelValue","onUpdate:modelValue"])):"reportSelect"==e.controlType?(u(),n(r,{key:5},[d(" 下拉框 "),i(F,{field:e.field,modelValue:e.value,"onUpdate:modelValue":l=>e.value=l,style:{width:"100%"},row:e},null,8,["field","modelValue","onUpdate:modelValue","row"])],64)):"reportSelectTable"==e.controlType?(u(),n(r,{key:6},[d(" 下拉框(表) "),i(H,{field:e.field,fieldName:e.field,modelValue:e.value,"onUpdate:modelValue":l=>e.value=l,style:{width:"100%"},row:e},null,8,["field","fieldName","modelValue","onUpdate:modelValue","row"])],64)):"customSelect"==e.controlType?(u(),n(r,{key:7},[d(" 下拉框(自定义) "),i(R,{field:e.field,modelValue:e.value,"onUpdate:modelValue":l=>e.value=l,style:{width:"100%"},row:e},null,8,["field","modelValue","onUpdate:modelValue","row"])],64)):"customMulSelect"==e.controlType?(u(),n(r,{key:8},[d(" 下拉框(自定义多选) "),i(q,{field:e.field,modelValue:e.value,"onUpdate:modelValue":l=>e.value=l,style:{width:"100%"},row:e},null,8,["field","modelValue","onUpdate:modelValue","row"])],64)):"reportMulSelect"==e.controlType?(u(),n(r,{key:9},[d(" 下拉框(多选) "),i(B,{field:e.field,modelValue:e.value,"onUpdate:modelValue":l=>e.value=l,style:{width:"100%"},row:e},null,8,["field","modelValue","onUpdate:modelValue","row"])],64)):"number"==e.controlType?(u(),m(b,{key:10,field:e.field,style:{width:"100%"},modelValue:e.value,"onUpdate:modelValue":l=>e.value=l},null,8,["field","modelValue","onUpdate:modelValue"])):(u(),m(w,{key:11,field:e.field,modelValue:e.value,"onUpdate:modelValue":l=>e.value=l,placeholder:"请输入"},null,8,["field","modelValue","onUpdate:modelValue"]))],64)):d("v-if",!0)])),_:1}),i(h,{field:"relationSign",title:"关系",width:"70","header-align":"center"},{default:s((({row:e})=>[d(' <template v-if="row.parentId != 0">\n\t\t\t\t\t\t\n\t\t\t\t\t</template> '),i(f,{modelValue:e.relationSign,"onUpdate:modelValue":l=>e.relationSign=l,placeholder:"请选择"},{default:s((()=>[i(t,{label:"并",value:0}),i(t,{label:"或",value:1}),i(t,{label:"无",value:-1})])),_:2},1032,["modelValue","onUpdate:modelValue"])])),_:1}),i(h,{title:"操作",width:"80","header-align":"center",align:"center","show-overflow":""},{default:s((({row:e})=>[v(i(S,{style:{color:"red"},mode:"text",icon:"vxe-icon-delete",onClick:l=>(async e=>{const l=N.value;await l.remove(e);try{V.value&&V.value.parentId&&V.value.parentId==e.parentId&&0==e.parentId&&(V.value=null),k.value&&k.value.id==e.id&&(k.value=null)}catch(e){}})(e)},{default:s((()=>l[0]||(l[0]=[g("删除")]))),_:2,__:[0]},1032,["onClick"]),[[p,!_.value||!a.solutionCID]])])),_:1})])),_:1},8,["loading","data"])])}}};$(".tableTemplateClass[data-v-49d49595],.tableTemplateSecondClass[data-v-49d49595]{margin-right:10px}"),Q.__scopeId="data-v-49d49595",Q.__file="src/components/SearchPro/tableTemplate/second.vue";
1
+ import{getCurrentInstance as e,ref as l,computed as a,onMounted as t,resolveComponent as o,createElementBlock as n,openBlock as u,Fragment as r,createCommentVNode as d,createVNode as i,withCtx as s,renderList as c,createBlock as m,withDirectives as v,vShow as p,watch as f,nextTick as h,createTextVNode as g,toDisplayString as y,withKeys as b,normalizeStyle as C,defineComponent as w,createElementVNode as S,reactive as _,onUnmounted as x,unref as D,normalizeClass as V}from"vue";import T from"vxe-table";import k from"axios";import E from"dayjs";function I(e){let l=window.localStorage.getItem(e);return JSON.parse(l)}function A(e){var l=document.cookie,a=l.indexOf(e+"=");if(-1!=a){var t=l.indexOf("=",a)+1,o=l.indexOf(";",a);return-1==o&&(o=l.length),unescape(l.substring(t,o))}}I("mian_code"),I("multiOrganization");var N=I("userInfo")||A("userInfo");var M={dev:"http://www.cimom.cn:19719/",pro:"/"};const O="development"===process.env.NODE_ENV?M.dev:M.pro,U=new class{constructor(e=baseURL){this.baseUrl=e,this.queue={},this.timer=null}getInsideConfig(){return{baseURL:this.baseUrl,headers:{Accept:"currentusername$$"+N?.CUSER_NAME+"_-enterprisecode$$"+N?.CENTERPRISE_CODE}}}destroy(e){delete this.queue[e],Object.keys(this.queue).length}interceptors(e,l){e.interceptors.request.use((e=>{let a=I("token")||A("token");a&&(e.headers.Authorization="Bearer "+a);var t=I("language");t&&(e.headers.language=t);let o=I("multiOrganization");return o?.CORG_CODE&&(e.headers.Accept="currentusername$$"+N?.CUSER_NAME+"_-enterprisecode$$"+N?.CENTERPRISE_CODE+"_-OrgCode$$"+o?.CORG_CODE),Object.keys(this.queue).length,this.queue[l]=!0,e}),(e=>Promise.reject(e))),e.interceptors.response.use((e=>{this.destroy(l);const{data:a,status:t}=e;if(400!=e.data.code)return{data:a,status:t}}),(e=>{if(this.destroy(l),e&&e.statusCode)switch(e.statusCode){case 400:e.errMsg="错误请求";break;case 401:e.errMsg="未授权,请重新登录";break;case 403:e.errMsg="拒绝访问";break;case 404:e.errMsg="请求错误,未找到该资源";break;case 405:e.errMsg="请求方法未允许";break;case 408:e.errMsg="请求超时";break;case 500:e.errMsg="服务器端出错";break;case 501:e.errMsg="网络未实现";break;case 502:e.errMsg="网络错误";break;case 503:e.errMsg="服务不可用";break;case 504:e.errMsg="网络超时";break;case 505:e.errMsg="http版本不支持该请求";break;default:e.errMsg=`连接错误${e.response.status}`}else e.errMsg="连接到服务器失败",e.statusCode="";let a=e.errMsg+" "+e.statusCode+" 请稍后重试!";return Promise.reject(a)}))}request(e){const l=k.create();return e=Object.assign(this.getInsideConfig(),e),this.interceptors(l,e.url),l(e)}}(O);var P={request:function(e){try{if(this[e.method]&&"function"==typeof this[e.method])return this[e.method](e.url,e.data,e.params);throw new Error(`Method ${e.method} not found`)}catch(e){return T.modal.message({message:"请求方式不存在",status:"error"}),Promise.reject(e)}},get:function(e,l,a){let t=this;return new Promise(((o,n)=>{U.request({url:e,method:"get",params:a||{},data:l||{}}).then((e=>{t.requestSuccessHandler(e,o,n)})).catch((e=>{t.requestErrorHandler(e,o,n)}))}))},post:function(e,l,a){let t=this;return new Promise(((o,n)=>{U.request({url:e,method:"post",params:a||{},data:l||{}}).then((e=>{t.requestSuccessHandler(e,o,n)})).catch((e=>{t.requestErrorHandler(e,o,n)}))}))},download_post:function(e,l,a){return new Promise(((t,o)=>{U.request({url:e,method:"POST",responseType:"blob",params:a||{},data:l||{}}).then((e=>{t(e)})).catch((e=>{o(e)}))}))},download_get:function(e,l,a){return new Promise(((t,o)=>{U.request({url:e,method:"get",responseType:"blob",params:a||{},data:l||{}}).then((e=>{t(e)})).catch((e=>{o(e)}))}))},formPost:function(e,l,a){let t=this;return new Promise(((o,n)=>{U.request({url:e,method:"post",headers:{Accept:"*/*","Content-Type":"multipart/form-data",withCredentials:!0},params:a||{},data:l||{}}).then((e=>{t.requestSuccessHandler(e,o,n)})).catch((e=>{t.requestErrorHandler(e,o,n)}))}))},update:function(e,l,a){let t=this;return this.openFullScreen(!0),new Promise(((o,n)=>{U.request({url:e,method:"post",params:a||{},data:l||{}}).then((e=>{t.openFullScreen(!1),t.requestSuccessHandlerByUpdate(e,o,n)})).catch((e=>{t.openFullScreen(!1),t.requestErrorHandler(e,o,n)}))}))},requestSuccessHandlerByUpdate(e,l,a){if(e)if(e.data.success){l(e.data.data);let a="操作成功";T.modal.message({message:a,status:"success"})}else{let l="请求业务异常,请联系系统管理员-001",t=null==e.data.message.content||""==e.data.message.content?l:e.data.message.content;this.showErrMessage(t),a(t)}else a(!1)},requestSuccessHandler(e,l,a){if(e)if(e.data.success)e.data.data.Success?l(e.data.data):(l(e.data.data),this.showErrMessage(e.data.data.Content?e.data.data.Content:"返回结果失败,请检查!!"));else{let l="请求业务异常,请联系系统管理员",t=null==e.data.message.content||""==e.data.message.content?l:e.data.message.content;this.showErrMessage(t),a(t)}else a(!1)},showErrMessage(e){clearTimeout(this.showMessageTimer),this.showMessageTimer=setTimeout((()=>{T.modal.message({message:e,status:"error"})}),300)},requestErrorHandler(e,l,a){e&&(this.showErrMessage(e),a(e))},openFullScreen(e=!1){}};function L(){const a=e(),t=l(""),o=(e,l)=>{let a=null,t="";switch(e){case"date":t="YYYY-MM-DD";break;case"dateTime":t="YYYY-MM-DD HH:mm:ss";break;default:t=""}if(l)if("curdate"==l)a=E().format(t);else if(l.includes("-")){let e=l.split("-");a=E()[e[0]](Number(e[1]),e[2]).format(t)}else a=null;return a};return{value:t,init:()=>{},changeEvent:e=>{t.value=e;let l={value:e,type:"change"};a?.emit("changeEvent",l)},clear:(e,l,a,n)=>{if(e&&l&&a&&t.value&&a[e]){let u=n.defaultValue;switch(l){case"date":case"dateTime":case"month":let t=o(l,u);a[e]=t;break;case"number":let n=Number(u);a[e]=n;break;default:a[e]=u}t.value=""}},setDateTimeDefaultVal:o,setDateTimeRangeDefaultVal:(e,l)=>{const a=new Date,t=new Date;try{let o=[t,a],n="",u=l.split("#");switch(e){case"daterange":n="YYYY-MM-DD";break;case"datetimerange":n="YYYY-MM-DD HH:mm:ss";break;default:n=""}if(u[0])if("curdate"==u[0])o[0]=E().format(n);else if(u[0].includes("-")){let e=u[0].split("-");o[0]=E()[e[0]](Number(e[1]),e[2]).format(n)}else o[0]=t;if(u[1])if("curdate"==u[1])o[1]=E().format(n);else if(u[1].includes("-")){let e=u[1].split("-");o[1]=E()[e[0]](Number(e[1]),e[2]).format(n)}else o[1]=a;return o}catch(e){return[t,a]}},getDBDataByActionName:async e=>{let l={Id:e?.CDATASET_ID,Parameter:{}};if(!l.hasOwnProperty("Id")||!l.Id)return void console.error("====DataSetId 为空,跳过查询====");let a=[];return await P.request({url:"/api/MD/DataSet/GetListByDataSetId",method:"post",data:l}).then((e=>{e.Success&&([4,5,6].includes(e.Data)&&(e.Datas=JSON.parse(e.Datas)),e&&e.Datas&&(a=e.Datas))})),a},formatQuery:e=>{let l={};if(e&&Object.keys(e).length>0)for(const[a,t]of Object.entries(e))l[a]=t.value;return l}}}var F={__name:"reportSelect",props:{modelValue:{type:[String,Number],default:""},row:{type:Object,default:()=>({})},field:{type:String,default:""}},emits:["update:modelValue","changeEvent"],setup(e,{emit:v}){const p={},f=e,h=v;let g=window.location.href;const{init:y,changeEvent:b,getDBDataByActionName:C}=L(),w=l(!1),S=l(null),_=l([]),x=l({key:"",text:""}),D=a((()=>{let e={};try{e=f.row.controlOptions}catch(l){e={}}return e}));t((()=>{y(),V()}));const V=e=>{0==_.value.length&&(D.value&&(S.value=D.value,S.value.hasOwnProperty("CDATAS")&&S.value.CDATAS&&T(S.value.CDATAS)),k())},T=e=>{e&&e.length>0?e.forEach((e=>{e.isSelectTextField&&(x.value.text=e.field),e.isSelectKeyField&&(x.value.key=e.field)})):x.value={key:"",text:""}},k=async()=>{let e=(()=>{let e=[];try{e=p[g+f.field]}catch(l){e=[]}return e})();if(e&&e.length>0)return void(_.value=e);w.value=!0;let l=await C(S.value);var a;l&&l.length>0?(_.value=E(l),a=_.value,p[g+f.field]=a):_.value=[{value:"",label:"请选择"}],w.value=!1,setTimeout((()=>{w.value=!1}),1e4)},E=e=>{let l=[{value:"",label:"请选择"}];return e&&e.length>0&&e.forEach((e=>{if(e[x.value.text]){let a={value:e[x.value.key],label:e[x.value.text]};l.push(a)}})),l},I=e=>{h("update:modelValue",e),b(e),h("changeEvent",{value:e,type:"change"})};return(l,a)=>{const t=o("el-option"),v=o("el-select");return u(),n(r,null,[d(' @focus="focusEvent" '),i(v,{onChange:I,loading:w.value,filterable:"",clearable:"","model-value":e.modelValue,"onUpdate:modelValue":a[0]||(a[0]=e=>l.$emit("update:modelValue",e)),placeholder:"请选择"},{default:s((()=>[(u(!0),n(r,null,c(_.value,((e,l)=>(u(),m(t,{key:e.value+l,label:e.label,value:e.value},null,8,["label","value"])))),128))])),_:1},8,["loading","model-value"])],2112)}},__file:"src/components/SearchPro/innerComponents/reportSelect.vue"},R={__name:"reportCustomSelect",props:{modelValue:{type:[String,Number],default:""},row:{type:Object,default:()=>({})},field:{type:String,default:""}},emits:["update:modelValue","changeEvent"],setup(e,{emit:v}){const p=e,f=v,{init:h,changeEvent:g}=L();l(!1);const y=l(null),b=l([]),C=l({key:"",text:""}),w=a((()=>{let e={};try{e=p.row.controlOptions}catch(l){e={}}return e}));t((()=>{h(),S()}));const S=e=>{0==b.value.length&&(w.value&&(y.value=w.value,y.value.hasOwnProperty("CDATAS")&&y.value.CDATAS&&_(y.value.CDATAS)),x())},_=e=>{e&&e.length>0?e.forEach((e=>{e.isSelectTextField&&(C.value.text=e.field),e.isSelectKeyField&&(C.value.key=e.field)})):C.value={key:"",text:""}},x=()=>{let e=[{value:"",label:"请选择"}];y.value.CDATAS&&y.value.CDATAS.length>0&&y.value.CDATAS.forEach((l=>{let a={value:l.field,label:l.title?l.title:l.field};e.push(a)})),b.value=e},D=e=>{f("update:modelValue",e),g(e),f("changeEvent",{value:e,type:"change"})};return(l,a)=>{const t=o("el-option"),v=o("el-select");return u(),n(r,null,[d(' @focus="focusEvent" '),i(v,{onChange:D,filterable:"",clearable:"","model-value":e.modelValue,"onUpdate:modelValue":a[0]||(a[0]=e=>l.$emit("update:modelValue",e)),placeholder:"请选择"},{default:s((()=>[(u(!0),n(r,null,c(b.value,(e=>(u(),m(t,{key:e.value,label:e.label,value:e.value},null,8,["label","value"])))),128))])),_:1},8,["model-value"])],2112)}},__file:"src/components/SearchPro/innerComponents/reportCustomSelect.vue"},q={__name:"reportCustomMulSelect",props:{modelValue:{type:Array,default:()=>[]},row:{type:Object,default:()=>({})},field:{type:String,default:""}},emits:["update:modelValue","changeEvent"],setup(e,{emit:v}){const p=e,f=v,{init:h,changeEvent:g}=L();l(!1);const y=l(null),b=l([]),C=l({key:"",text:""}),w=a((()=>{let e={};try{e=p.row.controlOptions}catch(l){e={}}return e}));t((()=>{h(),S()}));const S=e=>{0==b.value.length&&(w.value&&(y.value=w.value,y.value.hasOwnProperty("CDATAS")&&y.value.CDATAS&&_(y.value.CDATAS)),x())},_=e=>{e&&e.length>0?e.forEach((e=>{e.isSelectTextField&&(C.value.text=e.field),e.isSelectKeyField&&(C.value.key=e.field)})):C.value={key:"",text:""}},x=()=>{let e=[{value:"",label:"请选择"}];y.value.CDATAS&&y.value.CDATAS.length>0&&y.value.CDATAS.forEach((l=>{let a={value:l.field,label:l.title?l.title:l.field};e.push(a)})),b.value=e},D=e=>{f("update:modelValue",e),g(e),f("changeEvent",{value:e,type:"change"})};return(l,a)=>{const t=o("el-option"),v=o("el-select");return u(),n(r,null,[d(' @focus="focusEvent" '),i(v,{"collapse-tags":"","collapse-tags-tooltip":"",onChange:D,multiple:!0,filterable:"",clearable:"","model-value":e.modelValue,"onUpdate:modelValue":a[0]||(a[0]=e=>l.$emit("update:modelValue",e)),placeholder:"请选择"},{default:s((()=>[(u(!0),n(r,null,c(b.value,(e=>(u(),m(t,{key:e.value,label:e.label,value:e.value},null,8,["label","value"])))),128))])),_:1},8,["model-value"])],2112)}},__file:"src/components/SearchPro/innerComponents/reportCustomMulSelect.vue"},H={__name:"reportSelectTable",props:{modelValue:{type:[String,Number],default:""},fieldName:{type:String,default:""},field:{type:String,default:""},row:{type:Object,default:()=>({})}},emits:["update:modelValue","changeEvent"],setup(f,{emit:h}){const g={},y=f,b=h;let C=window.location.href;e();const{init:w,changeEvent:S,getDBDataByActionName:_}=L(),x=l(null),D=l(null),V=l(!1),T=l(!1),k=l([]);l("");const E=l({total:0,currentPage:1,pageSize:10}),I=l([]),A=l({key:"",text:""}),N=l({columns:[],data:[]}),M=l(null),O=a((()=>{let e={};try{e=y.row.controlOptions}catch(l){e={}}return e}));t((()=>{w(),F(),setTimeout((()=>{y.modelValue&&(x.value=y.modelValue)}),300)}));const U=e=>{x.value=e.row[A.value.key],y.row[y.fieldName]=x.value,M.value?.blur()},P=e=>{13===e.keyCode&&q()},F=e=>{0==I.value.length&&(O.value&&(D.value=O.value,D.value.hasOwnProperty("CDATAS")&&D.value.CDATAS&&(R(D.value.CDATAS),E.value.pageSize=Number(D.value.CPAGE_SIZE),V.value="Y"==D.value.CIS_PAGE)),q())},R=e=>{k.value=[],N.value.columns=[],e&&e.length>0?e.forEach((e=>{if(e.isSelectTextField&&(A.value.text=e.field),e.isSelectKeyField&&(A.value.key=e.field),e.iisShowList){let l={field:e.field,headerAlign:"center",minWidth:Number(e.width),title:e.title?e.title:e.field};k.value.push(l),N.value.columns.push(l)}})):A.value={key:"",text:""}},q=async()=>{T.value=!0;let e=[],l=(()=>{let e=[];try{e=g[C+y.field]}catch(l){e=[]}return e})();var a;l&&l.length>0?e=l:(e=await _(D.value),a=e,g[C+y.field]=a),e&&e.length>0?(I.value=H(e),N.value.data=e):I.value=[{value:"",label:"请选择"}],T.value=!1,setTimeout((()=>{T.value=!1}),1e4)},H=e=>{let l=[{value:"",label:"请选择"}];return e&&e.length>0&&e.forEach((e=>{if(e[A.value.text]){let a={value:e[A.value.key],label:e[A.value.text]};l.push(a)}})),l},B=e=>{E.value.currentPage=e,q()},j=e=>{b("update:modelValue",e),S(e),b("changeEvent",{value:e,type:"change"})};return(e,l)=>{const a=o("el-option"),t=o("vxe-column"),h=o("vxe-table"),g=o("el-pagination"),y=o("el-select");return u(),n(r,null,[d(' @focus="focusEvent()" '),i(y,{clearable:"",onChange:j,ref_key:"elSelectRef",ref:M,modelValue:x.value,"onUpdate:modelValue":[l[0]||(l[0]=e=>x.value=e),l[1]||(l[1]=l=>e.$emit("update:modelValue",l))],"model-value":f.modelValue,loading:T.value,placeholder:"请选择"},{default:s((()=>[(u(!0),n(r,null,c(I.value,((e,l)=>(u(),m(a,{key:e.value+l,label:e.label,value:e.value,style:{display:"none"}},null,8,["label","value"])))),128)),d(' <div> <el-input style="padding:2px 5px;" @keyup="keyupEvent" size="mini" v-model="searchkey"\n placeholder="请输入关键字 回车 ENTER"></el-input></div> '),i(h,{size:"mini",border:"",onKeyup:P,height:"180px",onCellClick:U,data:N.value.data},{default:s((()=>[(u(!0),n(r,null,c(N.value.columns,((e,l)=>(u(),m(t,{"header-align":"center","min-width":e.minWidth,key:l+e.field,field:e.field,title:e.title},null,8,["min-width","field","title"])))),128))])),_:1},8,["data"]),v(i(g,{background:"",size:"small","current-page":E.value.currentPage,"page-size":E.value.pageSize,onCurrentChange:B,layout:"prev, pager, next",total:E.value.total},null,8,["current-page","page-size","total"]),[[p,V.value]])])),_:1},8,["modelValue","model-value","loading"])],2112)}},__file:"src/components/SearchPro/innerComponents/reportSelectTable.vue"},B={__name:"reportMulSelect",props:{modelValue:{type:Array,default:()=>[]},row:{type:Object,default:()=>({})},field:{type:String,default:""}},emits:["update:modelValue","changeEvent"],setup(e,{emit:v}){const p={},f=e,h=v;let g=window.location.href;const{changeEvent:y,getDBDataByActionName:b}=L(),C=l(!1),w=l(null),S=l([]),_=l({key:"",text:""}),x=a((()=>{let e={};try{e=f.row.controlOptions}catch(l){e={}}return e}));t((()=>{D()}));const D=e=>{0==S.value.length&&(x.value&&(w.value=x.value,w.value.hasOwnProperty("CDATAS")&&w.value.CDATAS&&V(w.value.CDATAS)),T())},V=e=>{e&&e.length>0?e.forEach((e=>{e.isSelectTextField&&(_.value.text=e.field),e.isSelectKeyField&&(_.value.key=e.field)})):_.value={key:"",text:""}},T=async()=>{let e=(()=>{let e=[];try{e=p[g+f.field]}catch(l){e=[]}return e})();if(e&&e.length>0)return void(S.value=e);C.value=!0;let l=await b(w.value);var a;l&&l.length>0?(S.value=k(l),a=S.value,p[g+f.field]=a):S.value=[{value:"",label:"请选择"}],C.value=!1,setTimeout((()=>{C.value=!1}),1e4)},k=e=>{let l=[{value:"",label:"请选择"}];return e&&e.length>0&&e.forEach((e=>{if(e[_.value.text]){let a={value:e[_.value.key],label:e[_.value.text]};l.push(a)}})),l},E=e=>{h("update:modelValue",e),y(e),h("changeEvent",{value:e,type:"change"})};return(l,a)=>{const t=o("el-option"),v=o("el-select");return u(),n(r,null,[d(' @focus="focusEvent" '),i(v,{"collapse-tags":"","collapse-tags-tooltip":"",onChange:E,multiple:!0,loading:C.value,filterable:"",clearable:"","model-value":e.modelValue,"onUpdate:modelValue":a[0]||(a[0]=e=>l.$emit("update:modelValue",e)),placeholder:"请选择"},{default:s((()=>[(u(!0),n(r,null,c(S.value,((e,l)=>(u(),m(t,{key:e.value+l,label:e.label,value:e.value},null,8,["label","value"])))),128))])),_:1},8,["loading","model-value"])],2112)}},__file:"src/components/SearchPro/innerComponents/reportMulSelect.vue"};const j={class:"tableTemplateClass"},Y={key:1};var z={__name:"index",props:{activeName:{type:String,default:"first"},tableDataLoading:{type:Boolean,default:!1},tableOptions:{type:Array,default:()=>[]},conditionConfig:{type:Object,default:()=>({hash:698,flag:""})},isClearTreeData:{type:[Number,String],default:0},isAdd:{type:Boolean,default:!1}},emits:["handleEnterEvent"],setup(e,{emit:a}){const t=e,v=a,p=l(!1),C=l([{value:0,label:"等于",text:"Equal"},{value:1,label:"模糊查询",text:"Like"},{value:2,label:"大于",text:"GreaterThan"},{value:3,label:"大于等于",text:"GreaterThanOrEqual"},{value:4,label:"小于",text:"LessThan"},{value:5,label:"小于等于",text:"LessThanOrEqual"},{value:6,label:"In操作",text:"In"},{value:7,label:"NotIn操作",text:"NotIn"},{value:8,label:"左模糊",text:"LikeLeft"},{value:9,label:"右模糊",text:"LikeRight"},{value:10,label:"不等于",text:"NoEqual"},{value:11,label:"IsNullOrEmpty",text:"IsNullOrEmpty"},{value:12,label:"IsNot",text:"IsNot"},{value:13,label:"模糊查询取反",text:"NoLike"},{value:14,label:"EqualNull ",text:"EqualNull"},{value:15,label:"InLike",text:"InLike"},{value:16,label:"区间范围 ",text:"BetweenAnd"}]),w=l([]),S=l(null);f((()=>t.isAdd),(e=>{e&&(w.value=[])})),f((()=>t.conditionConfig),((e,l)=>{h((()=>{}))}),{deep:!0,immediate:!0}),f((()=>t.tableOptions),((e,l)=>{w.value=e,e&&h((()=>{x()}))}),{deep:!0});const _=e=>{v("handleEnterEvent",e)},x=()=>{p.value||(p.value=!0,setTimeout((()=>{const e=S.value;e&&e.setAllTreeExpand(!0)}),300))};return(l,a)=>{const t=o("vxe-column"),v=o("el-option"),p=o("el-select"),f=o("el-date-picker"),h=o("el-input-number"),x=o("el-input"),D=o("vxe-table");return u(),n("div",j,[i(D,{ref_key:"vxeTableRef",ref:S,"checkbox-config":{checkField:"isCheck"},loading:e.tableDataLoading,"show-overflow":"",border:"",size:"mini","column-config":{resizable:!0},"row-config":{useKey:!0,keyField:"id",isCurrent:!0,isHover:!0},"edit-config":{trigger:"click",mode:"cell"},"tree-config":{transform:!0,rowField:"id",parentField:"parentId",expandAll:!0},data:w.value,"scroll-y":{enabled:!1}},{default:s((()=>[i(t,{type:"checkbox",width:"40","header-align":"center",align:"center"}),i(t,{field:"field",title:"参数名称",width:"160","tree-node":"","header-align":"center"},{default:s((({row:e})=>[0!=e.parentId?(u(),n(r,{key:0},[g(y(e.title?e.title:e.field),1)],64)):(u(),n("span",Y,"条件组"))])),_:1}),i(t,{field:"comparator",title:"比较符",width:"150","header-align":"center"},{default:s((({row:e})=>[0!=e.parentId?(u(),m(p,{key:0,modelValue:e.comparator,"onUpdate:modelValue":l=>e.comparator=l,placeholder:"请选择"},{default:s((()=>[(u(!0),n(r,null,c(C.value,((e,l)=>(u(),m(v,{key:l,label:e.label,value:e.value},null,8,["label","value"])))),128))])),_:2},1032,["modelValue","onUpdate:modelValue"])):d("v-if",!0)])),_:1}),i(t,{field:"value",title:"比较值","header-align":"center"},{default:s((({row:e})=>[0!=e.parentId?(u(),n(r,{key:0},["select"==e.controlType?(u(),n(r,{key:0},[d(' <el-select style="width: 100%;" v-model="row.value" placeholder="请选择">\n\t\t\t\t\t\t\t\t<el-option label="比较值1" value="&&" />\n\t\t\t\t\t\t\t\t<el-option label="比较值2" value="||" />\n\t\t\t\t\t\t\t</el-select> ')],64)):"date"==e.controlType?(u(),m(f,{key:1,field:e.field,type:"date",style:{width:"100%"},modelValue:e.value,"onUpdate:modelValue":l=>e.value=l,placeholder:"请选择","value-format":"yyyy-MM-dd"},null,8,["field","modelValue","onUpdate:modelValue"])):"datetime"==e.controlType?(u(),m(f,{key:2,field:e.field,type:"datetime",style:{width:"100%"},modelValue:e.value,"onUpdate:modelValue":l=>e.value=l,placeholder:"请选择","value-format":"yyyy-MM-dd HH:mm:ss"},null,8,["field","modelValue","onUpdate:modelValue"])):"daterange"==e.controlType?(u(),m(f,{key:3,field:e.field,type:"daterange",style:{width:"100%"},modelValue:e.value,"onUpdate:modelValue":l=>e.value=l,placeholder:"请选择","value-format":"yyyy-MM-dd"},null,8,["field","modelValue","onUpdate:modelValue"])):"datetimerange"==e.controlType?(u(),m(f,{key:4,field:e.field,type:"datetimerange",style:{width:"100%"},modelValue:e.value,"onUpdate:modelValue":l=>e.value=l,placeholder:"请选择","value-format":"yyyy-MM-dd HH:mm:ss"},null,8,["field","modelValue","onUpdate:modelValue"])):"reportSelect"==e.controlType?(u(),n(r,{key:5},[d(" 下拉框 "),i(F,{field:e.field,modelValue:e.value,"onUpdate:modelValue":l=>e.value=l,style:{width:"100%"},row:e},null,8,["field","modelValue","onUpdate:modelValue","row"])],64)):"reportSelectTable"==e.controlType?(u(),n(r,{key:6},[d(" 下拉框(表) "),i(H,{field:e.field,fieldName:"value",modelValue:e.value,"onUpdate:modelValue":l=>e.value=l,style:{width:"100%"},row:e},null,8,["field","modelValue","onUpdate:modelValue","row"])],64)):"customSelect"==e.controlType?(u(),n(r,{key:7},[d(" 下拉框(自定义单选) "),i(R,{field:e.field,modelValue:e.value,"onUpdate:modelValue":l=>e.value=l,style:{width:"100%"},row:e},null,8,["field","modelValue","onUpdate:modelValue","row"])],64)):"customMulSelect"==e.controlType?(u(),n(r,{key:8},[d(" 下拉框(自定义多选) "),i(q,{field:e.field,modelValue:e.value,"onUpdate:modelValue":l=>e.value=l,style:{width:"100%"},row:e},null,8,["field","modelValue","onUpdate:modelValue","row"])],64)):"reportMulSelect"==e.controlType?(u(),n(r,{key:9},[d(" 下拉框(多选) "),i(B,{field:e.field,modelValue:e.value,"onUpdate:modelValue":l=>e.value=l,style:{width:"100%"},row:e},null,8,["field","modelValue","onUpdate:modelValue","row"])],64)):"number"==e.controlType?(u(),m(h,{key:10,field:e.field,onKeyup:a[0]||(a[0]=b((e=>_(e)),["enter","native"])),style:{width:"100%"},modelValue:e.value,"onUpdate:modelValue":l=>e.value=l},null,8,["field","modelValue","onUpdate:modelValue"])):(u(),m(x,{key:11,field:e.field,onKeyup:a[1]||(a[1]=b((e=>_(e)),["enter","native"])),style:{width:"100%"},modelValue:e.value,"onUpdate:modelValue":l=>e.value=l,placeholder:"请输入"},null,8,["field","modelValue","onUpdate:modelValue"]))],64)):d("v-if",!0)])),_:1}),i(t,{field:"relationSign",title:"关系",width:"70","header-align":"center"},{default:s((({row:e})=>[d(' <template v-if="row.parentId != 0">\n\t\t\t\t\t\t\n\t\t\t\t\t</template> '),i(p,{modelValue:e.relationSign,"onUpdate:modelValue":l=>e.relationSign=l,placeholder:"请选择"},{default:s((()=>[i(v,{label:"并",value:0}),i(v,{label:"或",value:1}),i(v,{label:"无",value:-1})])),_:2},1032,["modelValue","onUpdate:modelValue"])])),_:1})])),_:1},8,["loading","data"])])}}};function $(e,l){void 0===l&&(l={});var a=l.insertAt;if(e&&"undefined"!=typeof document){var t=document.head||document.getElementsByTagName("head")[0],o=document.createElement("style");o.type="text/css","top"===a&&t.firstChild?t.insertBefore(o,t.firstChild):t.appendChild(o),o.styleSheet?o.styleSheet.cssText=e:o.appendChild(document.createTextNode(e))}}$(".tableTemplateClass[data-v-2c3574c1],.tableTemplateSecondClass[data-v-2c3574c1]{margin-right:10px}"),z.__scopeId="data-v-2c3574c1",z.__file="src/components/SearchPro/tableTemplate/index.vue";const K={class:"tableTemplateSecondClass"},G={key:0},J={key:1};var Q={__name:"second",props:{isClearTreeData:{type:[String,Number],default:""},solutionCID:{type:[String,Number],default:""},solutionList:{type:Array,default:()=>[]},optionModel:{type:Object,default:()=>({})},formSolution:{type:Object,default:()=>({})},conditionConfig:{type:Object,default:()=>({hash:698,flag:""})}},emits:["formDataChangeFn","disabledDeleteBtnFn","submitSuccess","submitBtnLoadingFn"],setup(a,{expose:t,emit:y}){const b=a,w=y;e();const S=l(null),_=l(!1),x=l(!1),D=l(null);l(!1),l(!1);const V=l(null),k=l(null),E=l([{value:0,label:"等于",text:"Equal"},{value:1,label:"模糊查询",text:"Like"},{value:2,label:"大于",text:"GreaterThan"},{value:3,label:"大于等于",text:"GreaterThanOrEqual"},{value:4,label:"小于",text:"LessThan"},{value:5,label:"小于等于",text:"LessThanOrEqual"},{value:6,label:"In操作",text:"In"},{value:7,label:"NotIn操作",text:"NotIn"},{value:8,label:"左模糊",text:"LikeLeft"},{value:9,label:"右模糊",text:"LikeRight"},{value:10,label:"不等于",text:"NoEqual"},{value:11,label:"IsNullOrEmpty",text:"IsNullOrEmpty"},{value:12,label:"IsNot",text:"IsNot"},{value:13,label:"模糊查询取反",text:"NoLike"},{value:14,label:"EqualNull ",text:"EqualNull"},{value:15,label:"InLike",text:"InLike"},{value:16,label:"区间范围 ",text:"BetweenAnd"}]),I=l([]),A=l([]),N=l(null);f((()=>b.isClearTreeData),((e,l)=>{e&&M()}),{deep:!0,immediate:!1}),f((()=>b.conditionConfig),((e,l)=>{h((()=>{Y(e),I.value&&0==I.value.length&&ee()}))}),{deep:!0,immediate:!1});const M=()=>{V.value=null,k.value=null,A.value=[],b.solutionCID="",S.value=null,I.value=[],setTimeout((()=>{const e=N.value;e&&e.reloadData([])}),300)},O=e=>{w("submitBtnLoadingFn",e)},U=()=>{let e=[];const l=N.value;l&&(e=l.getTableData().visibleData),e=L(e);let a={tableData:e,loadDataConfig:S.value};return JSON.stringify(a)},L=(e=[])=>{let l=[];return e.forEach((e=>{delete e.children,l.push(e)})),l},j=e=>{0==e.row.parentId?V.value=e.row:V.value=null,k.value=e.row},Y=e=>{switch(e.flag){case"group":Q();break;case"condition":z()}},z=async()=>{V.value?await W(V.value):$()},$=async()=>{let e={id:Math.floor(1e6*Math.random()+1),parentId:-1,field:"",title:"",check:null,isCheck:!0,controlType:"text",defaultValue:"",tableName:"",comparator:0,relationSign:0,value:""};const l=N.value;if(k.value&&-1==k.value.parentId){const{row:a}=await l.insertAt(e,k.value);l.setCurrentRow(a)}else{const{row:a}=await l.insertAt(e,-1);l.setCurrentRow(a)}},Q=async()=>{let e={id:Math.floor(1e6*Math.random()+1),parentId:0,field:"",title:"",isCheck:!0,controlType:"text",defaultValue:"",tableName:"",comparator:0,relationSign:0,value:""};const l=N.value,{row:a}=await l.insertAt(e,-1);l.setCurrentRow(a),V.value=a,k.value=a},W=async(e,l)=>{let a=Math.floor(1e6*Math.random()+1);const t=N.value;{const l={id:a,parentId:e.id,field:"",title:"",isCheck:!0,controlType:"text",defaultValue:"",tableName:"",comparator:0,relationSign:0,value:""},{row:o}=await t.insertAt(l,-1);await t.setTreeExpand(e,!0),await t.setCurrentRow(o),k.value=o}},Z=()=>{const e=N.value;e&&e.setAllTreeExpand(!0)},X=e=>{_.value=!1,e==b.optionModel.searchProSettingID&&(_.value=!0),w("disabledDeleteBtnFn",_.value);let l=null,a=b.solutionList.filter((l=>{if(l.CID==e)return l}));return a&&a.length>0&&(l=a[0]),l},ee=()=>{I.value=[];let e=X(b.optionModel.searchProSettingID);if(e){let l=JSON.parse(e.CCONDITION);if(l.tableData){let e=l.tableData;I.value=e.filter((e=>{if(e.field)return e}))}}};return t({reloadData:e=>{const l=N.value;l&&l.reloadData(e)},solutionCID_change:e=>{I.value&&0==I.value.length&&ee(),x.value=!0;let l=X(e);if(l){let e=JSON.parse(l.CCONDITION);e.tableData&&(A.value=e.tableData),e.loadDataConfig&&(S.value=e.loadDataConfig),D.value=l,w("formDataChangeFn",l)}setTimeout((()=>{x.value=!1,Z()}),100)},submitEditDialog:async()=>{const e=N.value;let l=[];if(e&&(l=e.getTableData().visibleData),l.length<=0)return void T.modal.message({message:"数据不能为空",status:"error"});O(!0);let a="/api/SYSTEM/Common/Insert",t=(e=>{let l=window.location.search,a=new RegExp("(^|&)"+e+"=([^&]*)(&|$)","i"),t=l.substr(1).match(a);return null!=t?unescape(t[2]):null})("formName");t||(t=window.location.pathname);let o={};b.solutionCID&&(a="/api/system/Common/Edit",o=Object.assign({},D.value)),o.CPID=t,o.CSCHEME_NAME=b.formSolution.name,o.CVISIBILITY_USER_ID=b.formSolution.region,o.CCONDITION=U(),o.CTEMPLATE_ID=b.solutionCID?b.solutionCID:"",o.CGROUP=b.optionModel.searchProSettingCPARENT,o.CPARENT=b.optionModel.searchProSettingCPARENT,o.CDEFAULT=b.formSolution.defaultOption,delete o.RowIndex;let n={table:"TBL_SYS_ADVANCED_SEARCH",modelJson:JSON.stringify(o)};await P.request({url:a,method:"post",data:n}).then((e=>{e.Success&&(O(!1),M(),setTimeout((()=>{w("submitSuccess",{})}),300),b.solutionCID&&o.CDEFAULT&&(async()=>{if(!b.solutionCID||!b.optionModel.searchProSettingCPARENT)return;let e={ConnId:"",table:"TBL_SYS_ADVANCED_SEARCH",ModelJson:'{"CDEFAULT":false}',where:`CPARENT='${b.optionModel.searchProSettingCPARENT}' AND CID <> ${b.solutionCID}`};await P.request({url:"/api/system/Common/EditBatch",method:"post",data:e}).then((e=>{e.Success}))})())}))}}),(e,l)=>{const t=o("el-option"),f=o("el-select"),h=o("vxe-column"),y=o("el-date-picker"),b=o("el-input-number"),w=o("el-input"),S=o("vxe-button"),D=o("vxe-table");return u(),n("div",K,[i(D,{ref_key:"vxeTableSecondRef",ref:N,"keep-source":"",onCurrentChange:j,loading:x.value,"show-overflow":"",border:"",size:"mini","column-config":{resizable:!0},"row-config":{useKey:!0,keyField:"id",isCurrent:!0,isHover:!0},"edit-config":{trigger:"click",mode:"cell"},"tree-config":{transform:!0,rowField:"id",parentField:"parentId",expandAll:!0},data:A.value,"scroll-y":{enabled:!1}},{default:s((()=>[i(h,{field:"field",title:"参数名称",width:"200","tree-node":"","header-align":"center"},{default:s((({row:e})=>[0!=e.parentId?(u(),n(r,{key:0},[-1==e.parentId?(u(),n("span",G,"+")):d("v-if",!0),i(f,{style:C([{width:-1==e.parentId?"96%":"100%"}]),modelValue:e.field,"onUpdate:modelValue":l=>e.field=l,placeholder:"请选择"},{default:s((()=>[(u(!0),n(r,null,c(I.value.filter((e=>e&&null!=e.field)),((l,a)=>(u(),m(t,{onClick:a=>((e,l)=>{l.controlType=e.controlType,l.title=e.title,l.isCheck=!0,l.tableName=e.tableName,l.controlOptions=e.controlOptions})(l,e),key:a,label:l.title?l.title:l.field,value:l.field||""},null,8,["onClick","label","value"])))),128))])),_:2},1032,["style","modelValue","onUpdate:modelValue"])],64)):(u(),n("span",J,"条件组"))])),_:1}),i(h,{field:"comparator",title:"比较符",width:"150","header-align":"center"},{default:s((({row:e})=>[0!=e.parentId?(u(),m(f,{key:0,modelValue:e.comparator,"onUpdate:modelValue":l=>e.comparator=l,placeholder:"请选择"},{default:s((()=>[(u(!0),n(r,null,c(E.value,((e,l)=>(u(),m(t,{key:l,label:e.label,value:e.value},null,8,["label","value"])))),128))])),_:2},1032,["modelValue","onUpdate:modelValue"])):d("v-if",!0)])),_:1}),i(h,{field:"value",title:"比较值","header-align":"center"},{default:s((({row:e})=>[0!=e.parentId?(u(),n(r,{key:0},["select"==e.controlType?(u(),n(r,{key:0},[d(' <el-select style="width: 100%;" v-model="row.value" placeholder="请选择">\n\t\t\t\t\t\t\t\t<el-option label="比较值1" value="&&" />\n\t\t\t\t\t\t\t\t<el-option label="比较值2" value="||" />\n\t\t\t\t\t\t\t</el-select> ')],64)):"date"==e.controlType?(u(),m(y,{key:1,field:e.field,type:"date",style:{width:"100%"},modelValue:e.value,"onUpdate:modelValue":l=>e.value=l,placeholder:"请选择","value-format":"yyyy-MM-dd"},null,8,["field","modelValue","onUpdate:modelValue"])):"datetime"==e.controlType?(u(),m(y,{key:2,field:e.field,type:"datetime",style:{width:"100%"},modelValue:e.value,"onUpdate:modelValue":l=>e.value=l,placeholder:"请选择","value-format":"yyyy-MM-dd HH:mm:ss"},null,8,["field","modelValue","onUpdate:modelValue"])):"daterange"==e.controlType?(u(),m(y,{key:3,field:e.field,type:"daterange",style:{width:"100%"},modelValue:e.value,"onUpdate:modelValue":l=>e.value=l,placeholder:"请选择","value-format":"yyyy-MM-dd"},null,8,["field","modelValue","onUpdate:modelValue"])):"datetimerange"==e.controlType?(u(),m(y,{key:4,field:e.field,type:"datetimerange",style:{width:"100%"},modelValue:e.value,"onUpdate:modelValue":l=>e.value=l,placeholder:"请选择","value-format":"yyyy-MM-dd HH:mm:ss"},null,8,["field","modelValue","onUpdate:modelValue"])):"reportSelect"==e.controlType?(u(),n(r,{key:5},[d(" 下拉框 "),i(F,{field:e.field,modelValue:e.value,"onUpdate:modelValue":l=>e.value=l,style:{width:"100%"},row:e},null,8,["field","modelValue","onUpdate:modelValue","row"])],64)):"reportSelectTable"==e.controlType?(u(),n(r,{key:6},[d(" 下拉框(表) "),i(H,{field:e.field,fieldName:e.field,modelValue:e.value,"onUpdate:modelValue":l=>e.value=l,style:{width:"100%"},row:e},null,8,["field","fieldName","modelValue","onUpdate:modelValue","row"])],64)):"customSelect"==e.controlType?(u(),n(r,{key:7},[d(" 下拉框(自定义) "),i(R,{field:e.field,modelValue:e.value,"onUpdate:modelValue":l=>e.value=l,style:{width:"100%"},row:e},null,8,["field","modelValue","onUpdate:modelValue","row"])],64)):"customMulSelect"==e.controlType?(u(),n(r,{key:8},[d(" 下拉框(自定义多选) "),i(q,{field:e.field,modelValue:e.value,"onUpdate:modelValue":l=>e.value=l,style:{width:"100%"},row:e},null,8,["field","modelValue","onUpdate:modelValue","row"])],64)):"reportMulSelect"==e.controlType?(u(),n(r,{key:9},[d(" 下拉框(多选) "),i(B,{field:e.field,modelValue:e.value,"onUpdate:modelValue":l=>e.value=l,style:{width:"100%"},row:e},null,8,["field","modelValue","onUpdate:modelValue","row"])],64)):"number"==e.controlType?(u(),m(b,{key:10,field:e.field,style:{width:"100%"},modelValue:e.value,"onUpdate:modelValue":l=>e.value=l},null,8,["field","modelValue","onUpdate:modelValue"])):(u(),m(w,{key:11,field:e.field,modelValue:e.value,"onUpdate:modelValue":l=>e.value=l,placeholder:"请输入"},null,8,["field","modelValue","onUpdate:modelValue"]))],64)):d("v-if",!0)])),_:1}),i(h,{field:"relationSign",title:"关系",width:"70","header-align":"center"},{default:s((({row:e})=>[d(' <template v-if="row.parentId != 0">\n\t\t\t\t\t\t\n\t\t\t\t\t</template> '),i(f,{modelValue:e.relationSign,"onUpdate:modelValue":l=>e.relationSign=l,placeholder:"请选择"},{default:s((()=>[i(t,{label:"并",value:0}),i(t,{label:"或",value:1}),i(t,{label:"无",value:-1})])),_:2},1032,["modelValue","onUpdate:modelValue"])])),_:1}),i(h,{title:"操作",width:"80","header-align":"center",align:"center","show-overflow":""},{default:s((({row:e})=>[v(i(S,{style:{color:"red"},mode:"text",icon:"vxe-icon-delete",onClick:l=>(async e=>{const l=N.value;await l.remove(e);try{V.value&&V.value.parentId&&V.value.parentId==e.parentId&&0==e.parentId&&(V.value=null),k.value&&k.value.id==e.id&&(k.value=null)}catch(e){}})(e)},{default:s((()=>l[0]||(l[0]=[g("删除")]))),_:2,__:[0]},1032,["onClick"]),[[p,!_.value||!a.solutionCID]])])),_:1})])),_:1},8,["loading","data"])])}}};$(".tableTemplateClass[data-v-49d49595],.tableTemplateSecondClass[data-v-49d49595]{margin-right:10px}"),Q.__scopeId="data-v-49d49595",Q.__file="src/components/SearchPro/tableTemplate/second.vue";
2
2
  /*! Element Plus Icons Vue v2.3.1 */
3
3
  var W=w({name:"ArrowDown",__name:"arrow-down",setup:e=>(e,l)=>(u(),n("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[S("path",{fill:"currentColor",d:"M831.872 340.864 512 652.672 192.128 340.864a30.592 30.592 0 0 0-42.752 0 29.12 29.12 0 0 0 0 41.6L489.664 714.24a32 32 0 0 0 44.672 0l340.288-331.712a29.12 29.12 0 0 0 0-41.728 30.592 30.592 0 0 0-42.752 0z"})]))}),Z=w({name:"Delete",__name:"delete",setup:e=>(e,l)=>(u(),n("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[S("path",{fill:"currentColor",d:"M160 256H96a32 32 0 0 1 0-64h256V95.936a32 32 0 0 1 32-32h256a32 32 0 0 1 32 32V192h256a32 32 0 1 1 0 64h-64v672a32 32 0 0 1-32 32H192a32 32 0 0 1-32-32zm448-64v-64H416v64zM224 896h576V256H224zm192-128a32 32 0 0 1-32-32V416a32 32 0 0 1 64 0v320a32 32 0 0 1-32 32m192 0a32 32 0 0 1-32-32V416a32 32 0 0 1 64 0v320a32 32 0 0 1-32 32"})]))}),X=w({name:"RefreshRight",__name:"refresh-right",setup:e=>(e,l)=>(u(),n("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[S("path",{fill:"currentColor",d:"M784.512 230.272v-50.56a32 32 0 1 1 64 0v149.056a32 32 0 0 1-32 32H667.52a32 32 0 1 1 0-64h92.992A320 320 0 1 0 524.8 833.152a320 320 0 0 0 320-320h64a384 384 0 0 1-384 384 384 384 0 0 1-384-384 384 384 0 0 1 643.712-282.88z"})]))}),ee=w({name:"Refresh",__name:"refresh",setup:e=>(e,l)=>(u(),n("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[S("path",{fill:"currentColor",d:"M771.776 794.88A384 384 0 0 1 128 512h64a320 320 0 0 0 555.712 216.448H654.72a32 32 0 1 1 0-64h149.056a32 32 0 0 1 32 32v148.928a32 32 0 1 1-64 0v-50.56zM276.288 295.616h92.992a32 32 0 0 1 0 64H220.16a32 32 0 0 1-32-32V178.56a32 32 0 0 1 64 0v50.56A384 384 0 0 1 896.128 512h-64a320 320 0 0 0-555.776-216.384z"})]))}),le=w({name:"Search",__name:"search",setup:e=>(e,l)=>(u(),n("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[S("path",{fill:"currentColor",d:"m795.904 750.72 124.992 124.928a32 32 0 0 1-45.248 45.248L750.656 795.904a416 416 0 1 1 45.248-45.248zM480 832a352 352 0 1 0 0-704 352 352 0 0 0 0 704"})]))});const ae={class:"drawerClass"},te={class:"flex flex-col"},oe={style:{padding:"5px 0px"},class:"flex justify-between"},ne={class:"flex justify-center"},ue={class:"inline-block text-white w-full px-1.5 text-left"},re={style:{"margin-right":"10px"}},de={class:"flex flex-col"},ie={style:{padding:"5px 0px"},class:"flex justify-between"},se={class:"flex justify-center"},ce={class:"inline-block text-white w-full px-1.5 text-left"},me={class:"inline-block text-white w-full px-1.5 text-left"},ve={style:{"margin-top":"10px"}},pe={class:"flex flex-col"},fe={style:{padding:"5px 0px"},class:"flex justify-between"},he={class:"flex justify-center"},ge={class:"inline-block text-white w-full px-1.5 text-left"},ye={style:{"margin-right":"10px"}},be={class:"flex flex-col"},Ce={style:{padding:"5px 0px"},class:"flex justify-between"},we={class:"flex justify-center"},Se={class:"inline-block text-white w-full px-1.5 text-left"},_e={class:"inline-block text-white w-full px-1.5 text-left"},xe={style:{"margin-top":"10px"}};var De=Object.assign({name:"drawerComponent"},{__name:"index",props:{config:{type:Object,default:()=>({cleanCache:!1,tableId:null,CPARENT:"",closeAfterSearchPro:!0})},type:{type:String,default:"drawer"}},emits:["update:drawerShow","queryFunc"],setup(e,{expose:a,emit:d}){const f=e,b=d;let w=window.location.href;const k=l({}),N=l(null),M=l(!1),O=l(null),U=l(null),L=l(!1),F=l(!1),R=l(!1),q=l([]),H=l(!1),B=l(!1),j=l(null),Y=l("First"),$=l(!1),K=l(!1),G=l(!1);l(!1);const J=l(0),De=l("");l("");const Ve=l([]),Te=l(null),ke=l(!1),Ee=_({hash:"",flag:""}),Ie=_({name:"",region:0,defaultOption:!1}),Ae=_({name:[{required:!0,message:"请输入方案名称",trigger:"blur"}]}),Ne=l(null),Me=l(null),Oe=l(null);l(I("multiOrganization"));const Ue=l(I("userInfo")||A("userInfo")||{CID:null});t((()=>{"tabs"==f.type&&(De.value=f.config.tableId,j.value={searchProSettingCPARENT:f.config.CPARENT,searchProSettingID:f.config.tableId,cleanCache:f.config.cleanCache||!1,closeAfterSearchPro:f.config.closeAfterSearchPro},h((()=>{Fe(j.value.cleanCache)})))})),x((()=>{k.value={}}));const Pe=()=>{console.log("此操作将删除高级查询配置数据, 是否继续?"),Le()},Le=async()=>{B.value=!0;let e={table:"TBL_SYS_ADVANCED_SEARCH",CID:U.value};await P.request({url:"/api/SYSTEM/Common/Remove",method:"post",data:e}).then((e=>{e.Success&&(B.value=!1,console.log(e.Content?e.Content:"执行成功"),J.value=Math.ceil(1e4*Math.random()),U.value=null,Object.assign(Ie,{name:"",region:0,defaultOption:!1}),Ne.value&&Ne.value.clearValidate(),Fe(!0))})).catch((e=>{B.value=!1,console.error("Delete solution error:",e)}))},Fe=async(e=!1)=>{let l=$e();if(!e&&l&&l.length>0){$.value=!0;let e=qe(l);try{let l=k.value[w].lastTimeSearchSolutionCID;l&&(e=He(l))}catch(e){}if(e){let l=JSON.parse(e.CCONDITION);l.tableData&&(Ve.value=Re(l.tableData)),l.loadDataConfig&&(Te.value=l.loadDataConfig)}return void setTimeout((()=>{$.value=!1}),1e3)}$.value=!0;let a={table:"TBL_SYS_ADVANCED_SEARCH",where:`CPARENT='${j.value.searchProSettingCPARENT}'`};await P.request({url:"/api/SYSTEM/Common/PageQuery",method:"post",data:a}).then((e=>{if(e.Success&&e.Datas&&e.Datas.length>0){q.value=e.Datas,k.value[w]={solutionList:q.value};let l=qe();if(l){let e=JSON.parse(l.CCONDITION);e.tableData&&(Ve.value=Re(e.tableData)),e.loadDataConfig&&(Te.value=e.loadDataConfig)}}})).catch((e=>{console.error("Load solution list error:",e)})),$.value=!1},Re=(e=[],l=!1)=>{let a=[],t=ze();return t&&!l?e.forEach((e=>{t[e.id]&&t[e.id].hasOwnProperty("isCheck")?e.isCheck=t[e.id].isCheck:e.isCheck=!0,e.value=t[e.id].value,e.comparator=t[e.id].comparator,e.relationSign=t[e.id].relationSign,a.push(e)})):e.forEach((e=>{if(e.isCheck=!0,e.defaultValue)switch(e.controlType){case"number":e.value=e.defaultValue?Number(e.defaultValue):null;break;case"date":case"datetime":e.value=Je(e.controlType,e.defaultValue);break;case"daterange":case"datetimerange":e.defaultValue&&(e.value=((e,l)=>{const a=new Date,t=new Date;try{let o=[t,a],n="",u=l.split("#");switch(e){case"daterange":n="YYYY-MM-DD";break;case"datetimerange":n="YYYY-MM-DD HH:mm:ss";break;default:n=""}if(u[0])if("curdate"==u[0])o[0]=E().format(n);else if(u[0].includes("-")){let e=u[0].split("-");o[0]=E()[e[0]](Number(e[1]),e[2]).format(n)}else o[0]=t;if(u[1])if("curdate"==u[1])o[1]=E().format(n);else if(u[1].includes("-")){let e=u[1].split("-");o[1]=E()[e[0]](Number(e[1]),e[2]).format(n)}else o[1]=a;return o}catch(e){return[t,a]}})(e.controlType,e.defaultValue));break;default:e.value=e.defaultValue}a.push(e)})),a},qe=(e=[])=>{0==e.length&&(e=q.value);let l=null,a=e.filter((e=>{if(e.CDEFAULT)return O.value=e.CID,e}));return l=a&&a.length>0?a[0]:He(j.value.searchProSettingID,e),l},He=(e,l=[])=>{0==l.length&&(l=q.value);let a=null,t=l.filter((l=>{if(l.CID==e)return l}));return t&&t.length>0&&(a=t[0]),a},Be=()=>{Ne.value.validate((e=>{if(!e)return!1;{let e=Oe.value;e&&e.submitEditDialog()}}))},je=e=>{H.value=e},Ye=e=>{},ze=()=>{try{return k.value[w]?.searchParams||null}catch(e){return null}},$e=()=>{try{return k.value[w]?.solutionList||[]}catch(e){return[]}},Ke=e=>{Qe()},Ge=()=>{Fe(!0)},Je=(e,l)=>l,Qe=()=>{M.value=!0,clearTimeout(N.value),N.value=setTimeout((()=>{let e=Ze(),l=(e=>{let l={};return e.forEach((e=>{let a={id:e.id,field:e.field,isCheck:e.isCheck,value:e.value,comparator:e.comparator,relationSign:e.relationSign};l[e.id]=a})),l})(Ze("visibleData"));k.value[w].searchParams=l,k.value[w].lastTimeSearchSolutionCID=O.value;let a=[{ConditionalList:We(e)}];M.value=!1;let t={fullPath:w,conditionalList:a};j.value.closeAfterSearchPro&&(K.value=!1),console.log("setGlobalState:",{type:"searchProDrawerBox",postData:t}),b("queryFunc",t)}),1e3)},We=e=>{let l=[];return e.forEach(((e,a)=>{if(!e.isCheck&&e.children&&0==e.children.length)return;let t=e.value;if("reportMulSelect"!=e.controlType&&"customMulSelect"!=e.controlType||(t=t.toString()),0!=e.parentId)if("daterange"==e.controlType||"datetimerange"==e.controlType){let o={Key:0==a?-1:e.relationSign,Value:{ConditionalList:[{Key:0,Value:{FieldName:e.tableName?e.tableName+"."+e.field:e.field,FieldValue:t[0],ConditionalType:3}},{Key:0,Value:{FieldName:e.tableName?e.tableName+"."+e.field:e.field,FieldValue:t[1],ConditionalType:5}}]}};t&&t[0]&&t[1]&&l.push(o)}else{let o={Key:0==a?-1:e.relationSign,Value:{FieldName:e.tableName?e.tableName+"."+e.field:e.field,FieldValue:t,ConditionalType:e.comparator}};t&&l.push(o)}else if(0==e.parentId&&e.children.length>0){let t=We(e.children),o={Key:0==a?-1:e.relationSign,Value:{ConditionalList:t}};t&&t.length>0&&l.push(o)}})),l},Ze=(e="fullData")=>{let l=[];try{let a=Me.value?.$refs?.vxeTableRef;l=a.getTableData()[e]}catch(e){return l}return l},Xe=e=>{G.value=!0,Ee.hash=Math.ceil(1e4*Math.random()),Ee.flag=e},el=()=>{k.value[w]={},J.value=Math.ceil(1e4*Math.random()),U.value=null,Object.assign(Ie,{name:"",region:0,defaultOption:!1}),Ne.value&&Ne.value.clearValidate()},ll=()=>{H.value=!1,$.value=!1,b("update:drawerShow",!1),Object.assign(Ie,{name:"",region:0,defaultOption:!1})},al=e=>{O.value=e;let l=He(e);if(l){let e=JSON.parse(l.CCONDITION);e.tableData&&(Ve.value=Re(e.tableData,!0)),e.loadDataConfig&&(Te.value=e.loadDataConfig)}},tl=e=>{Ne.value.clearValidate(),U.value=e;const l=He(e);l&&(Ie.name=l.CSCHEME_NAME||"",Ie.region=l.CVISIBLE||0,Ie.defaultOption=!!l.CDEFAULT);let a=Oe.value;a&&a.solutionCID_change(e)},ol=e=>{},nl=e=>{L.value=e},ul=e=>{Fe(!0),Object.assign(Ie,{name:"",region:0,defaultOption:!1})};return a({openDrawer:e=>{e.tableId?(De.value=e.tableId,j.value={searchProSettingCPARENT:e.CPARENT,searchProSettingID:e.tableId,cleanCache:e.cleanCache||!1,closeAfterSearchPro:e.closeAfterSearchPro},K.value=!0,h((()=>{Fe(j.value.cleanCache)}))):T.modal.message({message:"未配置高级搜索ID",status:"error"})},queryFunc:Qe,resetQuery:Ge,closeDrawer:ll}),(e,l)=>{const a=o("el-icon"),t=o("el-dropdown-item"),d=o("el-dropdown-menu"),h=o("el-dropdown"),b=o("el-button"),w=o("el-tab-pane"),_=o("el-input"),x=o("el-form-item"),T=o("el-option"),k=o("el-select"),E=o("el-checkbox"),I=o("el-form"),A=o("el-tabs"),N=o("el-drawer");return u(),n("div",ae,["drawer"==f.type?(u(),m(N,{key:0,"close-on-press-escape":"",title:"高级查询",modelValue:K.value,"onUpdate:modelValue":l[9]||(l[9]=e=>K.value=e),direction:"rtl",size:"800px","destroy-on-close":!0,onClose:ll,wrapperClosable:!0},{default:s((()=>[i(A,{style:{"margin-left":"10px"},modelValue:Y.value,"onUpdate:modelValue":l[8]||(l[8]=e=>Y.value=e),onTabClick:Ye},{default:s((()=>[i(w,{label:"查询条件",name:"First"},{default:s((()=>[S("div",te,[S("div",oe,[S("div",ne,[i(h,{onCommand:al,class:"flex items-center px-2.5 py-1.5 mr-2.5 bg-blue-500 rounded text-center cursor-pointer"},{dropdown:s((()=>[i(d,null,{default:s((()=>[(u(!0),n(r,null,c(q.value,((e,l)=>(u(),m(t,{key:l,command:e.CID},{default:s((()=>[S("i",{style:C({color:e.CID==O.value?"green":""}),class:V([e.CID==O.value?"vxe-icon-check":"vxe-icon-minus"])},null,6),S("span",{style:C({color:e.CDEFAULT?"red":""})},y(e.CSCHEME_NAME),5)])),_:2},1032,["command"])))),128))])),_:1})])),default:s((()=>[S("span",ue,[i(a,null,{default:s((()=>[i(D(W))])),_:1}),l[19]||(l[19]=g(" 选择方案 "))])])),_:1})]),S("div",re,[i(b,{loading:M.value,onClick:l[0]||(l[0]=e=>Qe()),type:"primary"},{default:s((()=>[i(a,null,{default:s((()=>[i(D(le))])),_:1}),l[20]||(l[20]=g(" 查询 "))])),_:1,__:[20]},8,["loading"]),i(b,{onClick:l[1]||(l[1]=e=>Ge()),type:"warning"},{default:s((()=>[i(a,null,{default:s((()=>[i(D(X))])),_:1}),l[21]||(l[21]=g(" 重置 "))])),_:1,__:[21]})])]),S("div",null,[i(z,{ref_key:"TableFirstTemplateRef",ref:Me,conditionConfig:Ee,isClearTreeData:J.value,tableOptions:Ve.value,tableDataLoading:$.value,isAdd:ke.value,onHandleEnterEvent:Ke},null,8,["conditionConfig","isClearTreeData","tableOptions","tableDataLoading","isAdd"])])])])),_:1}),i(w,{label:"新增方案",name:"Second"},{default:s((()=>[S("div",de,[S("div",ie,[S("div",se,[i(h,{onCommand:tl,class:"flex items-center px-2.5 py-1.5 mr-2.5 bg-blue-500 rounded text-center cursor-pointer"},{dropdown:s((()=>[i(d,null,{default:s((()=>[(u(!0),n(r,null,c(q.value,((e,l)=>(u(),m(t,{key:l,command:e.CID},{default:s((()=>[S("i",{style:C({color:e.CID==U.value?"green":""}),class:V([e.CID==U.value?"vxe-icon-check":"vxe-icon-minus"])},null,6),S("span",{style:C({color:e.CDEFAULT?"red":""})},y(e.CSCHEME_NAME),5)])),_:2},1032,["command"])))),128))])),_:1})])),default:s((()=>[S("span",ce,[i(a,null,{default:s((()=>[i(D(W))])),_:1}),l[22]||(l[22]=g(" 选择方案 "))])])),_:1}),i(h,{disabled:R.value&&!!U.value,onCommand:Xe,class:"flex items-center px-2.5 py-1.5 mr-2.5 bg-blue-500 rounded text-center cursor-pointer"},{dropdown:s((()=>[i(d,null,{default:s((()=>[i(t,{command:"group"},{default:s((()=>l[24]||(l[24]=[g("条件组")]))),_:1,__:[24]}),i(t,{command:"condition"},{default:s((()=>l[25]||(l[25]=[g("条件")]))),_:1,__:[25]})])),_:1})])),default:s((()=>[S("span",me,[i(a,null,{default:s((()=>[i(D(W))])),_:1}),l[23]||(l[23]=g(" 新增条件 "))])])),_:1},8,["disabled"]),i(b,{type:"warning",onClick:l[2]||(l[2]=e=>el())},{default:s((()=>[i(a,null,{default:s((()=>[i(D(ee))])),_:1}),l[26]||(l[26]=g("清空 "))])),_:1,__:[26]}),v(i(b,{disabled:L.value,onClick:l[3]||(l[3]=e=>Pe()),type:"danger",loading:B.value},{default:s((()=>[i(a,null,{default:s((()=>[i(D(Z))])),_:1}),l[27]||(l[27]=g(" 删除 "))])),_:1,__:[27]},8,["disabled","loading"]),[[p,!!U.value]]),i(b,{disabled:F.value&&!!U.value,onClick:l[4]||(l[4]=e=>Be()),loading:H.value,type:"success"},{default:s((()=>[l[28]||(l[28]=S("i",{class:"vxe-icon-save"},null,-1)),l[29]||(l[29]=g("  ")),v(S("span",null,"新增",512),[[p,!U.value]]),v(S("span",null,"更新",512),[[p,!!U.value]])])),_:1,__:[28,29]},8,["disabled","loading"])]),l[30]||(l[30]=S("div",{style:{"margin-right":"10px"}},null,-1))]),S("div",ve,[i(I,{ref_key:"searchSolutionRef",ref:Ne,inline:!0,rules:Ae,model:Ie},{default:s((()=>[i(x,{label:"方案名称",prop:"name"},{default:s((()=>[i(_,{readonly:F.value&&!!U.value,style:{width:"160px"},modelValue:Ie.name,"onUpdate:modelValue":l[5]||(l[5]=e=>Ie.name=e),placeholder:"方案名称",clear:""},null,8,["readonly","modelValue"])])),_:1}),i(x,{label:"可见性",prop:"region"},{default:s((()=>[i(k,{disabled:"",userId:Ue.value?.CID,style:{width:"160px"},modelValue:Ie.region,"onUpdate:modelValue":l[6]||(l[6]=e=>Ie.region=e),placeholder:"请选择可见性"},{default:s((()=>[i(T,{label:"仅有我",value:Ue.value?.CID},null,8,["value"]),i(T,{label:"全局",value:0})])),_:1},8,["userId","modelValue"])])),_:1}),i(x,{label:"设为默认"},{default:s((()=>[i(E,{modelValue:Ie.defaultOption,"onUpdate:modelValue":l[7]||(l[7]=e=>Ie.defaultOption=e)},null,8,["modelValue"])])),_:1})])),_:1},8,["rules","model"])]),S("div",null,[i(Q,{ref_key:"TableSecondTemplateRef",ref:Oe,conditionConfig:Ee,isClearTreeData:J.value,solutionList:q.value,optionModel:j.value,formSolution:Ie,onFormDataChangeFn:ol,onDisabledDeleteBtnFn:nl,onSubmitSuccess:ul,onSubmitBtnLoadingFn:je,solutionCID:U.value},null,8,["conditionConfig","isClearTreeData","solutionList","optionModel","formSolution","solutionCID"])])])])),_:1})])),_:1},8,["modelValue"])])),_:1},8,["modelValue"])):(u(),m(A,{key:1,style:{"margin-left":"10px"},modelValue:Y.value,"onUpdate:modelValue":l[18]||(l[18]=e=>Y.value=e),onTabClick:Ye},{default:s((()=>[i(w,{label:"查询条件",name:"First"},{default:s((()=>[S("div",pe,[S("div",fe,[S("div",he,[i(h,{onCommand:al,class:"flex items-center px-2.5 py-1.5 mr-2.5 bg-blue-500 rounded text-center cursor-pointer"},{dropdown:s((()=>[i(d,null,{default:s((()=>[(u(!0),n(r,null,c(q.value,((e,l)=>(u(),m(t,{key:l,command:e.CID},{default:s((()=>[S("i",{style:C({color:e.CID==O.value?"green":""}),class:V([e.CID==O.value?"vxe-icon-check":"vxe-icon-minus"])},null,6),S("span",{style:C({color:e.CDEFAULT?"red":""})},y(e.CSCHEME_NAME),5)])),_:2},1032,["command"])))),128))])),_:1})])),default:s((()=>[S("span",ge,[i(a,null,{default:s((()=>[i(D(W))])),_:1}),l[31]||(l[31]=g(" 选择方案 "))])])),_:1})]),S("div",ye,[i(b,{loading:M.value,onClick:l[10]||(l[10]=e=>Qe()),type:"primary"},{default:s((()=>[i(a,null,{default:s((()=>[i(D(le))])),_:1}),l[32]||(l[32]=g(" 查询 "))])),_:1,__:[32]},8,["loading"]),i(b,{onClick:l[11]||(l[11]=e=>Ge()),type:"warning"},{default:s((()=>[i(a,null,{default:s((()=>[i(D(X))])),_:1}),l[33]||(l[33]=g(" 重置 "))])),_:1,__:[33]})])]),S("div",null,[i(z,{ref_key:"TableFirstTemplateRef",ref:Me,conditionConfig:Ee,isClearTreeData:J.value,tableOptions:Ve.value,tableDataLoading:$.value,isAdd:ke.value,onHandleEnterEvent:Ke},null,8,["conditionConfig","isClearTreeData","tableOptions","tableDataLoading","isAdd"])])])])),_:1}),i(w,{label:"新增方案",name:"Second"},{default:s((()=>[S("div",be,[S("div",Ce,[S("div",we,[i(h,{onCommand:tl,class:"flex items-center px-2.5 py-1.5 mr-2.5 bg-blue-500 rounded text-center cursor-pointer"},{dropdown:s((()=>[i(d,null,{default:s((()=>[(u(!0),n(r,null,c(q.value,((e,l)=>(u(),m(t,{key:l,command:e.CID},{default:s((()=>[S("i",{style:C({color:e.CID==U.value?"green":""}),class:V([e.CID==U.value?"vxe-icon-check":"vxe-icon-minus"])},null,6),S("span",{style:C({color:e.CDEFAULT?"red":""})},y(e.CSCHEME_NAME),5)])),_:2},1032,["command"])))),128))])),_:1})])),default:s((()=>[S("span",Se,[i(a,null,{default:s((()=>[i(D(W))])),_:1}),l[34]||(l[34]=g(" 选择方案 "))])])),_:1}),i(h,{disabled:R.value&&!!U.value,onCommand:Xe,class:"flex items-center px-2.5 py-1.5 mr-2.5 bg-blue-500 rounded text-center cursor-pointer"},{dropdown:s((()=>[i(d,null,{default:s((()=>[i(t,{command:"group"},{default:s((()=>l[36]||(l[36]=[g("条件组")]))),_:1,__:[36]}),i(t,{command:"condition"},{default:s((()=>l[37]||(l[37]=[g("条件")]))),_:1,__:[37]})])),_:1})])),default:s((()=>[S("span",_e,[i(a,null,{default:s((()=>[i(D(W))])),_:1}),l[35]||(l[35]=g(" 新增条件 "))])])),_:1},8,["disabled"]),i(b,{type:"warning",onClick:l[12]||(l[12]=e=>el())},{default:s((()=>[i(a,null,{default:s((()=>[i(D(ee))])),_:1}),l[38]||(l[38]=g("清空 "))])),_:1,__:[38]}),v(i(b,{disabled:L.value,onClick:l[13]||(l[13]=e=>Pe()),type:"danger",loading:B.value},{default:s((()=>[i(a,null,{default:s((()=>[i(D(Z))])),_:1}),l[39]||(l[39]=g(" 删除 "))])),_:1,__:[39]},8,["disabled","loading"]),[[p,!!U.value]]),i(b,{disabled:F.value&&!!U.value,onClick:l[14]||(l[14]=e=>Be()),loading:H.value,type:"success"},{default:s((()=>[l[40]||(l[40]=S("i",{class:"vxe-icon-save"},null,-1)),l[41]||(l[41]=g("  ")),v(S("span",null,"新增",512),[[p,!U.value]]),v(S("span",null,"更新",512),[[p,!!U.value]])])),_:1,__:[40,41]},8,["disabled","loading"])]),l[42]||(l[42]=S("div",{style:{"margin-right":"10px"}},null,-1))]),S("div",xe,[i(I,{ref_key:"searchSolutionRef",ref:Ne,inline:!0,rules:Ae,model:Ie},{default:s((()=>[i(x,{label:"方案名称",prop:"name"},{default:s((()=>[i(_,{readonly:F.value&&!!U.value,style:{width:"160px"},modelValue:Ie.name,"onUpdate:modelValue":l[15]||(l[15]=e=>Ie.name=e),placeholder:"方案名称",clear:""},null,8,["readonly","modelValue"])])),_:1}),i(x,{label:"可见性",prop:"region"},{default:s((()=>[i(k,{disabled:"",userId:Ue.value?.CID,style:{width:"160px"},modelValue:Ie.region,"onUpdate:modelValue":l[16]||(l[16]=e=>Ie.region=e),placeholder:"请选择可见性"},{default:s((()=>[i(T,{label:"仅有我",value:Ue.value?.CID},null,8,["value"]),i(T,{label:"全局",value:0})])),_:1},8,["userId","modelValue"])])),_:1}),i(x,{label:"设为默认"},{default:s((()=>[i(E,{modelValue:Ie.defaultOption,"onUpdate:modelValue":l[17]||(l[17]=e=>Ie.defaultOption=e)},null,8,["modelValue"])])),_:1})])),_:1},8,["rules","model"])]),S("div",null,[i(Q,{ref_key:"TableSecondTemplateRef",ref:Oe,conditionConfig:Ee,isClearTreeData:J.value,solutionList:q.value,optionModel:j.value,formSolution:Ie,onFormDataChangeFn:ol,onDisabledDeleteBtnFn:nl,onSubmitSuccess:ul,onSubmitBtnLoadingFn:je,solutionCID:U.value},null,8,["conditionConfig","isClearTreeData","solutionList","optionModel","formSolution","solutionCID"])])])])),_:1})])),_:1},8,["modelValue"]))])}}});$(".drawerClass [data-v-c8aa8fb0] .el-drawer__header{align-items:center;border-bottom:1px solid #dcdfe6!important;color:#72767b;display:flex;height:39px;margin-bottom:10px!important;padding:5px 10px}.drawerClass [data-v-c8aa8fb0] .el-tabs__header{margin:0!important}"),De.__scopeId="data-v-c8aa8fb0",De.__file="src/components/SearchPro/index.vue";export{De as default};
@@ -0,0 +1 @@
1
+ import e from"./index2.js";import{render as o}from"./index3.js";e.render=o,e.__scopeId="data-v-0c7cf755",e.__file="src/components/DhtmlxGanttPro/index.vue";export{e as default};
@@ -0,0 +1 @@
1
+ import{ref as e,watch as t,onMounted as a,nextTick as n,onBeforeUnmount as l}from"vue";import{gantt as d}from"dhtmlx-gantt";var r={name:"DhtmlxGanttPro",props:{width:{type:[String,Number],default:"100%"},height:{type:[String,Number],default:"500px"},data:{type:Array,default:()=>[]},links:{type:Array,default:()=>[]},config:{type:Object,default:()=>({})},readonly:{type:Boolean,default:!1},locale:{type:String,default:"cn"},theme:{type:String,default:"default"}},emits:["task-click","task-dblclick","task-change","task-add","task-delete","data-loaded","data-error","view-change","scale-change"],setup(r,{emit:s}){const o=e(null);let c=!1;const i=()=>({date_format:"%Y-%m-%d",scale_unit:"day",date_scale:"%m/%d",subscales:[{unit:"month",step:1,date:"%Y年%m月"}],columns:[{name:"text",label:"任务名称",width:150,tree:!0},{name:"start_date",label:"开始时间",width:80},{name:"duration",label:"工期",width:60},{name:"progress",label:"进度",width:60}],...r.config}),k=async()=>{if(!c&&o.value)try{o.value.innerHTML="";const e=i();Object.assign(d.config,e),"cn"===r.locale&&Object.assign(d.locale,"cn"===r.locale?{date:{month_full:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],month_short:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],day_full:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],day_short:["日","一","二","三","四","五","六"]},labels:{new_task:"新任务",icon_save:"保存",icon_cancel:"取消",icon_details:"详细信息",icon_edit:"编辑",icon_delete:"删除",confirm_closing:"",confirm_deleting:"确定删除任务吗?",section_description:"描述",section_time:"时间段",section_type:"类型"}}:{}),r.readonly&&(d.config.readonly=!0),h(),await n(),d.init(o.value),c=!0,r.data.length>0&&f(),s("data-loaded",{data:r.data,links:r.links})}catch(e){console.error("DhtmlxGanttPro 初始化失败:",e),s("data-error",e)}},h=()=>{d.attachEvent("onTaskClick",((e,t)=>{const a=d.getTask(e);return s("task-click",{task:a,event:t}),!0})),d.attachEvent("onTaskDblClick",((e,t)=>{const a=d.getTask(e);return s("task-dblclick",{task:a,event:t}),!r.readonly})),d.attachEvent("onAfterTaskUpdate",((e,t)=>{s("task-change",{id:e,task:t})})),d.attachEvent("onAfterTaskAdd",((e,t)=>{s("task-add",{id:e,task:t})})),d.attachEvent("onAfterTaskDelete",(e=>{s("task-delete",{id:e})})),d.attachEvent("onViewChange",(e=>{s("view-change",{mode:e})})),d.attachEvent("onScaleConfigChange",(()=>{s("scale-change")}))},f=()=>{if(c)try{d.clearAll(),d.parse({data:r.data,links:r.links})}catch(e){console.error("DhtmlxGanttPro 数据加载失败:",e),s("data-error",e)}};t((()=>r.readonly),(e=>{c&&(d.config.readonly=e,d.render())})),a((()=>{n((()=>{k()}))})),l((()=>{o.value&&(o.value.innerHTML=""),c=!1}));return{ganttContainer:o,...{getGanttInstance:()=>d,refresh:()=>{if(c){const e=i();Object.assign(d.config,e),f(),d.render()}},getSelectedTask:()=>d.getSelectedTask(),addTask:e=>{if(c&&!r.readonly)return d.addTask(e)},updateTask:(e,t)=>{if(c&&!r.readonly)return d.updateTask(e,t)},deleteTask:e=>{if(c&&!r.readonly)return d.deleteTask(e)},fitToTask:()=>{c&&d.showTask(d.getTaskByIndex(0).id)}}}}};export{r as default};
@@ -0,0 +1 @@
1
+ import{createElementBlock as t,openBlock as n,createElementVNode as i,normalizeStyle as e}from"vue";const r={class:"dhtmlx-gantt-pro"};function o(o,a,h,l,s,c){return n(),t("div",r,[i("div",{ref:"ganttContainer",style:e({width:h.width,height:h.height}),class:"gantt-container"},null,4)])}export{o as render};
@@ -1 +1 @@
1
- import{computed as e,useAttrs as n,ref as r,resolveComponent as o,createElementBlock as l,openBlock as s,Fragment as t,createCommentVNode as a,createVNode as u,mergeProps as p,createSlots as i,renderList as m,withCtx as c,renderSlot as f,normalizeProps as d,guardReactiveProps as v}from"vue";var g={__name:"index",props:{columns:Array,data:Array,proOptions:{type:Object,default:()=>({})}},setup(g,{expose:x}){const y=g,O=e((()=>y.proOptions.align?y.columns?.map((e=>({...e,align:e.align||y.proOptions.align}))):y.columns)),_=n(),b={border:!0,stripe:!0,size:"small"},A=e((()=>({...b,...y,..._,columns:O.value}))),$=r(null);return x({Instance:function(){return $.value}}),(e,n)=>{const r=o("vxe-grid");return s(),l(t,null,[a(" 透传所有属性,合并扩展功能 "),u(r,p({ref_key:"vxeGirdProRef",ref:$},A.value),i({_:2},[m(e.$slots,((n,r)=>({name:r,fn:c((n=>[f(e.$slots,r,d(v(n)))]))})))]),1040)],2112)}}};export{g as default};
1
+ import{computed as e,useAttrs as n,ref as r,resolveComponent as o,createElementBlock as t,openBlock as a,Fragment as l,createCommentVNode as s,createVNode as u,mergeProps as p,createSlots as i,renderList as c,withCtx as m,renderSlot as f,normalizeProps as d,guardReactiveProps as v}from"vue";var g={__name:"index",props:{columns:Array,data:Array,proOptions:{type:Object,default:()=>({})}},setup(g,{expose:x}){const y=g,O=e((()=>y.proOptions.align?y.columns?.map((e=>({...e,align:e.align||y.proOptions.align}))):y.columns)),_=n(),b={border:!0,stripe:!0},A=e((()=>({...b,...y,..._,columns:O.value}))),$=r(null);return x({Instance:function(){return $.value}}),(e,n)=>{const r=o("vxe-grid");return a(),t(l,null,[s(" 透传所有属性,合并扩展功能 "),u(r,p({ref_key:"vxeGirdProRef",ref:$},A.value),i({_:2},[c(e.$slots,((n,r)=>({name:r,fn:m((n=>[f(e.$slots,r,d(v(n)))]))})))]),1040)],2112)}}};export{g as default};
@@ -1 +1 @@
1
- var a={baseUrl:{dev:"http://61.144.186.197:19719/",pro:"/"}};export{a as default};
1
+ var a={baseUrl:{dev:"http://www.cimom.cn:19719/",pro:"/"}};export{a as default};
@@ -1 +1 @@
1
- import"../components/HelloPlugin.vue/index.js";import"../components/HelloWorld.vue/index.js";import"../components/VxeGridPro/index.vue/index.js";import"../components/VxeTablePro/index.vue/index.js";import"../components/VxeModalPro/index.vue/index.js";import"../components/SearchPro/index.vue/index.js";import o from"../components/HelloPlugin.vue/index2.js";import e from"../components/HelloWorld.vue/index2.js";import n from"../components/VxeGridPro/index.vue/index2.js";import r from"../components/VxeTablePro/index.vue/index2.js";import i from"../components/VxeModalPro/index.vue/index2.js";import m from"../components/SearchPro/index.vue/index2.js";var l={install(l){l.component("HelloPlugin",o),l.component("HelloWorld",e),l.component("VxeGridPro",n),l.component("VxeTablePro",r),l.component("VxeModalPro",i),l.component("SearchPro",m)}};export{o as HelloPlugin,e as HelloWorld,m as SearchPro,n as VxeGridPro,i as VxeModalPro,r as VxeTablePro,l as default};
1
+ import"../components/HelloPlugin.vue/index.js";import"../components/HelloWorld.vue/index.js";import"../components/VxeGridPro/index.vue/index.js";import"../components/VxeTablePro/index.vue/index.js";import"../components/VxeModalPro/index.vue/index.js";import"../components/SearchPro/index.vue/index.js";import"../components/DhtmlxGanttPro/index.vue/index.js";import o from"../components/HelloPlugin.vue/index2.js";import e from"../components/HelloWorld.vue/index2.js";import n from"../components/VxeGridPro/index.vue/index2.js";import r from"../components/VxeTablePro/index.vue/index2.js";import t from"../components/VxeModalPro/index.vue/index2.js";import i from"../components/SearchPro/index.vue/index2.js";import m from"../components/DhtmlxGanttPro/index.vue/index2.js";var x={install(x){x.component("HelloPlugin",o),x.component("HelloWorld",e),x.component("VxeGridPro",n),x.component("VxeTablePro",r),x.component("VxeModalPro",t),x.component("SearchPro",i),x.component("DhtmlxGanttPro",m)}};export{m as DhtmlxGanttPro,o as HelloPlugin,e as HelloWorld,i as SearchPro,n as VxeGridPro,t as VxeModalPro,r as VxeTablePro,x as default};
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cimom/ci-web-plugins-commom",
3
3
  "private": false,
4
- "version": "1.0.14",
4
+ "version": "1.0.15",
5
5
  "license": "MIT",
6
6
  "author": {
7
7
  "name": "Andy Huang",
@@ -22,7 +22,8 @@
22
22
  "axios": "^1.10.0",
23
23
  "dayjs": "^1.11.13",
24
24
  "element-plus": "^2.10.2",
25
- "vxe-table": "4.13.37"
25
+ "vxe-table": "4.13.37",
26
+ "dhtmlx-gantt": "^8.0.11"
26
27
  },
27
28
  "devDependencies": {
28
29
  "@rollup/plugin-alias": "^5.1.1",
@@ -71,6 +72,9 @@
71
72
  "./SearchPro": {
72
73
  "import": "./dist/SearchPro/index.js"
73
74
  },
75
+ "./DhtmlxGanttPro": {
76
+ "import": "./dist/DhtmlxGanttPro/index.js"
77
+ },
74
78
  "./dist/CI.Web.Plugins.Commom.css": "./dist/CI.Web.Plugins.Commom.css",
75
79
  "./css": "./dist/CI.Web.Plugins.Commom.css"
76
80
  },
@@ -81,6 +85,7 @@
81
85
  "dayjs": "^1.11.13",
82
86
  "element-plus": "^2.10.2",
83
87
  "vue": "^3.5.13",
84
- "vxe-table": "4.13.37"
88
+ "vxe-table": "4.13.37",
89
+ "dhtmlx-gantt": "^8.0.11"
85
90
  }
86
91
  }