methodsTool.js 22 KB

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