methodsTool.js 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537
  1. import * as baseUrls from "@/utils/request.js";
  2. import api from '@/api/api'
  3. import router from '@/router/index'//引入路由对象
  4. // import { map } from "core-js/core/array";
  5. export default {
  6. getGoodsType(status = true) {
  7. let type = [
  8. {
  9. label: "视频",
  10. value: 1,
  11. },
  12. {
  13. label: "题库",
  14. value: 2,
  15. },
  16. {
  17. label: "补考",
  18. value: 3,
  19. },
  20. {
  21. label: "前培",
  22. value: 4,
  23. },
  24. {
  25. label: "直播",
  26. value: 6,
  27. },]
  28. if (status) {
  29. return type
  30. } else {
  31. type.unshift({ label: "全部", value: "" })
  32. return type
  33. }
  34. },
  35. getUrl() {
  36. return baseUrls.BASE_IMG_URL + '/'
  37. },
  38. isLogin() {
  39. if (uni.getStorageSync('union_id')) {
  40. return true;
  41. } else {
  42. return false
  43. }
  44. },
  45. splitImgHost(url) {
  46. if (!url) {
  47. return ''
  48. }
  49. if (url.indexOf("http") != -1 || url.indexOf("https") != -1 || url.indexOf("base64") != -1) {
  50. return url;
  51. }
  52. return baseUrls.BASE_IMG_URL + '/' + url
  53. },
  54. onlyForma(timeStamp, Diszing = true) {
  55. if (!timeStamp) {
  56. return
  57. }
  58. var date = new Date(timeStamp * 1000); //时间戳为10位需*1000,时间戳为13位的话不需乘1000
  59. var Y = date.getFullYear() + '-';
  60. var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';
  61. var D = date.getDate() < 10 ? '0' + date.getDate() : date.getDate();
  62. var h = (date.getHours() < 10 ? '0' + date.getHours() : date.getHours()) + ':';
  63. var m = (date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()) + ':';
  64. var s = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds();
  65. if (Diszing) {
  66. return Y + M + D + ' ' + h + m + s; //时分秒可以根据自己的需求加上
  67. }
  68. return Y + M + D;
  69. },
  70. /**
  71. *
  72. * @returns 获取当前时间戳
  73. */
  74. getNewTime() {
  75. var data = new Date().getTime()
  76. return data
  77. },
  78. //判断是否为数字
  79. isNotANumber(inputData) {
  80. //isNaN(inputData)不能判断空串或一个空格
  81. //如果是一个空串或是一个空格,而isNaN是做为数字0进行处理的,而parseInt与parseFloat是返回一个错误消息,这个isNaN检查不严密而导致的。
  82. if (parseFloat(inputData).toString() == "NaN") {
  83. //alert("请输入数字……");注掉,放到调用时,由调用者弹出提示。
  84. return false;
  85. } else {
  86. return true;
  87. }
  88. },
  89. //判断是否为数组
  90. isArrayFn(o) {
  91. return Object.prototype.toString.call(o) === '[object Array]';
  92. },
  93. computedAge(birthday) {
  94. let birthDayTime = new Date(birthday).getTime();
  95. //当前时间 毫秒
  96. let nowTime = new Date().getTime();
  97. //一年毫秒数(365 * 86400000 = 31536000000)
  98. return Math.ceil((nowTime - birthDayTime) / 31536000000);
  99. },
  100. time10to13(time, int) {
  101. if (time === null) {
  102. return null
  103. }
  104. // int = 1 为13转10
  105. // int = 2 为10转13
  106. if (int === 1) {
  107. return parseInt(time / 1000)
  108. } else {
  109. return parseInt(time * 1000)
  110. }
  111. },
  112. //计算两个时间之间的时间差 多少天时分秒
  113. intervalTime(startTime, endTime) {
  114. // var timestamp=new Date().getTime(); //计算当前时间戳
  115. var timestamp = (Date.parse(new Date())) / 1000;//计算当前时间戳 (毫秒级)
  116. var date1 = ""; //开始时间
  117. if (timestamp < startTime) {
  118. date1 = startTime;
  119. } else {
  120. date1 = timestamp; //开始时间
  121. }
  122. var date2 = endTime; //结束时间
  123. // var date3 = date2.getTime() - date1.getTime(); //时间差的毫秒数
  124. var date3 = (date2 - date1) * 1000; //时间差的毫秒数
  125. //计算出相差天数
  126. var days = Math.floor(date3 / (24 * 3600 * 1000));
  127. //计算出小时数
  128. //2021-11-15 10:48:07 2021-11-15 17:34:39 406分钟
  129. var leave1 = date3 % (24 * 3600 * 1000); //计算天数后剩余的毫秒数
  130. var hours = Math.floor(leave1 / (3600 * 1000));
  131. //计算相差分钟数
  132. var leave2 = leave1 % (3600 * 1000); //计算小时数后剩余的毫秒数
  133. var minutes = Math.floor(leave2 / (60 * 1000));
  134. //计算相差秒数
  135. var leave3 = leave2 % (60 * 1000); //计算分钟数后剩余的毫秒数
  136. var seconds = Math.round(leave3 / 1000);
  137. console.log(days + "天 " + hours + "小时 ")
  138. // return days + "天 " + hours + "小时 " + minutes + " 分钟" + seconds + " 秒"
  139. return days + "天 " + hours + "小时 "
  140. },
  141. //计算两个时间之间的时间差 多少天时分秒
  142. newTime(endTime) {
  143. if (!endTime) {
  144. return '-'
  145. }
  146. var date1 = (Date.parse(new Date())) / 1000; //开始时间
  147. if (date1 > endTime) {
  148. return '0'
  149. }
  150. var date2 = endTime; //结束时间
  151. // var date3 = date2.getTime() - date1.getTime(); //时间差的毫秒数
  152. var date3 = (date2 - date1) * 1000; //时间差的毫秒数
  153. //计算出相差天数
  154. var days = Math.floor(date3 / (24 * 3600 * 1000));
  155. //计算出小时数
  156. //2021-11-15 10:48:07 2021-11-15 17:34:39 406分钟
  157. var leave1 = date3 % (24 * 3600 * 1000); //计算天数后剩余的毫秒数
  158. var hours = Math.floor(leave1 / (3600 * 1000));
  159. //计算相差分钟数
  160. var leave2 = leave1 % (3600 * 1000); //计算小时数后剩余的毫秒数
  161. var minutes = Math.floor(leave2 / (60 * 1000));
  162. //计算相差秒数
  163. var leave3 = leave2 % (60 * 1000); //计算分钟数后剩余的毫秒数
  164. var seconds = Math.round(leave3 / 1000);
  165. return days + "天" + hours + "小时" + minutes + "分钟" + seconds + "秒"
  166. // return days
  167. },
  168. /**
  169. *
  170. * @param {int} result
  171. * @returns {string}
  172. * @remard 单位S转小时分钟秒
  173. */
  174. secondToDate(result, Diszing = true) {
  175. var h = Math.floor(result / 3600) < 10 ? '0' + Math.floor(result / 3600) : Math.floor(result / 3600);
  176. var m = Math.floor((result / 60 % 60)) < 10 ? '0' + Math.floor((result / 60 % 60)) : Math.floor((result / 60 % 60));
  177. var s = Math.floor((result % 60)) < 10 ? '0' + Math.floor((result % 60)) : Math.floor((result % 60));
  178. if (h == 0 && Diszing) {
  179. result = m + ":" + s;
  180. } else {
  181. result = h + ':' + m + ":" + s
  182. }
  183. return result;
  184. },
  185. /**
  186. * @param {string} result
  187. * @returns int
  188. * @remard 00:00:00格式转秒
  189. */
  190. secondFormDate(result) {
  191. if (result) {
  192. let reTime = result.split(":").map(Number)
  193. var hs = reTime[0] * 60 * 60
  194. var ms = reTime[1] * 60
  195. var ss = reTime[2]
  196. return hs + ms + ss
  197. } else {
  198. return 0
  199. }
  200. },
  201. /**
  202. * 扁平结构转换成树形结构 ---最佳性能方法
  203. * @param {Arrays} items 数据
  204. * @param {Strings} Id 参数名称 例如:'id' 默认id
  205. * @param {Strings} pId 参数名称 例如:'pid' 默认 pid
  206. * @returns 返回树形结构
  207. */
  208. arrayToTree(items, Id = 'id', pId = 'pid') {
  209. const result = []; // 存放结果集
  210. const itemMap = {}; //
  211. for (const item of items) {
  212. const id = item[Id];
  213. const pid = item[pId];
  214. if (!itemMap[id]) {
  215. itemMap[id] = {
  216. children: [],
  217. };
  218. }
  219. itemMap[id] = {
  220. ...item,
  221. children: itemMap[id]["children"],
  222. };
  223. const treeItem = itemMap[id];
  224. if (pid === 0) {
  225. result.push(treeItem);
  226. } else {
  227. if (!itemMap[pid]) {
  228. itemMap[pid] = {
  229. children: [],
  230. };
  231. }
  232. itemMap[pid].children.push(treeItem);
  233. }
  234. }
  235. return result;
  236. },
  237. //JS计算两个时间戳相差月数、天数、时数、分钟、秒数
  238. humandate(time1, time2) {
  239. // var time1 = Date.parse(new Date()) / 1000;
  240. var s = time1 - time2;
  241. if (s < 0) {
  242. s = Math.abs(s);
  243. }
  244. return parseInt(s / 60) + '分钟'
  245. console.log(s)
  246. // if (s > 31536000) {
  247. // return formatDate(new Date(time2 * 1000));
  248. // } else if (s > 2592000) {
  249. // return parseInt(s / 2592000) + '月';
  250. // } else if (s > 86400) {
  251. // return parseInt(s / 86400) + '天';
  252. // } else if (s > 3600) {
  253. // return parseInt(s / 3600) + '小时';
  254. // } else if (s > 60) {
  255. // return parseInt(s / 60) + '分钟';
  256. // } else {
  257. // return parseInt(s) + '秒';
  258. // }
  259. },
  260. //判断是否过期 true过期 false未过期
  261. expiredTime(items) {
  262. var currentTime = parseInt(Date.parse(new Date()) / 1000)
  263. if (currentTime > items) {
  264. return true
  265. } else {
  266. return false
  267. }
  268. },
  269. /**
  270. * int 0.今天时间戳范围 1.昨天时间戳范围 2.7天时间戳范围
  271. */
  272. timestampConvert(int) {
  273. var date1, date2
  274. switch (int) {
  275. case 0:
  276. date1 = new Date(new Date().toLocaleDateString()).getTime()
  277. date2 = new Date().getTime()
  278. break;
  279. case 1:
  280. date1 = new Date(new Date().toLocaleDateString()).getTime() - 86400000
  281. date2 = new Date(new Date().toLocaleDateString()).getTime() - 1000
  282. break;
  283. case 2:
  284. date1 = new Date(new Date().toLocaleDateString()).getTime() - 604800000
  285. date2 = new Date().getTime()
  286. break;
  287. default:
  288. break;
  289. }
  290. return [parseInt(date1), parseInt(date2)]
  291. },
  292. getQueryVariable(variable) {
  293. var query = window.location.search.substring(1);
  294. var vars = query.split("&");
  295. for (var i = 0; i < vars.length; i++) {
  296. var pair = vars[i].split("=");
  297. if (pair[0] == variable) { return pair[1]; }
  298. }
  299. return (false);
  300. },
  301. setToken(tokenInfo, int) {
  302. var newTime = new Date().getTime()
  303. var ESTime = new Date().getTime() + 1000 * 60 * 60 * 24
  304. var SEVENTime = new Date().getTime() + 1000 * 60 * 60 * 24 * 7
  305. if (int === 1) {
  306. localStorage['Expiration' + this.getQueryVariable('TenantId')] = ESTime
  307. }
  308. if (int === 7) {
  309. localStorage['Expiration' + this.getQueryVariable('TenantId')] = SEVENTime
  310. }
  311. localStorage['token' + this.getQueryVariable('TenantId')] = tokenInfo
  312. },
  313. checkToken() {
  314. var newTime = new Date().getTime()
  315. var Time = localStorage['Expiration' + this.getQueryVariable('TenantId')]
  316. if (newTime > Time) {
  317. localStorage.removeItem('Expiration' + this.getQueryVariable('TenantId'))
  318. localStorage.removeItem('token' + this.getQueryVariable('TenantId'))
  319. setTimeout(() => {
  320. router.replace({
  321. path: `/login?TenantId=${this.getQueryVariable('TenantId')}`
  322. })
  323. }, 500)
  324. return
  325. } else {
  326. return localStorage.getItem('token' + this.getQueryVariable('TenantId'))
  327. }
  328. },
  329. delToken(status) {
  330. localStorage.removeItem('Expiration' + this.getQueryVariable('TenantId'))
  331. localStorage.removeItem('token' + this.getQueryVariable('TenantId'))
  332. if (status) {
  333. setTimeout(() => {
  334. router.replace({
  335. path: `/login?TenantId=${this.getQueryVariable('TenantId')}`
  336. })
  337. }, 500)
  338. }
  339. },
  340. /**
  341. *
  342. * @param {strings} name
  343. * @returns 获取localStorage缓存
  344. */
  345. storageGet(name) {
  346. return window.localStorage.getItem(name)
  347. },
  348. /**
  349. *
  350. * @param {strings} name
  351. * @param {strings} val
  352. * @returns 设置localStorage缓存
  353. */
  354. storageSet(name, val) {
  355. return window.localStorage.setItem(name, val)
  356. },
  357. /**
  358. *
  359. * @param {strings} name
  360. * @returns 移除指定name
  361. */
  362. storageRemove(name) {
  363. return window.localStorage.removeItem(name)
  364. },
  365. /**
  366. *
  367. * @param {Array} ids
  368. * @returns 缓存业务层级
  369. */
  370. cacheBusinessList(ids) {
  371. let newTime = new Date(new Date().toLocaleDateString()).getTime() // 获取当天时间戳
  372. if (this.storageGet('business')) {
  373. let businessList = JSON.parse(this.storageGet('business'))
  374. if (businessList.time != newTime) {
  375. this.storageRemove(business)
  376. this.cacheBusinessList(ids)
  377. } else {
  378. if (businessList.business.length) {
  379. let copyBusinList = JSON.parse(JSON.stringify(businessList.business))
  380. for (let i = 0; i < ids.length; i++) {
  381. let statusT = businessList.business.some(item => {
  382. return item.businessId == ids[i].businessId && item.subjectId == ids[i].subjectId
  383. })
  384. if (!statusT) {
  385. copyBusinList.push(ids[i])
  386. }
  387. }
  388. businessList.business = copyBusinList
  389. } else {
  390. businessList.business = ids
  391. }
  392. this.storageSet('business', JSON.stringify(businessList))
  393. }
  394. } else {
  395. let businessList = {
  396. time: newTime,
  397. business: ids
  398. }
  399. this.storageSet('business', JSON.stringify(businessList))
  400. }
  401. },
  402. /**
  403. *
  404. * @returns 获取缓存业务层级
  405. */
  406. getBusinessList() {
  407. let newTime = new Date(new Date().toLocaleDateString()).getTime() // 获取当天时间戳
  408. if (this.storageGet('business')) {
  409. let businessList = JSON.parse(this.storageGet('business'))
  410. if (businessList.time != newTime) {
  411. this.storageRemove('business')
  412. return []
  413. } else {
  414. return businessList.business
  415. }
  416. } else {
  417. return []
  418. }
  419. },
  420. /**
  421. *
  422. * @param {Arrays} arr 数据
  423. * @param {Strings} uniId 根据哪个参数去重
  424. * @returns 对象数组去重
  425. */
  426. uniqueFunc(arr, uniId) {
  427. const res = new Map();
  428. return arr.filter(
  429. (item) => !res.has(item[uniId]) && res.set(item[uniId], 1)
  430. );
  431. },
  432. /**
  433. *
  434. * @param {Number} int 2题库3补考4前培6直播
  435. * @returns 商品类型-返回固定校验列表
  436. */
  437. getTypeRules(int) {
  438. let arr = []
  439. switch (int) {
  440. case 2:
  441. arr = [{ "fieldName": "商品封面", "fieldKey": "coverUrl", "status": 1, "require": 0, "disabled": 1 }, { "fieldName": "年份", "fieldKey": "year", "status": 1, "require": 0, "disabled": 1 }, { "fieldName": "供应方(服务)", "fieldKey": "supplyId", "status": 1, "require": 0, "disabled": 1 }, { "fieldName": "商品类型", "fieldKey": "goodsType", "status": 1, "require": 1, "disabled": 1 }, { "fieldName": "教育类型", "fieldKey": "educationTypeId", "status": 1, "require": 1, "disabled": 1 }, { "fieldName": "业务层次", "fieldKey": "businessId", "status": 1, "require": 1, "disabled": 1 }, { "fieldName": "院校", "fieldKey": "schoolId", "status": 0, "require": 0, "disabled": 1 }, { "fieldName": "专业", "fieldKey": "majorId", "status": 1, "require": 0, "disabled": 1 }, { "fieldName": "科目", "fieldKey": "subjectIds", "status": 1, "require": 1, "disabled": 1 }, { "fieldName": "商品名称", "fieldKey": "goodsName", "status": 1, "require": 1, "disabled": 1 }, { "fieldName": "学时", "fieldKey": "classHours", "status": 1, "require": 0, "disabled": 1 }, { "fieldName": "商品标准价格", "fieldKey": "standPrice", "status": 1, "require": 1, "disabled": 1 }, { "fieldName": "商品最低价格", "fieldKey": "lowestPrice", "status": 1, "require": 1, "disabled": 1 }, { "fieldName": "商品标准价格明细表", "fieldKey": "standPriceJson", "status": 1, "require": 0, "disabled": 1 }, { "fieldName": "状态", "fieldKey": "status", "status": 1, "require": 1, "disabled": 1 }, { "fieldName": "商品有效期", "fieldKey": "timeArrays", "status": 1, "require": 1, "disabled": 1 }, { "fieldName": "课程内容", "fieldKey": "courseList", "status": 0, "require": 0, "disabled": 1 }, { "fieldName": "学习次数", "fieldKey": "studyCount", "status": 0, "require": 0, "disabled": 0 }, { "fieldName": "考试次数", "fieldKey": "examNumber", "status": 0, "require": 0, "disabled": 0 }, { "fieldName": "前培(刷题)机会", "fieldKey": "doNumber", "status": 0, "require": 0, "disabled": 0 }, { "fieldName": "学习服务期", "fieldKey": "serviceTimeType", "status": 1, "require": 1, "disabled": 0 }, { "fieldName": "关联证书", "fieldKey": "certificateTypeId", "status": 0, "require": 0, "disabled": 1 }, { "fieldName": "商品简介", "fieldKey": "introduce", "status": 1, "require": 0, "disabled": 1 }, { "fieldName": "适合对象", "fieldKey": "suitableObject", "status": 1, "require": 0, "disabled": 1 }, { "fieldName": "学员须知", "fieldKey": "buyNote", "status": 1, "require": 0, "disabled": 1 }, { "fieldName": "商品详情PC端", "fieldKey": "pcDetailHtml", "status": 1, "require": 0, "disabled": 1 }, { "fieldName": "商品详情手机端", "fieldKey": "mobileDetailHtml", "status": 1, "require": 0, "disabled": 1 }]
  442. break;
  443. case 3: case 4:
  444. arr = [{ "fieldName": "商品封面", "fieldKey": "coverUrl", "status": 1, "require": 0, "disabled": 1 }, { "fieldName": "年份", "fieldKey": "year", "status": 1, "require": 0, "disabled": 1 }, { "fieldName": "供应方(服务)", "fieldKey": "supplyId", "status": 1, "require": 0, "disabled": 1 }, { "fieldName": "商品类型", "fieldKey": "goodsType", "status": 1, "require": 1, "disabled": 1 }, { "fieldName": "教育类型", "fieldKey": "educationTypeId", "status": 1, "require": 1, "disabled": 1 }, { "fieldName": "业务层次", "fieldKey": "businessId", "status": 1, "require": 1, "disabled": 1 }, { "fieldName": "院校", "fieldKey": "schoolId", "status": 0, "require": 0, "disabled": 1 }, { "fieldName": "专业", "fieldKey": "majorId", "status": 1, "require": 0, "disabled": 1 }, { "fieldName": "科目", "fieldKey": "subjectIds", "status": 1, "require": 1, "disabled": 1 }, { "fieldName": "商品名称", "fieldKey": "goodsName", "status": 1, "require": 1, "disabled": 1 }, { "fieldName": "学时", "fieldKey": "classHours", "status": 1, "require": 0, "disabled": 1 }, { "fieldName": "商品标准价格", "fieldKey": "standPrice", "status": 1, "require": 1, "disabled": 1 }, { "fieldName": "商品最低价格", "fieldKey": "lowestPrice", "status": 1, "require": 1, "disabled": 1 }, { "fieldName": "商品标准价格明细表", "fieldKey": "standPriceJson", "status": 1, "require": 0, "disabled": 1 }, { "fieldName": "状态", "fieldKey": "status", "status": 1, "require": 1, "disabled": 1 }, { "fieldName": "商品有效期", "fieldKey": "timeArrays", "status": 1, "require": 1, "disabled": 1 }, { "fieldName": "课程内容", "fieldKey": "courseList", "status": 0, "require": 0, "disabled": 1 }, { "fieldName": "学习次数", "fieldKey": "studyCount", "status": 1, "require": 1, "disabled": 0 }, { "fieldName": "考试次数", "fieldKey": "examNumber", "status": 0, "require": 0, "disabled": 0 }, { "fieldName": "前培(刷题)机会", "fieldKey": "doNumber", "status": 0, "require": 0, "disabled": 0 }, { "fieldName": "学习服务期", "fieldKey": "serviceTimeType", "status": 0, "require": 0, "disabled": 0 }, { "fieldName": "关联证书", "fieldKey": "certificateTypeId", "status": 0, "require": 0, "disabled": 1 }, { "fieldName": "商品简介", "fieldKey": "introduce", "status": 1, "require": 0, "disabled": 1 }, { "fieldName": "适合对象", "fieldKey": "suitableObject", "status": 1, "require": 0, "disabled": 1 }, { "fieldName": "学员须知", "fieldKey": "buyNote", "status": 1, "require": 0, "disabled": 1 }, { "fieldName": "商品详情PC端", "fieldKey": "pcDetailHtml", "status": 1, "require": 0, "disabled": 1 }, { "fieldName": "商品详情手机端", "fieldKey": "mobileDetailHtml", "status": 1, "require": 0, "disabled": 1 }]
  445. break;
  446. case 6:
  447. arr = [{ "fieldName": "商品封面", "fieldKey": "coverUrl", "status": 1, "require": 0, "disabled": 1 }, { "fieldName": "年份", "fieldKey": "year", "status": 1, "require": 0, "disabled": 1 }, { "fieldName": "供应方(服务)", "fieldKey": "supplyId", "status": 1, "require": 0, "disabled": 1 }, { "fieldName": "商品类型", "fieldKey": "goodsType", "status": 1, "require": 1, "disabled": 1 }, { "fieldName": "教育类型", "fieldKey": "educationTypeId", "status": 1, "require": 1, "disabled": 1 }, { "fieldName": "业务层次", "fieldKey": "businessId", "status": 1, "require": 1, "disabled": 1 }, { "fieldName": "院校", "fieldKey": "schoolId", "status": 0, "require": 0, "disabled": 1 }, { "fieldName": "专业", "fieldKey": "majorId", "status": 1, "require": 0, "disabled": 1 }, { "fieldName": "科目", "fieldKey": "subjectIds", "status": 1, "require": 1, "disabled": 1 }, { "fieldName": "商品名称", "fieldKey": "goodsName", "status": 1, "require": 1, "disabled": 1 }, { "fieldName": "学时", "fieldKey": "classHours", "status": 1, "require": 0, "disabled": 1 }, { "fieldName": "商品标准价格", "fieldKey": "standPrice", "status": 1, "require": 1, "disabled": 1 }, { "fieldName": "商品最低价格", "fieldKey": "lowestPrice", "status": 1, "require": 1, "disabled": 1 }, { "fieldName": "商品标准价格明细表", "fieldKey": "standPriceJson", "status": 1, "require": 0, "disabled": 1 }, { "fieldName": "状态", "fieldKey": "status", "status": 1, "require": 1, "disabled": 1 }, { "fieldName": "商品有效期", "fieldKey": "timeArrays", "status": 1, "require": 1, "disabled": 1 }, { "fieldName": "课程内容", "fieldKey": "courseList", "status": 1, "require": 0, "disabled": 1 }, { "fieldName": "学习次数", "fieldKey": "studyCount", "status": 0, "require": 0, "disabled": 0 }, { "fieldName": "考试次数", "fieldKey": "examNumber", "status": 0, "require": 0, "disabled": 0 }, { "fieldName": "前培(刷题)机会", "fieldKey": "doNumber", "status": 0, "require": 0, "disabled": 0 }, { "fieldName": "学习服务期", "fieldKey": "serviceTimeType", "status": 1, "require": 1, "disabled": 0 }, { "fieldName": "关联证书", "fieldKey": "certificateTypeId", "status": 1, "require": 0, "disabled": 1 }, { "fieldName": "商品简介", "fieldKey": "introduce", "status": 1, "require": 0, "disabled": 1 }, { "fieldName": "适合对象", "fieldKey": "suitableObject", "status": 1, "require": 0, "disabled": 1 }, { "fieldName": "学员须知", "fieldKey": "buyNote", "status": 1, "require": 0, "disabled": 1 }, { "fieldName": "商品详情PC端", "fieldKey": "pcDetailHtml", "status": 1, "require": 0, "disabled": 1 }, { "fieldName": "商品详情手机端", "fieldKey": "mobileDetailHtml", "status": 1, "require": 0, "disabled": 1 }]
  448. break;
  449. default:
  450. break;
  451. }
  452. return arr
  453. },
  454. /**
  455. *
  456. * @param {Bool} status true 全部 false 筛选
  457. * @param {Number} id 筛选情况下 教育类型ID
  458. */
  459. concatList(status, id) {
  460. return new Promise((resolve, reject) => {
  461. let options = [
  462. {
  463. label: "最近选择",
  464. options: [],
  465. },
  466. {
  467. label: "业务层级",
  468. options: [],
  469. },
  470. ];
  471. api.inquirebusinessList({ status: 1 }).then((res) => {
  472. let courTypeOptions = res.rows;
  473. if (status) {
  474. if (this.getBusinessList().length) {
  475. let arrlist = this.getBusinessList();
  476. courTypeOptions.forEach((item) => {
  477. if (arrlist.includes(item.id)) {
  478. options[0].options.push(item);
  479. } else {
  480. options[1].options.push(item);
  481. }
  482. });
  483. } else {
  484. options[1].options = courTypeOptions;
  485. }
  486. // let arrs = options.filter((item) => {
  487. // if (item.options.length) {
  488. // return item;
  489. // }
  490. // });
  491. resolve({
  492. value: res.rows,
  493. options: options
  494. })
  495. } else {
  496. let arr = [];
  497. if (this.getBusinessList().length) {
  498. let arrlist = this.getBusinessList();
  499. courTypeOptions.forEach((item) => {
  500. if (arrlist.includes(item.id)) {
  501. options[0].options.push(item);
  502. }
  503. });
  504. arr = courTypeOptions.filter((item) => {
  505. return item.educationId == id && !arrlist.includes(item.id);
  506. });
  507. } else {
  508. arr = courTypeOptions.filter((item) => {
  509. return item.educationId == id;
  510. });
  511. }
  512. options[1].options = arr;
  513. // let arrs = options.filter((item) => {
  514. // if (item.options.length) {
  515. // return item;
  516. // }
  517. // });
  518. resolve({
  519. value: res.rows,
  520. options: options
  521. })
  522. }
  523. });
  524. })
  525. },
  526. }