@sy-common/organize-select-help 1.0.0-beta.62 → 1.0.0-beta.63

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.
Files changed (2) hide show
  1. package/package.json +1 -1
  2. package/src/index.vue +164 -31
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sy-common/organize-select-help",
3
- "version": "1.0.0-beta.62",
3
+ "version": "1.0.0-beta.63",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "author": "lambo",
package/src/index.vue CHANGED
@@ -7,6 +7,7 @@
7
7
  width="1180"
8
8
  :mask-closable="false"
9
9
  class="modal-tree"
10
+ :fullscreen="true"
10
11
  >
11
12
  <div slot="header" class="header-text"><Icon type="md-information" class="icon-tip" />人员选择</div>
12
13
  <div class="content-container">
@@ -1661,29 +1662,59 @@ export default {
1661
1662
 
1662
1663
  .staff-left-right-layout {
1663
1664
  display: flex;
1664
- height: 650px !important;
1665
+ // 适配全屏:使用视口高度百分比 + 最小高度限制
1666
+ height: calc(100vh - 180px) !important;
1667
+ min-height: 500px !important;
1665
1668
  gap: 15px;
1666
1669
  padding: 0 5px;
1667
1670
  width: 100%;
1668
1671
  box-sizing: border-box;
1669
1672
  flex-wrap: nowrap !important;
1670
1673
 
1674
+ // 小屏幕 不改变左右结构
1675
+ @media (max-width: 1200px) {
1676
+ height: calc(100vh - 200px) !important;
1677
+
1678
+ & > .staff-left-panel {
1679
+ width: calc(60% - 7.5px) !important;
1680
+ min-width: 280px !important;
1681
+ max-width: none !important;
1682
+ }
1683
+ }
1684
+
1685
+ @media (max-width: 768px) {
1686
+ flex-wrap: wrap !important;
1687
+
1688
+ & > .staff-left-panel {
1689
+ width: 100% !important;
1690
+ min-width: 100% !important;
1691
+ max-width: 100% !important;
1692
+ height: 40% !important;
1693
+ margin-bottom: 10px;
1694
+ }
1695
+
1696
+ .staff-right-panel {
1697
+ width: 100% !important;
1698
+ height: 60% !important;
1699
+ }
1700
+ }
1701
+
1671
1702
  & > .staff-left-panel {
1672
- width: 320px !important;
1703
+ width: calc(60% - 7.5px) !important;
1673
1704
  min-width: 320px !important;
1674
- max-width: 320px !important;
1705
+ max-width: none !important;
1675
1706
  display: flex !important;
1676
1707
  flex-direction: column !important;
1677
1708
  box-sizing: border-box !important;
1678
1709
  flex-shrink: 0 !important;
1679
1710
  flex-grow: 0 !important;
1680
1711
  height: 100% !important;
1681
- position: relative !important; // 确保子元素 z-index 生效
1712
+ position: relative !important;
1682
1713
 
1683
1714
  ::v-deep(.panel-title) {
1684
1715
  all: unset !important;
1685
- display: flex !important; // 改为flex,方便对齐竖条和文字
1686
- align-items: center !important; // 文字垂直居中
1716
+ display: flex !important;
1717
+ align-items: center !important;
1687
1718
  visibility: visible !important;
1688
1719
  opacity: 1 !important;
1689
1720
  height: 20px !important;
@@ -1698,20 +1729,20 @@ export default {
1698
1729
  box-sizing: border-box !important;
1699
1730
  position: relative !important;
1700
1731
  width: 100% !important;
1701
- // 左侧竖条核心样式
1732
+ // 左侧竖条样式
1702
1733
  &::before {
1703
1734
  content: '' !important;
1704
1735
  display: inline-block !important;
1705
1736
  width: 5px !important; // 竖条宽度
1706
1737
  height: 16px !important; // 竖条高度(略小于文字行高)
1707
- background-color: #1890ff !important; // 蓝色竖条(可改颜色)
1738
+ background-color: #1890ff !important; // 蓝色竖条
1708
1739
  margin-right: 8px !important; // 竖条与文字间距
1709
1740
  //border-radius: 1.5px !important;
1710
1741
  }
1711
1742
  }
1712
1743
 
1713
1744
  .staff-org-tree {
1714
- height: calc(100% - 28px) !important; /* 28 = 标题高度20 + 间距8 */
1745
+ height: calc(100% - 28px - 10px) !important; /* 28=标题高度+间距 + 10px额外缩减,确保按钮可见 */
1715
1746
  border: 1px solid #EAECF0;
1716
1747
  border-radius: 4px;
1717
1748
  padding: 0 !important;
@@ -1748,9 +1779,8 @@ export default {
1748
1779
  }
1749
1780
 
1750
1781
  .staff-right-panel {
1751
- flex: 1 !important;
1782
+ width: calc(40% - 7.5px) !important;
1752
1783
  min-width: 0 !important;
1753
- width: calc(100% - 335px) !important;
1754
1784
  display: flex;
1755
1785
  flex-direction: column;
1756
1786
  box-sizing: border-box;
@@ -1764,9 +1794,10 @@ export default {
1764
1794
  flex-shrink: 0;
1765
1795
  }
1766
1796
 
1767
- // 右侧人员列表容器:高度 = 父容器高度 - 搜索框高度 - 底部选择栏高度 - 两次间距(8*2)
1797
+ // 右侧人员列表容器:适配全屏高度
1768
1798
  .staff-content {
1769
- height: calc(100% - 32px - 40px - 16px) !important; /* 40=底部选择栏高度,16=8*2间距 */
1799
+ height: calc(100% - 32px - 40px - 16px - 10px) !important;
1800
+ min-height: 200px !important; // 小屏幕最小高度限制
1770
1801
  border: 1px solid #EAECF0;
1771
1802
  border-radius: 4px;
1772
1803
  overflow-x: hidden !important;
@@ -1807,8 +1838,10 @@ export default {
1807
1838
  .tab-content-pro {
1808
1839
  .tab {
1809
1840
  .tree {
1810
- height: 500px !important;
1811
- max-height: 500px !important;
1841
+ // 全屏 使用百分比高度 + 最小高度
1842
+ height: calc(100vh - 340px) !important; // 从300px增加到340px,缩减40px高度
1843
+ min-height: 360px !important; // 降低最小高度,确保按钮可见
1844
+ max-height: none !important; // 移除最大高度限制
1812
1845
  margin-top:20px;
1813
1846
  overflow-y: auto !important;
1814
1847
  overflow-x: auto !important;
@@ -1829,8 +1862,10 @@ export default {
1829
1862
  }
1830
1863
 
1831
1864
  &.post .right .tree {
1832
- height: 380px !important;
1833
- max-height: 380px !important;
1865
+ // 岗位树适配全屏(缩减高度确保按钮可见)
1866
+ height: calc(100vh - 430px) !important; // 从400px增加到430px,缩减30px高度
1867
+ min-height: 270px !important; // 降低最小高度,确保按钮可见
1868
+ max-height: none !important;
1834
1869
  }
1835
1870
 
1836
1871
  .bottom-select {
@@ -1850,7 +1885,6 @@ export default {
1850
1885
  }
1851
1886
  }
1852
1887
 
1853
-
1854
1888
  /deep/ .ivu-tree {
1855
1889
  width: 100% !important;
1856
1890
  box-sizing: border-box;
@@ -1893,11 +1927,24 @@ export default {
1893
1927
  }
1894
1928
 
1895
1929
  .tab.post .left {
1896
- width: 200px;
1897
- height: 450px !important;
1930
+ width: calc(50% - 10px) !important;
1931
+ // 适配全屏高度
1932
+ height: calc(100vh - 380px) !important;
1933
+ min-height: 270px !important;
1898
1934
  overflow: hidden !important;
1899
1935
  padding-right: 10px;
1900
1936
  box-sizing: border-box;
1937
+
1938
+ // 小屏幕仅调整宽度,不改变左右结构
1939
+ @media (max-width: 1200px) {
1940
+ width: calc(50% - 10px) !important;
1941
+ }
1942
+
1943
+ // 超小屏幕
1944
+ @media (max-width: 768px) {
1945
+ width: 100%;
1946
+ margin-bottom: 10px;
1947
+ }
1901
1948
  }
1902
1949
 
1903
1950
  .scroll-container {
@@ -2010,6 +2057,12 @@ export default {
2010
2057
  }
2011
2058
 
2012
2059
  .modal-tree{
2060
+ // 全屏适配:移除固定宽度限制
2061
+ width: 100% !important;
2062
+ height: 100% !important;
2063
+ max-width: none !important;
2064
+ max-height: none !important;
2065
+
2013
2066
  .header-text{
2014
2067
  font-weight: bold;
2015
2068
  font-size: 16px;
@@ -2024,12 +2077,20 @@ export default {
2024
2077
  line-height: 16px;
2025
2078
  }
2026
2079
  .content-container{
2080
+ width: 100%;
2081
+ height: 100%;
2082
+ padding: 10px;
2083
+ box-sizing: border-box;
2027
2084
  }
2028
2085
  .tree-orig{
2029
2086
  width:100%;
2030
2087
  display: flex;
2031
- height: 700px;
2088
+ // 适配全屏高度
2089
+ height: calc(100vh - 80px) !important;
2090
+ min-height: 600px !important;
2032
2091
  background: #fff;
2092
+ // 强制保留左右结构,仅超小屏幕 换行
2093
+ flex-wrap: nowrap !important;
2033
2094
 
2034
2095
  :global(.ivu-tabs-ink-bar) {
2035
2096
  height: 0 !important;
@@ -2072,9 +2133,22 @@ export default {
2072
2133
  }
2073
2134
  }
2074
2135
  .tab-content-pro{
2075
- width: 720px;
2136
+ // 6:4比例 - 减去gap的一半
2137
+ width: calc(60% - 10px) !important;
2138
+ max-width: none !important; // 取消固定最大宽度,按比例适配
2139
+ flex-shrink: 0 !important; // 禁止压缩
2076
2140
  border-radius: 8px;
2077
2141
  border: 1px solid #EAECF0;
2142
+ // 小屏幕保持6:4比例
2143
+ @media (max-width: 1200px) {
2144
+ width: calc(60% - 10px) !important;
2145
+ }
2146
+ // 超小屏幕兜底
2147
+ @media (max-width: 768px) {
2148
+ width: 100% !important;
2149
+ margin-bottom: 10px;
2150
+ }
2151
+
2078
2152
  .tab{
2079
2153
  padding:20px;
2080
2154
  .tag-content{
@@ -2084,12 +2158,13 @@ export default {
2084
2158
  align-items: center;
2085
2159
  }
2086
2160
  .tree {
2087
- height: 500px !important; // 从450px下调,预留下方复选框空间
2088
- max-height: 500px !important; // 强制最大高度,禁止超出
2161
+ height: calc(100vh - 340px) !important; // 缩减40px确保按钮可见
2162
+ min-height: 360px !important; // 降低最小高度
2163
+ max-height: none !important; // 移除最大高度限制
2089
2164
  margin-top:20px;
2090
2165
  overflow-y: auto !important; // 纵向溢出时滚动,而非超出
2091
2166
  overflow-x: auto !important; // 横向溢出时滚动
2092
- border: 1px solid #EAECF0; // 明确容器边界(可选)
2167
+ border: 1px solid #EAECF0; // 明确容器边界
2093
2168
  border-radius: 4px;
2094
2169
  box-sizing: border-box; // 包含边框/内边距计算
2095
2170
  // 滚动条样式统一(与人员Tab保持一致)
@@ -2105,8 +2180,9 @@ export default {
2105
2180
  }
2106
2181
  }
2107
2182
  &.post .right .tree {
2108
- height: 380px !important;
2109
- max-height: 380px !important;
2183
+ height: calc(100vh - 430px) !important; // 缩减30px确保按钮可见
2184
+ min-height: 270px !important; // 降低最小高度
2185
+ max-height: none !important;
2110
2186
  }
2111
2187
  .staff-content{
2112
2188
  overflow:auto;
@@ -2120,7 +2196,7 @@ export default {
2120
2196
  background: #fff !important; // 白色背景覆盖树溢出内容
2121
2197
  position: relative;
2122
2198
  z-index: 10; // 层级高于树容器
2123
- border-top: 1px solid #f0f0f0; // 视觉分隔(可选)
2199
+ border-top: 1px solid #f0f0f0; // 视觉分隔
2124
2200
  .num{
2125
2201
  color:var(--primary-color);
2126
2202
  }
@@ -2163,8 +2239,29 @@ export default {
2163
2239
  .post{
2164
2240
  display: flex;
2165
2241
  height: 100%;
2242
+ // 小屏幕仅调整宽度,不改变左右结构
2243
+ @media (max-width: 1200px) {
2244
+ .left {
2245
+ width: calc(50% - 10px) !important; // 同步改为50%
2246
+ }
2247
+ }
2248
+ // 超小屏幕兜底
2249
+ @media (max-width: 768px) {
2250
+ flex-direction: column;
2251
+
2252
+ .left {
2253
+ width: 100%;
2254
+ margin-bottom: 10px;
2255
+ }
2256
+
2257
+ .right {
2258
+ margin-left: 0;
2259
+ width: 100%;
2260
+ }
2261
+ }
2262
+
2166
2263
  .left{
2167
- width:200px;
2264
+ width: calc(50% - 10px) !important;
2168
2265
  overflow: auto;
2169
2266
  >div{
2170
2267
  background: #FFFFFF;
@@ -2185,7 +2282,8 @@ export default {
2185
2282
  }
2186
2283
  .right{
2187
2284
  margin-left:20px;
2188
- flex: 1;
2285
+ width: calc(50% - 10px) !important;
2286
+ flex: none !important;
2189
2287
  }
2190
2288
  }
2191
2289
  .gust-item{
@@ -2235,12 +2333,23 @@ export default {
2235
2333
  //}
2236
2334
  }
2237
2335
  .form-content{
2238
- flex:1;
2336
+ // 6:4比例 - 减去gap的一半
2337
+ width: calc(40% - 10px) !important;
2338
+ min-width: 300px !important; // 最小宽度限制
2239
2339
  overflow: hidden;
2240
2340
  border-radius: 8px;
2241
2341
  border: 1px solid #EAECF0;
2242
2342
  margin-left:20px;
2243
2343
  padding:10px 20px;
2344
+ height: 100%;
2345
+ flex: none !important; // 取消弹性,固定比例
2346
+ // 超小屏幕
2347
+ @media (max-width: 768px) {
2348
+ margin-left: 0;
2349
+ width: 100%;
2350
+ margin-top: 10px;
2351
+ }
2352
+
2244
2353
  >p{
2245
2354
  font-weight: 500;
2246
2355
  font-size: 16px;
@@ -2300,4 +2409,28 @@ export default {
2300
2409
  }
2301
2410
  }
2302
2411
  }
2412
+
2413
+ // 超小屏幕适配(手机端)
2414
+ @media (max-width: 768px) {
2415
+ .modal-tree .tree-orig {
2416
+ flex-wrap: wrap !important; // 仅超小屏幕换行
2417
+ height: calc(100vh - 100px) !important;
2418
+ min-height: 400px !important;
2419
+ }
2420
+
2421
+ .tab-content-pro .tab .tree {
2422
+ height: calc(100vh - 380px) !important;
2423
+ min-height: 300px !important;
2424
+ }
2425
+
2426
+ .tab.post .left {
2427
+ height: calc(100vh - 480px) !important;
2428
+ min-height: 200px !important;
2429
+ }
2430
+
2431
+ .staff-left-right-layout {
2432
+ height: calc(100vh - 220px) !important;
2433
+ min-height: 400px !important;
2434
+ }
2435
+ }
2303
2436
  </style>