data.ts 9.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456
  1. import { BasicColumn } from '/@/components/Table';
  2. import { SCENE_TYPE } from '/@/settings/siteSetting';
  3. import { Time } from '/@/components/Time';
  4. import { jyPlatformlist, sceneGroupCount } from '/@/api/jyUserPlatform/index'; //roleLIstApi
  5. import dayjs from 'dayjs';
  6. import { h } from 'vue';
  7. export const columns: BasicColumn[] = [
  8. {
  9. title: '场景标题',
  10. dataIndex: 'sceneName',
  11. ellipsis: true,
  12. slots: { customRender: 'href' },
  13. resizable: true,
  14. minWidth: 150,
  15. width: 150,
  16. },
  17. {
  18. title: '人员编号',
  19. dataIndex: 'userName',
  20. width: 100,
  21. },
  22. {
  23. title: '姓名',
  24. dataIndex: 'nickName',
  25. width: 100,
  26. customRender: ({ record }) => {
  27. return record.nickName || '-';
  28. },
  29. },
  30. {
  31. title: '浏览量',
  32. dataIndex: 'viewCount',
  33. width: 80,
  34. },
  35. {
  36. title: '状态',
  37. dataIndex: 'status',
  38. slots: { customRender: 'status' },
  39. width: 120,
  40. // customRender: ({ record }) => {
  41. // let str;
  42. // switch (record.status - 0) {
  43. // case 0:
  44. // str = '计算中';
  45. // break;
  46. // case 1:
  47. // str = '计算成功';
  48. // break;
  49. // case -2:
  50. // str = '计算成功';
  51. // break;
  52. // case -1:
  53. // str = '计算失败';
  54. // break;
  55. // }
  56. // return record.payStatus == -2 ? '封存' : str;
  57. // },
  58. },
  59. {
  60. title: '相机类型',
  61. dataIndex: 'type',
  62. defaultHidden: true,
  63. width: 120,
  64. customRender: ({ record }) => {
  65. let str;
  66. switch (record.type) {
  67. case 0:
  68. str = SCENE_TYPE[1];
  69. break;
  70. case 1:
  71. str = SCENE_TYPE[0];
  72. break;
  73. case 2:
  74. str = SCENE_TYPE[2];
  75. break;
  76. case 5:
  77. str = SCENE_TYPE[4];
  78. break;
  79. case 6:
  80. str = SCENE_TYPE[3];
  81. break;
  82. case 7:
  83. str = SCENE_TYPE[3];
  84. break;
  85. case 8:
  86. str = SCENE_TYPE[4];
  87. break;
  88. case 9:
  89. str = SCENE_TYPE[0];
  90. break;
  91. case 10:
  92. str = SCENE_TYPE[2];
  93. break;
  94. case 11:
  95. str = SCENE_TYPE[3];
  96. break;
  97. }
  98. return str;
  99. },
  100. },
  101. {
  102. title: '场景码',
  103. dataIndex: 'num',
  104. ellipsis: true,
  105. width: 180,
  106. defaultHidden: true,
  107. },
  108. {
  109. title: '拍摄时间',
  110. dataIndex: 'createTime',
  111. width: 180,
  112. customRender: ({ record }) => {
  113. return (
  114. record.createTime &&
  115. h(Time, {
  116. value: record.createTime,
  117. mode: 'datetime',
  118. })
  119. );
  120. },
  121. },
  122. {
  123. title: '是否复制',
  124. dataIndex: 'isCopy',
  125. width: 80,
  126. defaultHidden: true,
  127. customRender: ({ record }) => {
  128. return record.isCopy ? '是' : '否';
  129. },
  130. },
  131. {
  132. title: '计算完成时间',
  133. dataIndex: 'amount',
  134. width: 180,
  135. customRender: ({ record }) => {
  136. return (
  137. (record.algorithmTime &&
  138. h(Time, {
  139. value: record.algorithmTime,
  140. mode: 'datetime',
  141. })) ||
  142. '-'
  143. );
  144. },
  145. },
  146. {
  147. title: '计算时长',
  148. dataIndex: 'amountdf',
  149. width: 180,
  150. customRender: ({ record }) => {
  151. const startBuildTime = record.startBuildTime;
  152. if (!record.algorithmTime || !startBuildTime) return '-';
  153. let seconds = dayjs(record.algorithmTime).diff(dayjs(startBuildTime), 'seconds');
  154. if (record.statusString == '计算中') {
  155. seconds = dayjs().diff(dayjs(startBuildTime), 'seconds');
  156. }
  157. return convertSeconds(seconds);
  158. },
  159. },
  160. {
  161. title: 'SN码',
  162. dataIndex: 'snCode',
  163. defaultHidden: true,
  164. width: 180,
  165. },
  166. {
  167. title: '场景大小',
  168. dataIndex: 'sceneSize',
  169. width: 80,
  170. customRender: ({ record }) => {
  171. return record.sceneSize && record.sceneSize != 0
  172. ? h('span', { class: 'sceneSize' }, Math.ceil(record.sceneSize / 1024 / 1024) + 'M')
  173. : '-';
  174. },
  175. },
  176. {
  177. title: '复制时间',
  178. dataIndex: 'copyTime',
  179. width: 180,
  180. defaultHidden: true,
  181. customRender: ({ record }) => {
  182. return record.copyTime
  183. ? h(Time, {
  184. value: record.copyTime,
  185. mode: 'datetime',
  186. })
  187. : '-';
  188. },
  189. },
  190. // {
  191. // title: '平台',
  192. // dataIndex: 'platformName',
  193. // ifShow: false,
  194. // width: 120,
  195. // },
  196. {
  197. title: '操作',
  198. dataIndex: 'action',
  199. //ifShow: tableType.value == 2,
  200. slots: { customRender: 'action' },
  201. // fixed: 'right',
  202. flag: 'ACTION',
  203. width: 400,
  204. },
  205. ];
  206. export const columnsAll: BasicColumn[] = [
  207. {
  208. title: '场景标题',
  209. dataIndex: 'sceneName',
  210. ellipsis: true,
  211. slots: { customRender: 'href' },
  212. resizable: true,
  213. minWidth: 150,
  214. width: 150,
  215. },
  216. {
  217. title: '人员编号',
  218. dataIndex: 'userName',
  219. width: 100,
  220. },
  221. {
  222. title: '姓名',
  223. dataIndex: 'nickName',
  224. width: 100,
  225. customRender: ({ record }) => {
  226. return record.nickName || '-';
  227. },
  228. },
  229. {
  230. title: '状态',
  231. dataIndex: 'status',
  232. slots: { customRender: 'status' },
  233. width: 120,
  234. // customRender: ({ record }) => {
  235. // let str;
  236. // switch (record.status - 0) {
  237. // case 0:
  238. // str = '计算中';
  239. // break;
  240. // case 1:
  241. // str = '计算成功';
  242. // break;
  243. // case -2:
  244. // str = '计算成功';
  245. // break;
  246. // case -1:
  247. // str = '计算失败';
  248. // break;
  249. // }
  250. // return record.payStatus == -2 ? '封存' : str;
  251. // },
  252. },
  253. {
  254. title: '相机类型',
  255. dataIndex: 'type',
  256. defaultHidden: true,
  257. width: 120,
  258. customRender: ({ record }) => {
  259. let str;
  260. switch (record.type) {
  261. case 0:
  262. str = SCENE_TYPE[1];
  263. break;
  264. case 1:
  265. str = SCENE_TYPE[0];
  266. break;
  267. case 2:
  268. str = SCENE_TYPE[2];
  269. break;
  270. case 5:
  271. str = SCENE_TYPE[4];
  272. break;
  273. case 6:
  274. str = SCENE_TYPE[3];
  275. break;
  276. case 7:
  277. str = SCENE_TYPE[3];
  278. break;
  279. case 8:
  280. str = SCENE_TYPE[4];
  281. break;
  282. case 9:
  283. str = SCENE_TYPE[0];
  284. break;
  285. case 10:
  286. str = SCENE_TYPE[2];
  287. break;
  288. case 11:
  289. str = SCENE_TYPE[3];
  290. break;
  291. }
  292. return str;
  293. },
  294. },
  295. {
  296. title: '场景码',
  297. dataIndex: 'num',
  298. ellipsis: true,
  299. width: 180,
  300. },
  301. {
  302. title: '拍摄时间',
  303. dataIndex: 'createTime',
  304. width: 180,
  305. customRender: ({ record }) => {
  306. return (
  307. record.createTime &&
  308. h(Time, {
  309. value: record.createTime,
  310. mode: 'datetime',
  311. })
  312. );
  313. },
  314. },
  315. {
  316. title: '计算完成时间',
  317. dataIndex: 'amount',
  318. width: 180,
  319. customRender: ({ record }) => {
  320. return (
  321. (record.algorithmTime &&
  322. h(Time, {
  323. value: record.algorithmTime,
  324. mode: 'datetime',
  325. })) ||
  326. '-'
  327. );
  328. },
  329. },
  330. {
  331. title: '计算时长',
  332. dataIndex: 'amountdf',
  333. width: 180,
  334. customRender: ({ record }) => {
  335. const startBuildTime = record.startBuildTime;
  336. if (!record.algorithmTime || !startBuildTime) return '-';
  337. let seconds = dayjs(record.algorithmTime).diff(dayjs(startBuildTime), 'seconds');
  338. if (record.statusString == '计算中') {
  339. seconds = dayjs().diff(dayjs(startBuildTime), 'seconds');
  340. }
  341. return convertSeconds(seconds);
  342. },
  343. },
  344. {
  345. title: 'SN码',
  346. dataIndex: 'snCode',
  347. width: 180,
  348. },
  349. {
  350. title: '场景大小',
  351. dataIndex: 'sceneSize',
  352. width: 80,
  353. customRender: ({ record }) => {
  354. return record.sceneSize && record.sceneSize != 0
  355. ? h('span', { class: 'sceneSize' }, Math.ceil(record.sceneSize / 1024 / 1024) + 'M')
  356. : '-';
  357. },
  358. },
  359. {
  360. title: '所属平台',
  361. dataIndex: 'platformName',
  362. width: 120,
  363. },
  364. ];
  365. export const searchFormData = (show) => [
  366. {
  367. field: 'sceneName',
  368. label: '场景标题',
  369. component: 'Input',
  370. componentProps: {
  371. maxLength: 100,
  372. },
  373. colProps: {
  374. span: 6,
  375. },
  376. },
  377. {
  378. field: 'userName',
  379. label: '人员编号',
  380. component: 'Input',
  381. componentProps: {
  382. maxLength: 100,
  383. },
  384. colProps: {
  385. span: 6,
  386. },
  387. },
  388. {
  389. field: 'type',
  390. label: '相机类型',
  391. component: 'ApiSelect',
  392. componentProps: {
  393. style: { maxWidth: '250px', placeholder: '全部' },
  394. placeholder: '全部',
  395. api: sceneGroupCount,
  396. immediate: false,
  397. resultField: 'list',
  398. labelField: 'name',
  399. valueField: 'id',
  400. params: { type: 'camera' },
  401. },
  402. colProps: {
  403. span: 6,
  404. },
  405. },
  406. {
  407. field: 'num',
  408. label: '场景码',
  409. component: 'Input',
  410. componentProps: {
  411. maxLength: 100,
  412. },
  413. colProps: {
  414. span: 6,
  415. },
  416. },
  417. {
  418. field: 'snCode',
  419. label: 'SN 码',
  420. component: 'Input',
  421. componentProps: {
  422. maxLength: 100,
  423. },
  424. colProps: {
  425. span: 6,
  426. },
  427. },
  428. {
  429. field: 'platform',
  430. label: '平台',
  431. component: 'ApiSelect',
  432. show: !!show,
  433. componentProps: {
  434. style: { maxWidth: '250px', placeholder: '全部' },
  435. placeholder: '全部',
  436. api: sceneGroupCount,
  437. immediate: false,
  438. resultField: 'list',
  439. labelField: 'name',
  440. valueField: 'id',
  441. },
  442. colProps: {
  443. span: 6,
  444. },
  445. },
  446. ];
  447. function convertSeconds(seconds) {
  448. if (seconds == 'NaN') return;
  449. const days = seconds > 3600 * 24 ? Math.floor(seconds / (3600 * 24)) : 0;
  450. const hours = seconds > 3600 ? Math.floor((seconds % (3600 * 24)) / 3600) : 0;
  451. const minutes = Math.floor((seconds % 3600) / 60);
  452. const remainingSeconds = seconds % 60;
  453. return `${(days && days + '天') || ''} ${(hours && hours + '小时') || ''} ${minutes || '0'}分钟 ${
  454. remainingSeconds || '0'
  455. }秒`;
  456. }