ry_objList.html 54 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta http-equiv="pragma" content="no-cache">
  5. <meta http-equiv="cache-control" content="no-cache">
  6. <meta http-equiv="expires" content="0">
  7. <script>window.loginStatus = "1"</script>
  8. <LINK href="/skin/easy/main.css" rel="stylesheet" type="text/css">
  9. <script type="text/javascript" src="/ss/jquery/jquery.js"></script>
  10. <script type="text/javascript" src="/ss/artdialog/artDialogUtil.js"></script>
  11. <script type="text/javascript" src="/ss/js/base.js"></script>
  12. <script> if (!window.wd) var wd = {}; if (!wd.display) wd.display = {}; wd.display.wdDialogId = "objList"; if (!wd.app) wd.app = {}; wd.app.name = 'pms';</script>
  13. <script type="text/javascript" src="/ss/js/masklayer.js"></script>
  14. <script type="text/javascript" src="/ss/js/wdDialogInit.js"></script>
  15. <script type="text/javascript" src="/ss/js/common.js"></script>
  16. <script type="text/javascript" src="/ss/js/display.js"></script>
  17. <script type="text/javascript" src="/ss/js/edit.js"></script>
  18. <script type="text/javascript" src="/ss/nicescroll/jquery.nicescroll.js"></script>
  19. <script type="text/javascript" src="/ss/nicescroll/jquery.nicescroll.iframehelper.min.js"></script>
  20. <link rel="stylesheet" type="text/css" href="/ss/window/theme/dhtmlxwindows.css">
  21. <link rel="stylesheet" type="text/css" href="/ss/window/theme/dhx_blue/dhtmlxwindows_dhx_blue.css">
  22. <script type="text/javascript" src="/ss/window/dhtmlxcommon.js"></script>
  23. <script type="text/javascript" src="/ss/window/dhtmlxwindows.js"></script>
  24. <script type="text/javascript" src="/ss/window/dhtmlxcontainer.js"></script>
  25. <script type="text/javascript" src="/ss/js/common.js"></script>
  26. <script type="text/javascript" src="/ss/js/display.js"></script>
  27. <script type="text/javascript" src="/ss/js/edit.js"></script>
  28. <ssDlg setPval="true" />
  29. <script type="text/javascript" src="/ss/jquery/jquery.ellipsis.js"></script>
  30. <script src="/js/load.js"></script>
  31. <script src="/js/pageC.js"></script>
  32. <script>
  33. window.ss.dom.formElemConfig = window.ss.dom.formElemConfig || {};
  34. </script>
  35. </head>
  36. <body>
  37. <div id="app">
  38. <form class="page-container" id="myForm"
  39. action="/service?ssToken=d66b3011932e436f841ea8cacc05209f&P_A=ry_cx_objList_notInrylbm11005100sfyzry1dataTypechangeisReady1"
  40. method="post">
  41. <input type="hidden" name="isAnd" value='' />
  42. <input name="management" type="hidden" value="99" />
  43. <input name="isFulltext" type="hidden" value="" />
  44. <!-- 主布局容器:左侧内容 + 右侧占位 by xu 20260105 -->
  45. <div style="display: flex; height: calc(100vh);">
  46. <!-- 左侧导航栏占位 by xu 20260105 -->
  47. <div style="width: 60px; height: 100%; background: #ffffff; border-right: 1px solid #dddfe6; display: flex; flex-direction: column;">
  48. <!-- 菜单项1 -->
  49. <div style="width: 60px; height: 60px; display: flex; align-items: center; justify-content: center; cursor: pointer; border-bottom: 1px solid #dddfe6;">
  50. <div style="width: 24px; height: 24px; background: #4A90E2; border-radius: 4px;"></div>
  51. </div>
  52. <!-- 菜单项2 -->
  53. <div style="width: 60px; height: 60px; display: flex; align-items: center; justify-content: center; cursor: pointer; border-bottom: 1px solid #dddfe6;">
  54. <div style="width: 24px; height: 24px; background: #E74C3C; border-radius: 4px;"></div>
  55. </div>
  56. <!-- 菜单项3 -->
  57. <div style="width: 60px; height: 60px; display: flex; align-items: center; justify-content: center; cursor: pointer; border-bottom: 1px solid #dddfe6;">
  58. <div style="width: 24px; height: 24px; background: #2ECC71; border-radius: 4px;"></div>
  59. </div>
  60. <!-- 菜单项4 -->
  61. <div style="width: 60px; height: 60px; display: flex; align-items: center; justify-content: center; cursor: pointer; border-bottom: 1px solid #dddfe6;">
  62. <div style="width: 24px; height: 24px; background: #F39C12; border-radius: 4px;"></div>
  63. </div>
  64. <!-- 菜单项5 -->
  65. <div style="width: 60px; height: 60px; display: flex; align-items: center; justify-content: center; cursor: pointer; border-bottom: 1px solid #dddfe6;">
  66. <div style="width: 24px; height: 24px; background: #9B59B6; border-radius: 4px;"></div>
  67. </div>
  68. </div>
  69. <!-- 左侧:搜索条件 + 卡片列表 -->
  70. <div style="flex: 1; display: flex; flex-direction: column; overflow: hidden;">
  71. <div class="search-bar">
  72. <ss-breadcrumb></ss-breadcrumb>
  73. <div class="search-bar-contaienr">
  74. <!-- <ss-objp
  75. v-model="rylbm"
  76. name="rylbm"
  77. :options="rylbmOption"
  78. placeholder="人员类别"
  79. width="120"
  80. input="true"
  81. ></ss-objp> -->
  82. <ss-objp v-model="rylbm" name="rylbm" :opt="rylbmOption" placeholder="人员类别" width="150px" inp="true"
  83. url="/service?ssServ=loadObjpOpt&objectpickerdropdown1=1" cb="rylb"></ss-objp>
  84. <script>
  85. /**
  86. * objectPicker(如:性别码)
  87. * optUrl:加载下拉菜单option选项的url
  88. */
  89. window.ss.dom.formElemConfig.rylbm = { desc: '人员类别', value: '', optUrl: '123456', type: 2 };//放当前页面表单元素配置的变量
  90. </script>
  91. <!-- <ss-objp
  92. v-model="bmid"
  93. name="bmid"
  94. :options="bmidOption"
  95. placeholder="部门"
  96. width="120"
  97. input="true"
  98. ></ss-objp> -->
  99. <ss-objp v-model="bmid" name="bmid" :opt="bmidOption" placeholder="部门" width="150px" inp="true"
  100. url="/service?ssServ=loadObjpOpt&objectpickerdropdown1=1" cb="bm"></ss-objp>
  101. <script>
  102. /**
  103. * objectPicker(如:性别码)
  104. * optUrl:加载下拉菜单option选项的url
  105. */
  106. window.ss.dom.formElemConfig.bmid = { desc: '部门', value: '', optUrl: '123456', type: 2 };//放当前页面表单元素配置的变量
  107. </script>
  108. <!-- <ss-search-input
  109. name="ssKeyword"
  110. placeholder="关键词"
  111. v-model="form.keyword"
  112. width="120"
  113. >
  114. </ss-search-input> -->
  115. <ss-search-input name="ssKeyword" placeholder="关键词" v-model="ssKeyword" width="100px"
  116. @search="search">
  117. </ss-search-input>
  118. <script>
  119. //关键词
  120. window.ss.dom.formElemConfig.ssKeyword = { value: '', name: "ssKeyword", desc: "关键词", type: 31 };//放当前页面表单元素配置的变量
  121. </script>
  122. <ss-search-button text="所有" icon-class="nav-icon-search" :opt="searchButtonConfig"
  123. :check-id="searchButtonConfigCheckId"></ss-search-button>
  124. <!-- 状态筛选按钮 by xu 20260105 -->
  125. <ss-search-button text="状态" icon-class="nav-icon-search" :opt="statusFilterConfig"
  126. :check-id="statusFilterCheckId"></ss-search-button>
  127. <!-- <ss-search-button text="搜索" @click="console.log('这里改成提交表单')">
  128. </ss-search-button> -->
  129. <script>
  130. window.ss.dom.btnElemConfig = window.ss.dom.btnElemConfig || {};
  131. </script>
  132. <!-- <ss-search-button
  133. text="增加"
  134. icon-class="nav-icon-add"
  135. ></ss-search-button> -->
  136. <script>
  137. function admin_addhandleClick() {
  138. wd.display.showComponent({
  139. show: ["wdDialog"],
  140. url: "/service?ssToken=b59e43bcf08b490c80a473de3b24c941&P_A=ry_lr_zj_objInp_notInrylbm11005100sfyzry1",
  141. title: "增加人员",
  142. width: "1100",
  143. height: "530",
  144. minHeight: "54",
  145. maxHeight: "853",
  146. showTitle: "false"
  147. });
  148. }
  149. window.ss.dom.btnElemConfig.admin_add = {
  150. desc: "增加",
  151. id: "admin_add",
  152. dropOptions: [],
  153. onclick: () => {
  154. wd.display.showComponent({ show: ["wdDialog"], url: "/service?ssToken=f5c366661b004dfbb69ea6ed72fa8eb3&P_A=ry_lr_zj_objInp_notInrylbm11005100sfyzry1", title: "增加人员", width: "1100", height: "530", minHeight: "54", maxHeight: "853", showTitle: "false" });
  155. }
  156. };
  157. </script>
  158. <ss-search-button text="增加" icon-class="nav-icon-add" :opt="[]" :check-id="0"
  159. onclick="admin_addhandleClick()"></ss-search-button>
  160. </div>
  161. </div>
  162. <div style="clear: both;"></div>
  163. <script type="text/javascript" src="/ss/js/myEcharts.js"></script>
  164. <script type="text/javascript" src="/ss/env/env_search.js"></script>
  165. <script>
  166. window.ss.dom.listConfig = window.ss.dom.listConfig || {};
  167. //二级对象 草稿箱
  168. window.ss.dom.listConfig.draftbox = [];
  169. //在用或停用的对象列表
  170. window.ss.dom.listConfig.list = [];
  171. // 添加缩略图类型卡片示例 by xu 20260105
  172. // {
  173. // let item = {};
  174. // window.ss.dom.listConfig.list.push(item);
  175. // item.titlexxx = "查看文档(缩略图示例)";
  176. // item.onclick = function () {
  177. // console.log('点击了缩略图卡片');
  178. // }
  179. // item.title = "缩略图卡片示例";
  180. // // 设置为缩略图类型
  181. // item.thumbType = 'photo';
  182. // item.thumb = "https://via.placeholder.com/180x100/4A90E2/ffffff?text=photo";
  183. // item.tags = [];
  184. // item.tags.push({ 类型: '缩略图' });
  185. // item.tags.push({ 尺寸: '180×100px' });
  186. // item.tags.push({ 状态: '测试' });
  187. // item.status = "available";
  188. // // 添加状态图标示例 by xu 20260105
  189. // item.statusIcons = [];
  190. // item.statusIcons.push({
  191. // class: 'icon-emoji', // 示例图标
  192. // title: '清洁中'
  193. // });
  194. // item.buttons = [];
  195. // item.buttons.push({
  196. // id: "no-Buttonphoto",
  197. // titlexxx: "编辑文档",
  198. // class: "cart-list-setting",
  199. // title: "编辑",
  200. // onclick: () => {
  201. // console.log('点击了编辑按钮');
  202. // }
  203. // });
  204. // }
  205. // // 添加证件照类型卡片示例 by xu 20260105
  206. // {
  207. // let item = {};
  208. // window.ss.dom.listConfig.list.push(item);
  209. // item.titlexxx = "查看人员(证件照示例)";
  210. // item.onclick = function () {
  211. // console.log('点击了证件照卡片');
  212. // }
  213. // item.status = "disabled";
  214. // item.title = "证件照卡片示例";
  215. // // 设置为证件照类型(或不设置,默认就是证件照)
  216. // item.thumbType = 'photo';
  217. // item.thumb = "https://via.placeholder.com/73x100/E74C3C/ffffff?text=Photo";
  218. // item.desc = "摘要摘要摘要摘要摘要摘要摘要摘要摘要摘要摘要摘要摘要摘要摘要摘要摘要摘要摘要摘要摘要摘要摘要摘要摘要摘要摘要摘要摘要摘要摘要摘要摘要摘要摘要摘要摘要摘要摘要摘要摘要摘要摘要摘要摘要摘要摘要摘要摘要摘要摘要摘要"
  219. // item.objNum = '123456'
  220. // item.category = [];
  221. // item.category.push({类目:"这是类目"})
  222. // item.tags = [];
  223. // item.tags.push({ 类型: '证件照' });
  224. // item.tags.push({ 尺寸: '73×100px' });
  225. // item.tags.push({ 状态: '测试' });
  226. // item.tags.push({ 测试: '测试' });
  227. // item.buttons = [];
  228. // item.buttons.push({
  229. // id: "no-ButtonPhoto",
  230. // titlexxx: "变动人员",
  231. // class: "cart-list-setting",
  232. // title: "变动",
  233. // onclick: () => {
  234. // console.log('点击了变动按钮');
  235. // }
  236. // });
  237. // }
  238. // // 无图占位(证件照)测试:thumbType 有,但 thumb 为空时显示 biz icon by xu 20260109
  239. // {
  240. // let item = {};
  241. // window.ss.dom.listConfig.list.push(item);
  242. // item.titlexxx = "查看人员(无图占位-photo)";
  243. // item.onclick = function () { console.log('点击了无图占位-photo'); }
  244. // item.status = "available";
  245. // item.title = "无图占位(证件照)";
  246. // item.thumbType = 'photo';
  247. // item.thumb = ""; // 故意置空 by xu 20260109
  248. // item.tags = [];
  249. // item.tags.push({ 部门: '小学部' });
  250. // item.objNum = "RY-PLACEHOLDER-PHOTO";
  251. // item.buttons = [];
  252. // }
  253. // // 无图占位(缩略图)测试:thumbType 有,但 thumb 为空时显示 biz icon by xu 20260109
  254. // {
  255. // let item = {};
  256. // window.ss.dom.listConfig.list.push(item);
  257. // item.titlexxx = "查看人员(无图占位-photo)";
  258. // item.onclick = function () { console.log('点击了无图占位-photo'); }
  259. // item.status = "available";
  260. // item.title = "无图占位(缩略图)";
  261. // item.thumbType = 'photo';
  262. // item.thumb = ""; // 故意置空 by xu 20260109
  263. // item.tags = [];
  264. // item.tags.push({ 部门: '小学部' });
  265. // item.objNum = "RY-PLACEHOLDER-THUMB";
  266. // item.buttons = [];
  267. // }
  268. // // 右侧文字区回显:标签省略 + hover 展开测试 by xu 20260108
  269. // {
  270. // let item = {};
  271. // window.ss.dom.listConfig.list.push(item);
  272. // item.titlexxx = "查看人员(tags ellipsis)";
  273. // item.onclick = function () { console.log('点击了 tags ellipsis 卡片'); }
  274. // item.status = "available";
  275. // item.title = "标签省略测试";
  276. // item.thumbType = 'photo';
  277. // item.thumb = "https://via.placeholder.com/73x100/3498DB/ffffff?text=T";
  278. // item.tags = [];
  279. // item.tags.push({ 部门: '小学部' });
  280. // item.tags.push({ 职位: '班主任' });
  281. // item.tags.push({ 级别: '高级' });
  282. // item.tags.push({ 状态: '在岗' });
  283. // item.tags.push({ 备注: '这个备注很长很长很长很长很长,用于触发省略' });
  284. // item.buttons = [];
  285. // }
  286. // // 右侧文字区回显:对象号省略 + hover 展开测试 by xu 20260108
  287. // {
  288. // let item = {};
  289. // window.ss.dom.listConfig.list.push(item);
  290. // item.titlexxx = "查看人员(objNum ellipsis)";
  291. // item.onclick = function () { console.log('点击了 objNum ellipsis 卡片'); }
  292. // item.status = "unavailable";
  293. // item.title = "对象号省略测试";
  294. // item.thumbType = 'photo';
  295. // item.thumb = "https://via.placeholder.com/180x100/2ECC71/ffffff?text=OBJ";
  296. // item.objNum = "OBJ-2026-01-08-000000000000000000000000000000000000000000";
  297. // item.tags = [];
  298. // item.tags.push({ 类型: '缩略图' });
  299. // item.tags.push({ 尺寸: '180×100px' });
  300. // item.buttons = [];
  301. // }
  302. // // 右侧文字区回显:对象号省略(带摘要/标签组合) by xu 20260108
  303. // {
  304. // let item = {};
  305. // window.ss.dom.listConfig.list.push(item);
  306. // item.titlexxx = "查看人员(objNum+summary+tags)";
  307. // item.onclick = function () { console.log('点击了 objNum+summary+tags 卡片'); }
  308. // item.status = "available";
  309. // item.title = "对象号+摘要+标签";
  310. // item.thumbType = 'photo';
  311. // item.thumb = "https://via.placeholder.com/73x100/9B59B6/ffffff?text=S";
  312. // item.desc = "这是一个短摘要(应只占一行,标签补位),但也可能在窄宽时出现省略";
  313. // item.objNum = "RY-OBJ-2026-01-08-000000000000000000000000000000000000000000";
  314. // item.tags = [];
  315. // item.tags.push({ 部门: '小学部' });
  316. // item.tags.push({ 职位: '教师' });
  317. // item.tags.push({ 备注: '标签末行平铺很长很长很长,触发省略' });
  318. // item.buttons = [];
  319. // }
  320. // // 右侧文字区回显:类目省略 + hover 展开测试(类目与标签不会同时存在) by xu 20260108
  321. // {
  322. // let item = {};
  323. // window.ss.dom.listConfig.list.push(item);
  324. // item.titlexxx = "查看人员(category ellipsis)";
  325. // item.onclick = function () { console.log('点击了 category ellipsis 卡片'); }
  326. // item.status = "disabled";
  327. // item.title = "类目省略测试";
  328. // item.thumbType = 'photo';
  329. // item.desc = "这是一个短摘要(应只占一行,标签补位),但也可能在窄宽时出现省略";
  330. // item.thumb = "https://via.placeholder.com/73x100/E67E22/ffffff?text=C";
  331. // item.category = [];
  332. // item.category.push({ 类目: '类目名称很长很长很长很长很长很长很长,用于触发省略' });
  333. // item.category.push({ 归属: 'A-区-一层-东侧-走廊尽头-最里面' });
  334. // item.category.push({ 备注: '第二关键属性也很长很长很长,用于触发省略' });
  335. // // item.objNum = "CAT-0000000000000000000000000000000000000000";
  336. // item.buttons = [];
  337. // }
  338. // // 右侧文字区回显组合用例:摘要(desc) + 标签(tags) + 对象号(objNum) by xu 20260108
  339. // {
  340. // let item = {};
  341. // window.ss.dom.listConfig.list.push(item);
  342. // item.titlexxx = "[摘要+标签+对象号] desc+tags+objNum";
  343. // item.onclick = function () { console.log('点击 [摘要+标签+对象号]'); }
  344. // item.status = "available";
  345. // item.title = "摘要+标签+对象号(摘要较长触发)这是一个很长很长很长的标题用于测试标题单行省略";
  346. // item.thumbType = 'photo';
  347. // item.thumb = "https://via.placeholder.com/180x100/1ABC9C/ffffff?text=STO";
  348. // item.desc = "这是一个很长很长的摘要,用于触发两行省略这是一个很长很长的摘要,用于触发两行省略这是一个很长很长的摘要,用于触发两行省略";
  349. // item.objNum = "RY-OBJ-2026-01-08-000000000000000000000000000000000000000000";
  350. // item.tags = [];
  351. // item.tags.push({ 部门: '小学部' });
  352. // item.tags.push({ 职位: '班主任' });
  353. // item.tags.push({ 状态: '在岗' });
  354. // item.tags.push({ 备注: '最后一行平铺会很长很长很长,用于触发' });
  355. // item.buttons = [];
  356. // }
  357. // // 右侧文字区回显组合用例:摘要(desc) + 类目(category) + 对象号(objNum) by xu 20260108
  358. // {
  359. // let item = {};
  360. // window.ss.dom.listConfig.list.push(item);
  361. // item.titlexxx = "[摘要+类目+对象号] desc+category+objNum";
  362. // item.onclick = function () { console.log('点击 [摘要+类目+对象号]'); }
  363. // item.status = "unavailable";
  364. // item.title = "摘要+类目+对象号(类目末行触发)";
  365. // item.thumbType = 'photo';
  366. // item.thumb = "https://via.placeholder.com/73x100/16A085/ffffff?text=SCO";
  367. // item.desc = "摘要中等长度,可能只占一行。";
  368. // item.category = [];
  369. // item.category.push({ 类目: '类目1-名称较长较长较长较长较长较长触发省略' });
  370. // item.category.push({ 归属: '归属2-也很长很长很长很长触发省略' });
  371. // item.category.push({ 备注: '备注3-最后一行平铺剩余,触发' });
  372. // item.objNum = "SCO-0000000000000000000000000000000000000000000";
  373. // item.buttons = [];
  374. // }
  375. // // 新规则:摘要(desc) + 类目(category)(无对象号) by xu 20260108
  376. // {
  377. // let item = {};
  378. // window.ss.dom.listConfig.list.push(item);
  379. // item.titlexxx = "[摘要+类目] desc+category";
  380. // item.onclick = function () { console.log('点击 [摘要+类目]'); }
  381. // item.status = "available";
  382. // item.title = "摘要+类目(新规则:有摘要则只显示摘要,类目不会显示)";
  383. // item.thumbType = 'photo';
  384. // item.thumb = "https://via.placeholder.com/73x100/27AE60/ffffff?text=SC";
  385. // item.desc = "这是一个摘要(会占第二部分最多3行)。类目即使存在也不会显示在右侧区域。";
  386. // item.category = [];
  387. // item.category.push({ 类目: '类目内容存在但应被对象号/摘要优先级覆盖(此处无对象号,但仍被摘要覆盖)' });
  388. // item.category.push({ 归属: '归属信息也存在,但默认态不显示' });
  389. // item.buttons = [];
  390. // }
  391. // // 右侧文字区回显组合用例:摘要(desc) + 标签(tags)(无对象号) by xu 20260108
  392. // {
  393. // let item = {};
  394. // window.ss.dom.listConfig.list.push(item);
  395. // item.titlexxx = "[摘要+标签] desc+tags";
  396. // item.onclick = function () { console.log('点击 [摘要+标签]'); }
  397. // item.status = "disabled";
  398. // item.title = "摘要+标签(无对象号)";
  399. // item.thumbType = 'photo';
  400. // item.thumb = "https://via.placeholder.com/73x100/2980B9/ffffff?text=ST";
  401. // item.desc = "摘要很短(1行),标签应该补位占更多行。";
  402. // item.tags = [];
  403. // item.tags.push({ 部门: '初中部' });
  404. // item.tags.push({ 职位: '教师' });
  405. // item.tags.push({ 状态: '离岗' });
  406. // item.tags.push({ 备注: '最后一行平铺很长很长很长,用于触发' });
  407. // item.buttons = [];
  408. // }
  409. // // 右侧文字区回显组合用例:标签(tags) + 对象号(objNum)(无摘要) by xu 20260108
  410. // {
  411. // let item = {};
  412. // window.ss.dom.listConfig.list.push(item);
  413. // item.titlexxx = "[标签+对象号] tags+objNum";
  414. // item.onclick = function () { console.log('点击 [标签+对象号]'); }
  415. // item.status = "available";
  416. // item.title = "标签+对象号(无摘要)";
  417. // item.thumbType = 'photo';
  418. // item.thumb = "https://via.placeholder.com/180x100/C0392B/ffffff?text=TO";
  419. // item.objNum = "TO-2026-01-08-0000000000000000000000000000000000000000";
  420. // item.tags = [];
  421. // item.tags.push({ A: '1111111111111111111111111111很长触发省略' });
  422. // item.tags.push({ B: '2222222222222222222222222222很长触发省略' });
  423. // item.tags.push({ C: '3333333333333333333333333333很长触发省略' });
  424. // item.tags.push({ D: '4444444444444444444444444444很长触发省略' });
  425. // item.buttons = [];
  426. // }
  427. // // 右侧文字区回显组合用例:仅标签(tags only) by xu 20260108
  428. // {
  429. // let item = {};
  430. // window.ss.dom.listConfig.list.push(item);
  431. // item.titlexxx = "[仅标签] tags only";
  432. // item.onclick = function () { console.log('点击 [仅标签]'); }
  433. // item.status = "unavailable";
  434. // item.title = "仅标签(标签独占4行)";
  435. // item.thumbType = 'photo';
  436. // item.thumb = "https://via.placeholder.com/73x100/8E44AD/ffffff?text=T";
  437. // item.tags = [];
  438. // item.tags.push({ A: 'alpha-alpha-alpha-alpha-alpha' });
  439. // item.tags.push({ B: 'beta-beta-beta-beta-beta-beta-beta' });
  440. // item.tags.push({ C: 'gamma-gamma-gamma-gamma-gamma-gamma-gamma' });
  441. // item.tags.push({ D: 'delta-delta-delta-delta-delta-delta-delta-delta' });
  442. // item.tags.push({ E: 'epsilon-epsilon-epsilon-epsilon-epsilon-epsilon-epsilon-epsilon' });
  443. // item.buttons = [];
  444. // }
  445. // // 新规则:第二部分为空(无摘要且无 tags)→ 第三部分占满 4 行 by xu 20260108
  446. // {
  447. // let item = {};
  448. // window.ss.dom.listConfig.list.push(item);
  449. // item.titlexxx = "[第二部分为空] objNum 占满4行";
  450. // item.onclick = function () { console.log('点击 [第二部分为空]'); }
  451. // item.status = "available";
  452. // item.title = "第二部分为空:对象号占满4行(超出)";
  453. // item.thumbType = 'photo';
  454. // item.thumb = "https://via.placeholder.com/73x100/34495E/ffffff?text=FULL";
  455. // item.objNum = "FULL-OBJNUM-2026-01-08-000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000";
  456. // item.buttons = [];
  457. // }
  458. {
  459. let item = {};//列表的其中一行的属性
  460. window.ss.dom.listConfig.list.push(item);
  461. item.titlexxx = "查看人员(陈欣欣)";
  462. item.onclick = function () {
  463. wd.display.showComponent({ getSize: 1, width: ((880 + DOM_SIZE_objInfoTabWidth) + ""), show: ["wdDialog"], url: "/service?ssToken=b2f666ee35f5439e99339cff519c8234&P_A=ry_ck_objPlay_ssObjId111122998ssObjNameryryid111122998notInrylbm11005100sfyzry1", title: "查看人员(陈欣欣)", height: "650", minHeight: "109", maxHeight: "808" });
  464. }
  465. item.title = "陈欣欣";
  466. item.tags = [];
  467. {
  468. let v;
  469. v = '学校教职工';
  470. item.tags.push({ 人员类别: v });
  471. }
  472. {
  473. let v;
  474. v = '小学部德育处';
  475. item.tags.push({ 部门: v });
  476. }
  477. {
  478. let v;
  479. v = '女性';
  480. item.tags.push({ 性别: v });
  481. }
  482. item.buttons = [];
  483. item.buttons.push(
  484. {
  485. id: "no-Button1",
  486. titlexxx: "变动人员(陈欣欣)",
  487. class: "cart-list-setting",
  488. title: "变动",
  489. onclick: () => {
  490. wd.display.showComponent({ getSize: 1, width: ((1100 + DOM_SIZE_objInfoTabWidth) + ""), show: ["wdDialog"], url: "/service?ssToken=ecf4a2c3a58c487f83cf58058c0da8e6&P_A=ry_bd_objChg_ssObjId111122998ssObjNameryryid111122998notInrylbm11005100sfyzry1", title: "变动人员(陈欣欣)", height: "600", minHeight: "84", maxHeight: "783" });
  491. }
  492. }
  493. );
  494. }
  495. {
  496. let item = {};//列表的其中一行的属性
  497. window.ss.dom.listConfig.list.push(item);
  498. item.titlexxx = "查看人员(吴晓惠)";
  499. item.onclick = function () {
  500. wd.display.showComponent({ getSize: 1, width: ((880 + DOM_SIZE_objInfoTabWidth) + ""), show: ["wdDialog"], url: "/service?ssToken=1d1a696ba493452d9f688344eff45b21&P_A=ry_ck_objPlay_ssObjId111122999ssObjNameryryid111122999notInrylbm11005100sfyzry1", title: "查看人员(吴晓惠)", height: "650", minHeight: "109", maxHeight: "808" });
  501. }
  502. item.title = "吴晓惠";
  503. item.tags = [];
  504. {
  505. let v;
  506. v = '学校教职工';
  507. item.tags.push({ 人员类别: v });
  508. }
  509. {
  510. let v;
  511. v = '小学部德育处';
  512. item.tags.push({ 部门: v });
  513. }
  514. {
  515. let v;
  516. v = '女性';
  517. item.tags.push({ 性别: v });
  518. }
  519. item.buttons = [];
  520. item.buttons.push(
  521. {
  522. id: "no-Button2",
  523. titlexxx: "变动人员(吴晓惠)",
  524. class: "cart-list-setting",
  525. title: "变动",
  526. onclick: () => {
  527. wd.display.showComponent({ getSize: 1, width: ((1100 + DOM_SIZE_objInfoTabWidth) + ""), show: ["wdDialog"], url: "/service?ssToken=31d5c01f958f4532b503179fe9e06569&P_A=ry_bd_objChg_ssObjId111122999ssObjNameryryid111122999notInrylbm11005100sfyzry1", title: "变动人员(吴晓惠)", height: "600", minHeight: "84", maxHeight: "783" });
  528. }
  529. }
  530. );
  531. }
  532. {
  533. let item = {};//列表的其中一行的属性
  534. window.ss.dom.listConfig.list.push(item);
  535. item.titlexxx = "查看人员(陈丽花)";
  536. item.onclick = function () {
  537. wd.display.showComponent({ getSize: 1, width: ((880 + DOM_SIZE_objInfoTabWidth) + ""), show: ["wdDialog"], url: "/service?ssToken=cb131510e4df4a558cc61095f4d6d6ff&P_A=ry_ck_objPlay_ssObjId111123000ssObjNameryryid111123000notInrylbm11005100sfyzry1", title: "查看人员(陈丽花)", height: "650", minHeight: "109", maxHeight: "808" });
  538. }
  539. item.title = "陈丽花";
  540. item.tags = [];
  541. {
  542. let v;
  543. v = '学校教职工';
  544. item.tags.push({ 人员类别: v });
  545. }
  546. {
  547. let v;
  548. v = '小学部德育处';
  549. item.tags.push({ 部门: v });
  550. }
  551. {
  552. let v;
  553. v = '女性';
  554. item.tags.push({ 性别: v });
  555. }
  556. item.buttons = [];
  557. item.buttons.push(
  558. {
  559. id: "no-Button3",
  560. titlexxx: "变动人员(陈丽花)",
  561. class: "cart-list-setting",
  562. title: "变动",
  563. onclick: () => {
  564. wd.display.showComponent({ getSize: 1, width: ((1100 + DOM_SIZE_objInfoTabWidth) + ""), show: ["wdDialog"], url: "/service?ssToken=c0aea92348dd4cadaceef1cb50561c41&P_A=ry_bd_objChg_ssObjId111123000ssObjNameryryid111123000notInrylbm11005100sfyzry1", title: "变动人员(陈丽花)", height: "600", minHeight: "84", maxHeight: "783" });
  565. }
  566. }
  567. );
  568. }
  569. {
  570. let item = {};//列表的其中一行的属性
  571. window.ss.dom.listConfig.list.push(item);
  572. item.titlexxx = "查看人员(黄文东)";
  573. item.onclick = function () {
  574. wd.display.showComponent({ getSize: 1, width: ((880 + DOM_SIZE_objInfoTabWidth) + ""), show: ["wdDialog"], url: "/service?ssToken=d7ea3255174346739c8bb813bff85921&P_A=ry_ck_objPlay_ssObjId111123001ssObjNameryryid111123001notInrylbm11005100sfyzry1", title: "查看人员(黄文东)", height: "650", minHeight: "109", maxHeight: "808" });
  575. }
  576. item.title = "黄文东";
  577. item.tags = [];
  578. {
  579. let v;
  580. v = '学校教职工';
  581. item.tags.push({ 人员类别: v });
  582. }
  583. {
  584. let v;
  585. v = '艺体中心';
  586. item.tags.push({ 部门: v });
  587. }
  588. {
  589. let v;
  590. v = '男性';
  591. item.tags.push({ 性别: v });
  592. }
  593. item.buttons = [];
  594. item.buttons.push(
  595. {
  596. id: "no-Button4",
  597. titlexxx: "变动人员(黄文东)",
  598. class: "cart-list-setting",
  599. title: "变动",
  600. onclick: () => {
  601. wd.display.showComponent({ getSize: 1, width: ((1100 + DOM_SIZE_objInfoTabWidth) + ""), show: ["wdDialog"], url: "/service?ssToken=d6b72d581a724a528a5b7e07ed18d928&P_A=ry_bd_objChg_ssObjId111123001ssObjNameryryid111123001notInrylbm11005100sfyzry1", title: "变动人员(黄文东)", height: "600", minHeight: "84", maxHeight: "783" });
  602. }
  603. }
  604. );
  605. }
  606. {
  607. let item = {};//列表的其中一行的属性
  608. window.ss.dom.listConfig.list.push(item);
  609. item.titlexxx = "查看人员(张春英)";
  610. item.onclick = function () {
  611. wd.display.showComponent({ getSize: 1, width: ((880 + DOM_SIZE_objInfoTabWidth) + ""), show: ["wdDialog"], url: "/service?ssToken=c38a5fd0066b409fb8280bb88b19da8c&P_A=ry_ck_objPlay_ssObjId111123002ssObjNameryryid111123002notInrylbm11005100sfyzry1", title: "查看人员(张春英)", height: "650", minHeight: "109", maxHeight: "808" });
  612. }
  613. item.title = "张春英";
  614. item.tags = [];
  615. {
  616. let v;
  617. v = '学校教职工';
  618. item.tags.push({ 人员类别: v });
  619. }
  620. {
  621. let v;
  622. v = '小学部德育处';
  623. item.tags.push({ 部门: v });
  624. }
  625. {
  626. let v;
  627. v = '女性';
  628. item.tags.push({ 性别: v });
  629. }
  630. item.buttons = [];
  631. item.buttons.push(
  632. {
  633. id: "no-Button5",
  634. titlexxx: "变动人员(张春英)",
  635. class: "cart-list-setting",
  636. title: "变动",
  637. onclick: () => {
  638. wd.display.showComponent({ getSize: 1, width: ((1100 + DOM_SIZE_objInfoTabWidth) + ""), show: ["wdDialog"], url: "/service?ssToken=1dcdc0625b15423ca6ad71b7a3d93f25&P_A=ry_bd_objChg_ssObjId111123002ssObjNameryryid111123002notInrylbm11005100sfyzry1", title: "变动人员(张春英)", height: "600", minHeight: "84", maxHeight: "783" });
  639. }
  640. }
  641. );
  642. }
  643. {
  644. let item = {};//列表的其中一行的属性
  645. window.ss.dom.listConfig.list.push(item);
  646. item.titlexxx = "查看人员(江雅诗)";
  647. item.onclick = function () {
  648. wd.display.showComponent({ getSize: 1, width: ((880 + DOM_SIZE_objInfoTabWidth) + ""), show: ["wdDialog"], url: "/service?ssToken=f5e38a2a826b463389110a2b64f2eeef&P_A=ry_ck_objPlay_ssObjId111123004ssObjNameryryid111123004notInrylbm11005100sfyzry1", title: "查看人员(江雅诗)", height: "650", minHeight: "109", maxHeight: "808" });
  649. }
  650. item.title = "江雅诗";
  651. item.tags = [];
  652. {
  653. let v;
  654. v = '学校教职工';
  655. item.tags.push({ 人员类别: v });
  656. }
  657. {
  658. let v;
  659. v = '初中部德育处';
  660. item.tags.push({ 部门: v });
  661. }
  662. {
  663. let v;
  664. v = '女性';
  665. item.tags.push({ 性别: v });
  666. }
  667. item.buttons = [];
  668. item.buttons.push(
  669. {
  670. id: "no-Button6",
  671. titlexxx: "变动人员(江雅诗)",
  672. class: "cart-list-setting",
  673. title: "变动",
  674. onclick: () => {
  675. wd.display.showComponent({ getSize: 1, width: ((1100 + DOM_SIZE_objInfoTabWidth) + ""), show: ["wdDialog"], url: "/service?ssToken=6c222f70c61c4e15ba21447648f6bec3&P_A=ry_bd_objChg_ssObjId111123004ssObjNameryryid111123004notInrylbm11005100sfyzry1", title: "变动人员(江雅诗)", height: "600", minHeight: "84", maxHeight: "783" });
  676. }
  677. }
  678. );
  679. }
  680. {
  681. let item = {};//列表的其中一行的属性
  682. window.ss.dom.listConfig.list.push(item);
  683. item.titlexxx = "查看人员(刘海鸥)";
  684. item.onclick = function () {
  685. wd.display.showComponent({ getSize: 1, width: ((880 + DOM_SIZE_objInfoTabWidth) + ""), show: ["wdDialog"], url: "/service?ssToken=80ea5c7cdc23426ab126473d9228fc9f&P_A=ry_ck_objPlay_ssObjId111123005ssObjNameryryid111123005notInrylbm11005100sfyzry1", title: "查看人员(刘海鸥)", height: "650", minHeight: "109", maxHeight: "808" });
  686. }
  687. item.title = "刘海鸥";
  688. item.tags = [];
  689. {
  690. let v;
  691. v = '学校教职工';
  692. item.tags.push({ 人员类别: v });
  693. }
  694. {
  695. let v;
  696. v = '初中部德育处';
  697. item.tags.push({ 部门: v });
  698. }
  699. {
  700. let v;
  701. v = '女性';
  702. item.tags.push({ 性别: v });
  703. }
  704. item.buttons = [];
  705. item.buttons.push(
  706. {
  707. id: "no-Button7",
  708. titlexxx: "变动人员(刘海鸥)",
  709. class: "cart-list-setting",
  710. title: "变动",
  711. onclick: () => {
  712. wd.display.showComponent({ getSize: 1, width: ((1100 + DOM_SIZE_objInfoTabWidth) + ""), show: ["wdDialog"], url: "/service?ssToken=a87f50f2c3654eba849ca0f03409831b&P_A=ry_bd_objChg_ssObjId111123005ssObjNameryryid111123005notInrylbm11005100sfyzry1", title: "变动人员(刘海鸥)", height: "600", minHeight: "84", maxHeight: "783" });
  713. }
  714. }
  715. );
  716. }
  717. {
  718. let item = {};//列表的其中一行的属性
  719. window.ss.dom.listConfig.list.push(item);
  720. item.titlexxx = "查看人员(罗桂秀)";
  721. item.onclick = function () {
  722. wd.display.showComponent({ getSize: 1, width: ((880 + DOM_SIZE_objInfoTabWidth) + ""), show: ["wdDialog"], url: "/service?ssToken=980c1860fbaa45b1888faea7c97e4ab4&P_A=ry_ck_objPlay_ssObjId111123006ssObjNameryryid111123006notInrylbm11005100sfyzry1", title: "查看人员(罗桂秀)", height: "650", minHeight: "109", maxHeight: "808" });
  723. }
  724. item.title = "罗桂秀";
  725. item.tags = [];
  726. {
  727. let v;
  728. v = '学校教职工';
  729. item.tags.push({ 人员类别: v });
  730. }
  731. {
  732. let v;
  733. v = '生活一部';
  734. item.tags.push({ 部门: v });
  735. }
  736. {
  737. let v;
  738. v = '女性';
  739. item.tags.push({ 性别: v });
  740. }
  741. item.buttons = [];
  742. item.buttons.push(
  743. {
  744. id: "no-Button8",
  745. titlexxx: "变动人员(罗桂秀)",
  746. class: "cart-list-setting",
  747. title: "变动",
  748. onclick: () => {
  749. wd.display.showComponent({ getSize: 1, width: ((1100 + DOM_SIZE_objInfoTabWidth) + ""), show: ["wdDialog"], url: "/service?ssToken=4613780c52534a79ba80c0aaddd3b9c7&P_A=ry_bd_objChg_ssObjId111123006ssObjNameryryid111123006notInrylbm11005100sfyzry1", title: "变动人员(罗桂秀)", height: "600", minHeight: "84", maxHeight: "783" });
  750. }
  751. }
  752. );
  753. }
  754. {
  755. let item = {};//列表的其中一行的属性
  756. window.ss.dom.listConfig.list.push(item);
  757. item.titlexxx = "查看人员(何秋冬)";
  758. item.onclick = function () {
  759. wd.display.showComponent({ getSize: 1, width: ((880 + DOM_SIZE_objInfoTabWidth) + ""), show: ["wdDialog"], url: "/service?ssToken=5a8db34cc8a04be0a08cc0e3f6fe00c6&P_A=ry_ck_objPlay_ssObjId111123007ssObjNameryryid111123007notInrylbm11005100sfyzry1", title: "查看人员(何秋冬)", height: "650", minHeight: "109", maxHeight: "808" });
  760. }
  761. item.title = "何秋冬";
  762. item.tags = [];
  763. {
  764. let v;
  765. v = '学校教职工';
  766. item.tags.push({ 人员类别: v });
  767. }
  768. {
  769. let v;
  770. v = '生活一部';
  771. item.tags.push({ 部门: v });
  772. }
  773. {
  774. let v;
  775. v = '女性';
  776. item.tags.push({ 性别: v });
  777. }
  778. item.buttons = [];
  779. item.buttons.push(
  780. {
  781. id: "no-Button9",
  782. titlexxx: "变动人员(何秋冬)",
  783. class: "cart-list-setting",
  784. title: "变动",
  785. onclick: () => {
  786. wd.display.showComponent({ getSize: 1, width: ((1100 + DOM_SIZE_objInfoTabWidth) + ""), show: ["wdDialog"], url: "/service?ssToken=18e085e0c31549efa9597733d32e32a0&P_A=ry_bd_objChg_ssObjId111123007ssObjNameryryid111123007notInrylbm11005100sfyzry1", title: "变动人员(何秋冬)", height: "600", minHeight: "84", maxHeight: "783" });
  787. }
  788. }
  789. );
  790. }
  791. {
  792. let item = {};//列表的其中一行的属性
  793. window.ss.dom.listConfig.list.push(item);
  794. item.titlexxx = "查看人员(黄智霖)";
  795. item.onclick = function () {
  796. wd.display.showComponent({ getSize: 1, width: ((880 + DOM_SIZE_objInfoTabWidth) + ""), show: ["wdDialog"], url: "/service?ssToken=ba8f7c48fea14306900c50e668b64621&P_A=ry_ck_objPlay_ssObjId111123008ssObjNameryryid111123008notInrylbm11005100sfyzry1", title: "查看人员(黄智霖)", height: "650", minHeight: "109", maxHeight: "808" });
  797. }
  798. item.status = "unavailable";
  799. item.title = "黄智霖";
  800. item.tags = [];
  801. {
  802. let v;
  803. v = '学校教职工';
  804. item.tags.push({ 人员类别: v });
  805. }
  806. {
  807. let v;
  808. v = '生活二部';
  809. item.tags.push({ 部门: v });
  810. }
  811. {
  812. let v;
  813. v = '男性';
  814. item.tags.push({ 性别: v });
  815. }
  816. item.buttons = [];
  817. item.buttons.push(
  818. {
  819. id: "no-Button10",
  820. titlexxx: "变动人员(黄智霖)",
  821. class: "cart-list-setting",
  822. title: "变动",
  823. onclick: () => {
  824. wd.display.showComponent({ getSize: 1, width: ((1100 + DOM_SIZE_objInfoTabWidth) + ""), show: ["wdDialog"], url: "/service?ssToken=8f5a0337b9f1436ca8a053586f6020cf&P_A=ry_bd_objChg_ssObjId111123008ssObjNameryryid111123008notInrylbm11005100sfyzry1", title: "变动人员(黄智霖)", height: "600", minHeight: "84", maxHeight: "783" });
  825. }
  826. }
  827. );
  828. }
  829. </script>
  830. <!-- 功能说明:卡片区域使用 grid 自动分列,剩余宽度平分(不锁死 max-width) by xu 20260109 -->
  831. <div :class="['content-area','item-content-area', cardGridKind ? ('ss-card-grid--' + cardGridKind) : '']" style="flex: 1; overflow-y: auto;">
  832. <template v-for="(item, i) in listConfig.draftbox" :key="i">
  833. <ss-folder-card v-if="item.children" :item="item"></ss-folder-card>
  834. <!-- 功能说明:通过 props 传 ssObjName(用于无图占位 biz icon) by xu 20260109 -->
  835. <ss-list-card v-else :item="item" :ss-obj-name="ssObjName" :card-click-action="cardClickAction" @toggle-select="handleToggleSelect"></ss-list-card>
  836. </template>
  837. <template v-for="(item, i) in listConfig.list" :key="i">
  838. <ss-folder-card v-if="item.children" :item="item"></ss-folder-card>
  839. <!-- 功能说明:通过 props 传 ssObjName(用于无图占位 biz icon) by xu 20260109 -->
  840. <ss-list-card v-else :item="item" :ss-obj-name="ssObjName" :card-click-action="cardClickAction" @toggle-select="handleToggleSelect"></ss-list-card>
  841. </template>
  842. <ss-page v-show="575" :total="575" :size="10" :page="1" @change="handlePageChange">
  843. </ss-page>
  844. </div>
  845. </div>
  846. <!-- 右侧:ss-sidebar(方案A:父级 state 中转) by xu 20260106 -->
  847. <ss-sidebar
  848. :buttons="sidebarButtons"
  849. :panels="sidebarPanels"
  850. @remove="handleSidebarRemove"
  851. ></ss-sidebar>
  852. </div>
  853. </form>
  854. </div>
  855. </body>
  856. </html>
  857. <!-- Sortable:业务面板拖拽排序 by xu 20260106 -->
  858. <script src="../js/Sortable/Sortable.min.js"></script>
  859. <script type="module">
  860. // function objectPickMockAjax(url) {
  861. // return new Promise((resolve) => {
  862. // setTimeout(() => {
  863. // resolve([
  864. // { label: '学校领导', value: '190'},
  865. // { label: '业务部', value: '101241' },
  866. // { label: '男', value: '1' },
  867. // { label: '女', value: '2' }
  868. // ]);
  869. // }, 1000);
  870. // });
  871. // }
  872. // 定义 objPickerLoad 函数
  873. // async function objPickerLoad(url, optionsName) {
  874. // const result = await objectPickMockAjax(url);
  875. // return result;
  876. // }
  877. window.ss.dom.formElemConfig.testtime = {
  878. type: '34',
  879. desc: '时间',
  880. name: 'testtime',
  881. value: '',
  882. };
  883. window.ss.dom.formElemConfig.testdatetime = {
  884. type: '35',
  885. desc: '日期时间',
  886. name: 'testdatetime',
  887. value: '',
  888. };
  889. console.log(window.ss.dom.formElemConfig);
  890. const data = {
  891. ssObjName:"ry",
  892. cardClickAction: "single", // 功能:卡片主体点击动作(view=查看;single=单选互斥;角标仍多选) by xu 20260109
  893. systemType: window.ss.dom.TYPE,
  894. listConfig: window.ss.dom.listConfig,
  895. formElemConfig: window.ss.dom.formElemConfig,
  896. btnElemConfig: window.ss.dom.btnElemConfig,
  897. cardGridKind: '', // 功能:卡片网格布局类型(none/photo/thumbnail) by xu 20260109
  898. // 右侧边栏:已选列表(左侧卡片选中 -> 进入“已选”面板) by xu 20260106
  899. selectedItems: [],
  900. // 右侧边栏:顶部固定按钮 mock(复用 ss-search-button) by xu 20260106
  901. sidebarButtons: [
  902. { id: 'reserve', text: '预定', onClick: () => console.log('点击:预定') },
  903. { id: 'checkin', text: '入住', onClick: () => console.log('点击:入住') },
  904. { id: 'checkout', text: '退房', onClick: () => console.log('点击:退房') },
  905. { id: 'clean', text: '清洁', onClick: () => console.log('点击:清洁') },
  906. ],
  907. // 右侧边栏:除“人员”外其他分区先写死 mock by xu 20260106
  908. sidebarMockSelected: [
  909. { title: '木色咖啡厅' },
  910. { title: '图书馆阅览室1号间' },
  911. { title: '羽毛球馆1号' },
  912. ],
  913. sidebarMockService: [
  914. { title: '木色咖啡厅' },
  915. ],
  916. sidebarMockReserve: [
  917. { title: '木色咖啡厅' },
  918. { title: '图书馆阅览室1号间' },
  919. { title: '羽毛球馆1号' },
  920. ],
  921. // 右侧边栏:图表 mock(ECharts) by xu 20260106
  922. sidebarMockChart: {
  923. title: '校舍建筑面积和总体分布',
  924. height: '220px',
  925. options: {
  926. grid: { left: 40, right: 10, top: 20, bottom: 30 },
  927. xAxis: { type: 'category', data: ['教学及科研', '行政办公', '生活用房', '教工住宅', '其他用房'] },
  928. yAxis: { type: 'value' },
  929. series: [
  930. {
  931. type: 'bar',
  932. data: [90.6, 4.5, 50, 10, 7],
  933. label: { show: true, position: 'inside', formatter: '{c}%' },
  934. },
  935. ],
  936. color: ['#4A90E2'],
  937. },
  938. },
  939. // 右侧边栏:第二个图表 mock(测试多图) by xu 20260108
  940. sidebarMockChart2: {
  941. title: '校舍使用率趋势',
  942. height: '220px',
  943. options: {
  944. grid: { left: 40, right: 10, top: 20, bottom: 30 },
  945. xAxis: { type: 'category', data: ['1月', '2月', '3月', '4月', '5月', '6月'] },
  946. yAxis: { type: 'value' },
  947. series: [
  948. {
  949. type: 'line',
  950. data: [65, 72, 78, 85, 82, 88],
  951. label: { show: true, position: 'top', formatter: '{c}%' },
  952. },
  953. ],
  954. color: ['#50C878'],
  955. },
  956. },
  957. // 右侧边栏:第三个图表 mock(饼图) by xu 20260108
  958. sidebarMockChart3: {
  959. title: '设施类型分布',
  960. height: '220px',
  961. options: {
  962. tooltip: { trigger: 'item' },
  963. legend: { orient: 'vertical', left: 'left' },
  964. series: [
  965. {
  966. type: 'pie',
  967. radius: '60%',
  968. data: [
  969. { value: 1048, name: '教学楼' },
  970. { value: 735, name: '宿舍楼' },
  971. { value: 580, name: '办公楼' },
  972. { value: 484, name: '实验楼' },
  973. { value: 300, name: '食堂' },
  974. ],
  975. label: { show: true, formatter: '{b}: {c}' },
  976. },
  977. ],
  978. color: ['#5470C6', '#91CC75', '#FAC858', '#EE6666', '#73C0DE'],
  979. },
  980. },
  981. // 右侧边栏:第四个图表 mock(堆叠柱状图) by xu 20260108
  982. sidebarMockChart4: {
  983. title: '各区域预约情况',
  984. height: '220px',
  985. options: {
  986. grid: { left: 40, right: 10, top: 30, bottom: 30 },
  987. xAxis: { type: 'category', data: ['东区', '西区', '南区', '北区', '中区'] },
  988. yAxis: { type: 'value' },
  989. legend: { data: ['已预约', '使用中', '空闲'] },
  990. series: [
  991. {
  992. type: 'bar',
  993. name: '已预约',
  994. stack: 'total',
  995. data: [120, 132, 101, 134, 90],
  996. },
  997. {
  998. type: 'bar',
  999. name: '使用中',
  1000. stack: 'total',
  1001. data: [220, 182, 191, 234, 290],
  1002. },
  1003. {
  1004. type: 'bar',
  1005. name: '空闲',
  1006. stack: 'total',
  1007. data: [150, 232, 201, 154, 190],
  1008. },
  1009. ],
  1010. color: ['#5470C6', '#91CC75', '#FAC858'],
  1011. },
  1012. },
  1013. // 右侧边栏:第五个图表 mock(雷达图) by xu 20260108
  1014. sidebarMockChart5: {
  1015. title: '设施综合评分',
  1016. height: '220px',
  1017. options: {
  1018. radar: {
  1019. indicator: [
  1020. { name: '设备', max: 100 },
  1021. { name: '环境', max: 100 },
  1022. { name: '服务', max: 100 },
  1023. { name: '维护', max: 100 },
  1024. { name: '安全', max: 100 },
  1025. { name: '管理', max: 100 },
  1026. ],
  1027. },
  1028. series: [
  1029. {
  1030. type: 'radar',
  1031. data: [
  1032. {
  1033. value: [85, 90, 78, 82, 88, 80],
  1034. name: '本季度',
  1035. },
  1036. ],
  1037. },
  1038. ],
  1039. color: ['#5470C6'],
  1040. },
  1041. },
  1042. // 右侧边栏:分区配置 by xu 20260106
  1043. sidebarPanels: [],
  1044. searchButtonConfigCheckId: '99',
  1045. searchButtonConfig: [
  1046. {
  1047. id: "99",
  1048. desc: "所有",
  1049. callback: () => {
  1050. $("[name=pageNo]").val('1');
  1051. $("[name=management]").val('99');
  1052. $("#myForm").submit();
  1053. },
  1054. },
  1055. {
  1056. id: "2",
  1057. desc: "管理",
  1058. callback: () => {
  1059. $("[name=pageNo]").val('1');
  1060. $("[name=management]").val('2');
  1061. $("#myForm").submit();
  1062. },
  1063. },
  1064. {
  1065. id: "1",
  1066. desc: "创建",
  1067. callback: () => {
  1068. $("[name=pageNo]").val('1');
  1069. $("[name=management]").val('1');
  1070. $("#myForm").submit();
  1071. },
  1072. },
  1073. {
  1074. id: "3",
  1075. desc: "已办",
  1076. callback: () => {
  1077. $("[name=pageNo]").val('1');
  1078. $("[name=management]").val('3');
  1079. $("#myForm").submit();
  1080. },
  1081. },
  1082. {
  1083. id: "55",
  1084. desc: "停用",
  1085. callback: () => {
  1086. $("[name=pageNo]").val('1');
  1087. $("[name=management]").val('55');
  1088. $("#myForm").submit();
  1089. },
  1090. },
  1091. ],
  1092. // 状态筛选配置 by xu 20260105
  1093. statusFilterCheckId: 'all',
  1094. statusFilterConfig: [
  1095. {
  1096. id: "all",
  1097. desc: "状态",
  1098. callback: () => {
  1099. console.log('筛选:全部状态');
  1100. // 这里添加筛选逻辑
  1101. },
  1102. },
  1103. {
  1104. id: "available",
  1105. desc: "可选",
  1106. callback: () => {
  1107. console.log('筛选:可选状态');
  1108. // 这里添加筛选逻辑
  1109. },
  1110. },
  1111. {
  1112. id: "unavailable",
  1113. desc: "已选",
  1114. callback: () => {
  1115. console.log('筛选:已选状态');
  1116. // 这里添加筛选逻辑
  1117. },
  1118. },
  1119. {
  1120. id: "disabled",
  1121. desc: "禁选",
  1122. callback: () => {
  1123. console.log('筛选:禁选状态');
  1124. // 这里添加筛选逻辑
  1125. },
  1126. },
  1127. ],
  1128. }
  1129. if (window.ss.dom.formElemConfig) {
  1130. Object.entries(window.ss.dom.formElemConfig).forEach(([key, config]) => {
  1131. data[key] = config.value;
  1132. // 处理 objPicker
  1133. if (config.type === window.ss.dom.TYPE.OBJPICKER) {
  1134. data[key + "ObjPicker"] = true;
  1135. data[key + "Option"] = [];
  1136. data[key + "Url"] = config.optUrl;
  1137. }
  1138. })
  1139. }
  1140. console.log('data:' + JSON.stringify(data));
  1141. SS.ready(function () {
  1142. window.ss.dom.initializeFormApp({
  1143. el: "#app",
  1144. data() {
  1145. return data;
  1146. },
  1147. methods: {
  1148. // 功能:探测当前业务列表卡片类型,用于网格列最小宽度 by xu 20260109
  1149. detectCardGridKind() {
  1150. const all = []
  1151. .concat(this.listConfig?.draftbox || [])
  1152. .concat(this.listConfig?.list || []);
  1153. // 真实业务中形态一致;这里按“最大”优先:thumbnail > photo > none by xu 20260109
  1154. if (all.some(it => String(it?.thumbType || '').trim() === 'thumbnail')) return 'thumbnail';
  1155. if (all.some(it => !!it?.thumb || !!it?.thumbType)) return 'photo';
  1156. return 'none';
  1157. },
  1158. // 初始化右侧边栏分区(人员分区 items 指向 selectedItems) by xu 20260106
  1159. initSidebarPanels() {
  1160. this.sidebarPanels = [
  1161. {
  1162. type: 'list',
  1163. title: '人员',
  1164. count: 0,
  1165. // header:仅保留一个筛选条件(下拉)+ 搜索按钮(mock) by xu 20260106
  1166. iconClass: 'menu-icon icon-obj-ry',
  1167. headerFilters: [
  1168. {
  1169. // 关键词筛选(使用封装组件,不做下拉 mock) by xu 20260106
  1170. key: 'keyword',
  1171. component: 'ss-search-input',
  1172. props: { name: 'keyword', placeholder: '人员', width: '140px' },
  1173. value: '',
  1174. },
  1175. ],
  1176. headerSearchButton: true,
  1177. onSearch: ({ keyword, filters }) => console.log('人员搜索', keyword, filters),
  1178. // 人员列表暂不承载“已选”,后续接接口返回列表 by xu 20260106
  1179. mode: 'selected',
  1180. items: [],
  1181. itemAction: false,
  1182. },
  1183. {
  1184. type: 'list',
  1185. title: '已选',
  1186. // 左侧选中进入此面板 by xu 20260106
  1187. count: this.selectedItems.length,
  1188. iconClass: 'menu-icon icon-obj-xcd',
  1189. // 选中类分区:右侧关闭按钮=清空 by xu 20260106
  1190. closable: true,
  1191. mode: 'selected',
  1192. items: this.selectedItems,
  1193. itemLayout: 'person',
  1194. itemAction: true,
  1195. onClear: () => {
  1196. // 清空已选并重置左侧角标状态 by xu 20260106
  1197. this.selectedItems.forEach((it) => { if (it) it._ssSelected = false; });
  1198. this.selectedItems.splice(0);
  1199. this.updatePickedPanelCount();
  1200. console.log('清空:已选');
  1201. },
  1202. },
  1203. {
  1204. type: 'list',
  1205. title: '服务',
  1206. count: this.sidebarMockService.length,
  1207. iconClass: 'menu-icon icon-obj-wp',
  1208. // 选中类分区:右侧关闭按钮=清空 by xu 20260106
  1209. closable: true,
  1210. mode: 'selected',
  1211. items: this.sidebarMockService,
  1212. itemAction: false,
  1213. onClear: () => { this.sidebarMockService.splice(0); console.log('清空:服务'); },
  1214. },
  1215. {
  1216. type: 'list',
  1217. title: '预定',
  1218. count: this.sidebarMockReserve.length,
  1219. iconClass: 'menu-icon icon-obj-cd',
  1220. // 选中类分区:右侧关闭按钮=清空 by xu 20260106
  1221. closable: true,
  1222. mode: 'selected',
  1223. items: this.sidebarMockReserve,
  1224. itemAction: false,
  1225. onClear: () => { this.sidebarMockReserve.splice(0); console.log('清空:预定'); },
  1226. },
  1227. {
  1228. type: 'chart',
  1229. title: this.sidebarMockChart.title,
  1230. iconClass: 'menu-icon icon-obj-jzw',
  1231. height: this.sidebarMockChart.height,
  1232. options: this.sidebarMockChart.options,
  1233. },
  1234. {
  1235. type: 'chart',
  1236. title: this.sidebarMockChart2.title,
  1237. iconClass: 'menu-icon icon-obj-jzw',
  1238. height: this.sidebarMockChart2.height,
  1239. options: this.sidebarMockChart2.options,
  1240. },
  1241. {
  1242. type: 'chart',
  1243. title: this.sidebarMockChart3.title,
  1244. iconClass: 'menu-icon icon-obj-jzw',
  1245. height: this.sidebarMockChart3.height,
  1246. options: this.sidebarMockChart3.options,
  1247. },
  1248. {
  1249. type: 'chart',
  1250. title: this.sidebarMockChart4.title,
  1251. iconClass: 'menu-icon icon-obj-jzw',
  1252. height: this.sidebarMockChart4.height,
  1253. options: this.sidebarMockChart4.options,
  1254. },
  1255. {
  1256. type: 'chart',
  1257. title: this.sidebarMockChart5.title,
  1258. iconClass: 'menu-icon icon-obj-jzw',
  1259. height: this.sidebarMockChart5.height,
  1260. options: this.sidebarMockChart5.options,
  1261. },
  1262. ];
  1263. },
  1264. // 更新已选分区计数 by xu 20260106
  1265. updatePickedPanelCount() {
  1266. const pickedPanel = this.sidebarPanels?.[1];
  1267. if (pickedPanel) pickedPanel.count = this.selectedItems.length;
  1268. },
  1269. // 左侧卡片角标选中 -> 同步到右侧边栏 by xu 20260106
  1270. handleToggleSelect({ item, selected, exclusive }) {
  1271. if (!item) return;
  1272. // 已选分区:补充人员号(中间槽位) by xu 20260106
  1273. if (!item.meta) item.meta = String(202500000 + this.selectedItems.length + 1);
  1274. // 卡片主体单选互斥:仅当本次切到选中时清理其他选择 by xu 20260109
  1275. if (exclusive && selected && this.cardClickAction === 'single') {
  1276. this.selectedItems.forEach((it) => { if (it && it !== item) it._ssSelected = false; });
  1277. // 重要:不要重新赋值数组,否则 sidebarPanels 内部 items 仍引用旧数组 by xu 20260109
  1278. this.selectedItems.splice(0, this.selectedItems.length);
  1279. this.selectedItems.push(item);
  1280. this.updatePickedPanelCount();
  1281. return;
  1282. }
  1283. const idx = this.selectedItems.indexOf(item);
  1284. if (selected) {
  1285. if (idx === -1) this.selectedItems.push(item);
  1286. } else {
  1287. if (idx > -1) this.selectedItems.splice(idx, 1);
  1288. }
  1289. this.updatePickedPanelCount();
  1290. },
  1291. // 右侧边栏移除 -> 反向同步左侧卡片状态 by xu 20260106
  1292. handleSidebarRemove(item) {
  1293. if (!item) return;
  1294. item._ssSelected = false;
  1295. const idx = this.selectedItems.indexOf(item);
  1296. if (idx > -1) this.selectedItems.splice(idx, 1);
  1297. this.updatePickedPanelCount();
  1298. },
  1299. handlePageChange({ pageNo, rowNumPer, rowNum }) {
  1300. // 更新隐藏表单值
  1301. document.getElementsByName('pageNo')[0].value = pageNo;
  1302. document.getElementsByName('rowNumPer')[0].value = rowNumPer;
  1303. document.getElementsByName('rowNum')[0].value = rowNum;
  1304. // 提交表单
  1305. document.getElementById('myForm').submit();
  1306. },
  1307. search() {
  1308. document.getElementById('myForm').submit();
  1309. }
  1310. },
  1311. mounted() {
  1312. // 初始化 sidebar 分区 by xu 20260106
  1313. this.initSidebarPanels();
  1314. // 初始化卡片网格类型(用于自动分列/宽度平分) by xu 20260109
  1315. this.cardGridKind = this.detectCardGridKind();
  1316. // const self = this;
  1317. // // 在这里可以使用 Vue 实例
  1318. // Object.entries(this.$data).forEach(([key, value]) => {
  1319. // // 处理 objPicker
  1320. // if (key.includes('ObjPicker')) {
  1321. // const originalKey = key.replace('ObjPicker', '');
  1322. // if (value) {
  1323. // objPickerLoad(value, key).then(result => {
  1324. // if(self.formElemConfig[originalKey]) {
  1325. // self.formElemConfig[originalKey].name = originalKey;
  1326. // self.formElemConfig[originalKey].options = result;
  1327. // }
  1328. // });
  1329. // }
  1330. // }
  1331. // });
  1332. }
  1333. });
  1334. });
  1335. tokenCleanser("/service?ssToken=f6ecb50245aa478b95d800e754fa86eb&P_A=ss.clearPageToken__", { tokenList: "d66b3011932e436f841ea8cacc05209f,b59e43bcf08b490c80a473de3b24c941,f5c366661b004dfbb69ea6ed72fa8eb3,b2f666ee35f5439e99339cff519c8234,ecf4a2c3a58c487f83cf58058c0da8e6,1d1a696ba493452d9f688344eff45b21,31d5c01f958f4532b503179fe9e06569,cb131510e4df4a558cc61095f4d6d6ff,c0aea92348dd4cadaceef1cb50561c41,d7ea3255174346739c8bb813bff85921,d6b72d581a724a528a5b7e07ed18d928,c38a5fd0066b409fb8280bb88b19da8c,1dcdc0625b15423ca6ad71b7a3d93f25,f5e38a2a826b463389110a2b64f2eeef,6c222f70c61c4e15ba21447648f6bec3,80ea5c7cdc23426ab126473d9228fc9f,a87f50f2c3654eba849ca0f03409831b,980c1860fbaa45b1888faea7c97e4ab4,4613780c52534a79ba80c0aaddd3b9c7,5a8db34cc8a04be0a08cc0e3f6fe00c6,18e085e0c31549efa9597733d32e32a0,ba8f7c48fea14306900c50e668b64621,8f5a0337b9f1436ca8a053586f6020cf,f6ecb50245aa478b95d800e754fa86eb" });
  1336. </script>