methodsTool.js 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656
  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. {
  29. label: "讲义资料",
  30. value: 8,
  31. },
  32. {
  33. label: "其他题库",
  34. value: 9,
  35. }]
  36. if (status) {
  37. return type
  38. } else {
  39. type.unshift({ label: "全部", value: "" })
  40. return type
  41. }
  42. },
  43. getUrl() {
  44. return baseUrls.BASE_IMG_URL + '/'
  45. },
  46. isLogin() {
  47. if (uni.getStorageSync('union_id')) {
  48. return true;
  49. } else {
  50. return false
  51. }
  52. },
  53. splitImgHost(url) {
  54. if (!url) {
  55. return ''
  56. }
  57. if (url.indexOf("http") != -1 || url.indexOf("https") != -1 || url.indexOf("base64") != -1) {
  58. return url;
  59. }
  60. return baseUrls.BASE_IMG_URL + '/' + url
  61. },
  62. onlyForma(timeStamp, Diszing = true) {
  63. if (!timeStamp) {
  64. return
  65. }
  66. var date = new Date(timeStamp * 1000); //时间戳为10位需*1000,时间戳为13位的话不需乘1000
  67. var Y = date.getFullYear() + '-';
  68. var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';
  69. var D = date.getDate() < 10 ? '0' + date.getDate() : date.getDate();
  70. var h = (date.getHours() < 10 ? '0' + date.getHours() : date.getHours()) + ':';
  71. var m = (date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()) + ':';
  72. var s = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds();
  73. if (Diszing) {
  74. return Y + M + D + ' ' + h + m + s; //时分秒可以根据自己的需求加上
  75. }
  76. return Y + M + D;
  77. },
  78. /**
  79. *
  80. * @returns 获取当前时间戳
  81. */
  82. getNewTime() {
  83. var data = new Date().getTime()
  84. return data
  85. },
  86. //判断是否为数字
  87. isNotANumber(inputData) {
  88. //isNaN(inputData)不能判断空串或一个空格
  89. //如果是一个空串或是一个空格,而isNaN是做为数字0进行处理的,而parseInt与parseFloat是返回一个错误消息,这个isNaN检查不严密而导致的。
  90. if (parseFloat(inputData).toString() == "NaN") {
  91. //alert("请输入数字……");注掉,放到调用时,由调用者弹出提示。
  92. return false;
  93. } else {
  94. return true;
  95. }
  96. },
  97. exportData(msg, status = true) {
  98. if (!msg) {
  99. this.$message.warning("导出地址获取错误,请联系开发人员处理")
  100. return
  101. }
  102. if (status) {
  103. var baseUrl = baseUrls.baseURL + "common/download?fileName="
  104. } else {
  105. var baseUrl = baseUrls.BASE_IMG_URL + '/'
  106. }
  107. let url =
  108. baseUrl + msg;
  109. let link = document.createElement("a");
  110. let fileName = "导入模板" + ".xlsx";
  111. document.body.appendChild(link);
  112. link.href = url;
  113. link.download = fileName;
  114. link.click();
  115. link.remove();
  116. },
  117. //判断是否为数组
  118. isArrayFn(o) {
  119. return Object.prototype.toString.call(o) === '[object Array]';
  120. },
  121. computedAge(birthday) {
  122. let birthDayTime = new Date(birthday).getTime();
  123. //当前时间 毫秒
  124. let nowTime = new Date().getTime();
  125. //一年毫秒数(365 * 86400000 = 31536000000)
  126. return Math.ceil((nowTime - birthDayTime) / 31536000000);
  127. },
  128. time10to13(time, int) {
  129. if (time === null) {
  130. return null
  131. }
  132. // int = 1 为13转10
  133. // int = 2 为10转13
  134. if (int === 1) {
  135. return parseInt(time / 1000)
  136. } else {
  137. return parseInt(time * 1000)
  138. }
  139. },
  140. //计算两个时间之间的时间差 多少天时分秒
  141. intervalTime(startTime, endTime) {
  142. // var timestamp=new Date().getTime(); //计算当前时间戳
  143. var timestamp = (Date.parse(new Date())) / 1000;//计算当前时间戳 (毫秒级)
  144. var date1 = ""; //开始时间
  145. if (timestamp < startTime) {
  146. date1 = startTime;
  147. } else {
  148. date1 = timestamp; //开始时间
  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. console.log(days + "天 " + hours + "小时 ")
  166. // return days + "天 " + hours + "小时 " + minutes + " 分钟" + seconds + " 秒"
  167. return days + "天 " + hours + "小时 "
  168. },
  169. //计算两个时间之间的时间差 多少天时分秒
  170. newTime(endTime) {
  171. if (!endTime) {
  172. return '-'
  173. }
  174. var date1 = (Date.parse(new Date())) / 1000; //开始时间
  175. if (date1 > endTime) {
  176. return '0'
  177. }
  178. var date2 = endTime; //结束时间
  179. // var date3 = date2.getTime() - date1.getTime(); //时间差的毫秒数
  180. var date3 = (date2 - date1) * 1000; //时间差的毫秒数
  181. //计算出相差天数
  182. var days = Math.floor(date3 / (24 * 3600 * 1000));
  183. //计算出小时数
  184. //2021-11-15 10:48:07 2021-11-15 17:34:39 406分钟
  185. var leave1 = date3 % (24 * 3600 * 1000); //计算天数后剩余的毫秒数
  186. var hours = Math.floor(leave1 / (3600 * 1000));
  187. //计算相差分钟数
  188. var leave2 = leave1 % (3600 * 1000); //计算小时数后剩余的毫秒数
  189. var minutes = Math.floor(leave2 / (60 * 1000));
  190. //计算相差秒数
  191. var leave3 = leave2 % (60 * 1000); //计算分钟数后剩余的毫秒数
  192. var seconds = Math.round(leave3 / 1000);
  193. return days + "天" + hours + "小时" + minutes + "分钟" + seconds + "秒"
  194. // return days
  195. },
  196. /**
  197. *
  198. * @param {int} result
  199. * @returns {string}
  200. * @remard 单位S转小时分钟秒
  201. */
  202. secondToDate(result, Diszing = true) {
  203. if(!result){
  204. return ''
  205. }
  206. var h = Math.floor(result / 3600) < 10 ? '0' + Math.floor(result / 3600) : Math.floor(result / 3600);
  207. var m = Math.floor((result / 60 % 60)) < 10 ? '0' + Math.floor((result / 60 % 60)) : Math.floor((result / 60 % 60));
  208. var s = Math.floor((result % 60)) < 10 ? '0' + Math.floor((result % 60)) : Math.floor((result % 60));
  209. if (h == 0 && Diszing) {
  210. result = m + ":" + s;
  211. } else {
  212. result = h + ':' + m + ":" + s
  213. }
  214. return result;
  215. },
  216. /**
  217. * @param {string} result
  218. * @returns int
  219. * @remard 00:00:00格式转秒
  220. */
  221. secondFormDate(result) {
  222. if (result) {
  223. let reTime = result.split(":").map(Number)
  224. var hs = reTime[0] * 60 * 60
  225. var ms = reTime[1] * 60
  226. var ss = reTime[2]
  227. return hs + ms + ss
  228. } else {
  229. return 0
  230. }
  231. },
  232. /**
  233. * 扁平结构转换成树形结构 ---最佳性能方法
  234. * @param {Arrays} items 数据
  235. * @param {Strings} Id 参数名称 例如:'id' 默认id
  236. * @param {Strings} pId 参数名称 例如:'pid' 默认 pid
  237. * @returns 返回树形结构
  238. */
  239. arrayToTree(items, Id = 'id', pId = 'pid') {
  240. const result = []; // 存放结果集
  241. const itemMap = {}; //
  242. for (const item of items) {
  243. const id = item[Id];
  244. const pid = item[pId];
  245. if (!itemMap[id]) {
  246. itemMap[id] = {
  247. children: [],
  248. };
  249. }
  250. itemMap[id] = {
  251. ...item,
  252. children: itemMap[id]["children"],
  253. };
  254. const treeItem = itemMap[id];
  255. if (pid === 0) {
  256. result.push(treeItem);
  257. } else {
  258. if (!itemMap[pid]) {
  259. itemMap[pid] = {
  260. children: [],
  261. };
  262. }
  263. itemMap[pid].children.push(treeItem);
  264. }
  265. }
  266. return result;
  267. },
  268. //JS计算两个时间戳相差月数、天数、时数、分钟、秒数
  269. humandate(time1, time2) {
  270. // var time1 = Date.parse(new Date()) / 1000;
  271. var s = time1 - time2;
  272. if (s < 0) {
  273. s = Math.abs(s);
  274. }
  275. return parseInt(s / 60) + '分钟'
  276. console.log(s)
  277. // if (s > 31536000) {
  278. // return formatDate(new Date(time2 * 1000));
  279. // } else if (s > 2592000) {
  280. // return parseInt(s / 2592000) + '月';
  281. // } else if (s > 86400) {
  282. // return parseInt(s / 86400) + '天';
  283. // } else if (s > 3600) {
  284. // return parseInt(s / 3600) + '小时';
  285. // } else if (s > 60) {
  286. // return parseInt(s / 60) + '分钟';
  287. // } else {
  288. // return parseInt(s) + '秒';
  289. // }
  290. },
  291. //判断是否过期 true过期 false未过期
  292. expiredTime(items) {
  293. var currentTime = parseInt(Date.parse(new Date()) / 1000)
  294. if (currentTime > items) {
  295. return true
  296. } else {
  297. return false
  298. }
  299. },
  300. /**
  301. * int 0.今天时间戳范围 1.昨天时间戳范围 2.7天时间戳范围
  302. */
  303. timestampConvert(int) {
  304. var date1, date2
  305. switch (int) {
  306. case 0:
  307. date1 = new Date(new Date().toLocaleDateString()).getTime()
  308. date2 = new Date().getTime()
  309. break;
  310. case 1:
  311. date1 = new Date(new Date().toLocaleDateString()).getTime() - 86400000
  312. date2 = new Date(new Date().toLocaleDateString()).getTime() - 1000
  313. break;
  314. case 2:
  315. date1 = new Date(new Date().toLocaleDateString()).getTime() - 604800000
  316. date2 = new Date().getTime()
  317. break;
  318. default:
  319. break;
  320. }
  321. return [parseInt(date1), parseInt(date2)]
  322. },
  323. getQueryVariable(variable) {
  324. var query = window.location.search.substring(1);
  325. var vars = query.split("&");
  326. for (var i = 0; i < vars.length; i++) {
  327. var pair = vars[i].split("=");
  328. if (pair[0] == variable) { return pair[1]; }
  329. }
  330. return (false);
  331. },
  332. setToken(tokenInfo, int) {
  333. var newTime = new Date().getTime()
  334. var ESTime = new Date().getTime() + 1000 * 60 * 60 * 24
  335. var SEVENTime = new Date().getTime() + 1000 * 60 * 60 * 24 * 7
  336. if (int === 1) {
  337. localStorage['Expiration' + this.getQueryVariable('TenantId')] = ESTime
  338. }
  339. if (int === 7) {
  340. localStorage['Expiration' + this.getQueryVariable('TenantId')] = SEVENTime
  341. }
  342. localStorage['token' + this.getQueryVariable('TenantId')] = tokenInfo
  343. },
  344. checkToken() {
  345. var newTime = new Date().getTime()
  346. var Time = localStorage['Expiration' + this.getQueryVariable('TenantId')]
  347. if (newTime > Time) {
  348. localStorage.removeItem('Expiration' + this.getQueryVariable('TenantId'))
  349. localStorage.removeItem('token' + this.getQueryVariable('TenantId'))
  350. setTimeout(() => {
  351. router.replace({
  352. path: `/login?TenantId=${this.getQueryVariable('TenantId')}`
  353. })
  354. }, 500)
  355. return
  356. } else {
  357. return localStorage.getItem('token' + this.getQueryVariable('TenantId'))
  358. }
  359. },
  360. delToken(status) {
  361. localStorage.removeItem('Expiration' + this.getQueryVariable('TenantId'))
  362. localStorage.removeItem('token' + this.getQueryVariable('TenantId'))
  363. if (status) {
  364. setTimeout(() => {
  365. router.replace({
  366. path: `/login?TenantId=${this.getQueryVariable('TenantId')}`
  367. })
  368. }, 500)
  369. }
  370. },
  371. /**
  372. *
  373. * @param {strings} name
  374. * @returns 获取localStorage缓存
  375. */
  376. storageGet(name) {
  377. return window.localStorage.getItem(name)
  378. },
  379. /**
  380. *
  381. * @param {strings} name
  382. * @param {strings} val
  383. * @returns 设置localStorage缓存
  384. */
  385. storageSet(name, val) {
  386. return window.localStorage.setItem(name, val)
  387. },
  388. /**
  389. *
  390. * @param {strings} name
  391. * @returns 移除指定name
  392. */
  393. storageRemove(name) {
  394. return window.localStorage.removeItem(name)
  395. },
  396. /**
  397. *
  398. * @param {Array} ids
  399. * @returns 缓存业务层级
  400. */
  401. cacheBusinessList(ids) {
  402. let newTime = new Date(new Date().toLocaleDateString()).getTime() // 获取当天时间戳
  403. if (this.storageGet('business')) {
  404. let businessList = JSON.parse(this.storageGet('business'))
  405. if (businessList.time != newTime) {
  406. this.storageRemove(business)
  407. this.cacheBusinessList(ids)
  408. } else {
  409. if (businessList.business.length) {
  410. let copyBusinList = JSON.parse(JSON.stringify(businessList.business))
  411. for (let i = 0; i < ids.length; i++) {
  412. let statusT = businessList.business.some(item => {
  413. return item.businessId == ids[i].businessId && item.subjectId == ids[i].subjectId
  414. })
  415. if (!statusT) {
  416. copyBusinList.push(ids[i])
  417. }
  418. }
  419. businessList.business = copyBusinList
  420. } else {
  421. businessList.business = ids
  422. }
  423. this.storageSet('business', JSON.stringify(businessList))
  424. }
  425. } else {
  426. let businessList = {
  427. time: newTime,
  428. business: ids
  429. }
  430. this.storageSet('business', JSON.stringify(businessList))
  431. }
  432. },
  433. /**
  434. *
  435. * @returns 获取缓存业务层级
  436. */
  437. getBusinessList() {
  438. let newTime = new Date(new Date().toLocaleDateString()).getTime() // 获取当天时间戳
  439. if (this.storageGet('business')) {
  440. let businessList = JSON.parse(this.storageGet('business'))
  441. if (businessList.time != newTime) {
  442. this.storageRemove('business')
  443. return []
  444. } else {
  445. return businessList.business
  446. }
  447. } else {
  448. return []
  449. }
  450. },
  451. /**
  452. *
  453. * @param {Arrays} arr 数据
  454. * @param {Strings} uniId 根据哪个参数去重
  455. * @returns 对象数组去重
  456. */
  457. uniqueFunc(arr, uniId) {
  458. const res = new Map();
  459. return arr.filter(
  460. (item) => !res.has(item[uniId]) && res.set(item[uniId], 1)
  461. );
  462. },
  463. /**
  464. *
  465. * @param {Number} int 2题库3补考4前培6直播
  466. * @returns 商品类型-返回固定校验列表
  467. */
  468. getTypeRules(int) {
  469. let arr = []
  470. switch (int) {
  471. case 2:
  472. 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 }]
  473. break;
  474. case 3: case 4:
  475. 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 }]
  476. break;
  477. case 8:
  478. arr = [{ "fieldName": "商品封面", "fieldKey": "coverUrl", "status": 1, "require": 0, "disabled": 1 }, { "fieldName": "年份", "fieldKey": "year", "status": 1, "require": 1, "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 }]
  479. break;
  480. case 6:
  481. 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 }]
  482. break;
  483. default:
  484. break;
  485. }
  486. return arr
  487. },
  488. /**
  489. *
  490. * @param {Bool} status true 全部 false 筛选
  491. * @param {Number} id 筛选情况下 教育类型ID
  492. */
  493. concatList(status, id) {
  494. return new Promise((resolve, reject) => {
  495. let options = [
  496. {
  497. label: "最近选择",
  498. options: [],
  499. },
  500. {
  501. label: "业务层级",
  502. options: [],
  503. },
  504. ];
  505. api.inquirebusinessList({ status: 1 }).then((res) => {
  506. let courTypeOptions = res.rows;
  507. if (status) {
  508. if (this.getBusinessList().length) {
  509. let arrlist = this.getBusinessList();
  510. courTypeOptions.forEach((item) => {
  511. if (arrlist.includes(item.id)) {
  512. options[0].options.push(item);
  513. } else {
  514. options[1].options.push(item);
  515. }
  516. });
  517. } else {
  518. options[1].options = courTypeOptions;
  519. }
  520. // let arrs = options.filter((item) => {
  521. // if (item.options.length) {
  522. // return item;
  523. // }
  524. // });
  525. resolve({
  526. value: res.rows,
  527. options: options
  528. })
  529. } else {
  530. let arr = [];
  531. if (this.getBusinessList().length) {
  532. let arrlist = this.getBusinessList();
  533. courTypeOptions.forEach((item) => {
  534. if (arrlist.includes(item.id)) {
  535. options[0].options.push(item);
  536. }
  537. });
  538. arr = courTypeOptions.filter((item) => {
  539. return item.educationId == id && !arrlist.includes(item.id);
  540. });
  541. } else {
  542. arr = courTypeOptions.filter((item) => {
  543. return item.educationId == id;
  544. });
  545. }
  546. options[1].options = arr;
  547. // let arrs = options.filter((item) => {
  548. // if (item.options.length) {
  549. // return item;
  550. // }
  551. // });
  552. resolve({
  553. value: res.rows,
  554. options: options
  555. })
  556. }
  557. });
  558. })
  559. },
  560. getWeekData(year, month) { //传入 年 月 获取当月有几周 以及日期
  561. var new_year = year; //取当前的年份
  562. var new_month = month++;//取下一个月的第一天,方便计算(最后一天不固定)
  563. if (new_month < 10) { new_month = '0' + new_month }
  564. var weekDay = ["星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期天"];
  565. if (new_month > 12) {
  566. new_month -= 12; //月份减
  567. new_year++; //年份增
  568. }
  569. var first_date = new Date(new_year, new_month, 1); //取当年当月中的第一天-时间格式
  570. var last_Data = (new Date(first_date.getTime() - 1000 * 60 * 60 * 24)).getDate() //获取当月最后一天日期
  571. //当月第一天是周几
  572. var firstzhouji = new Date(new_year + '/' + new_month + '/' + 1).getDay() == 0 ? '星期天' : weekDay[new Date(new_year + '/' + new_month + '/' + 1).getDay() - 1]
  573. //当月最后一天是周几
  574. var lastzhouji = new Date(new_year + '/' + new_month + '/' + last_Data).getDay() == 0 ? '星期天' : weekDay[new Date(new_year + '/' + new_month + '/' + last_Data).getDay() - 1]
  575. var firsttime = '' //第一周有几天
  576. if (firstzhouji == '星期一') { firsttime = 7 }
  577. if (firstzhouji == '星期二') { firsttime = 6 }
  578. if (firstzhouji == '星期三') { firsttime = 5 }
  579. if (firstzhouji == '星期四') { firsttime = 4 }
  580. if (firstzhouji == '星期五') { firsttime = 3 }
  581. if (firstzhouji == '星期六') { firsttime = 2 }
  582. if (firstzhouji == '星期天') { firsttime = 1 }
  583. var lasttime = '' //最后一周有几天
  584. if (lastzhouji == '星期一') { lasttime = 1 }
  585. if (lastzhouji == '星期二') { lasttime = 2 }
  586. if (lastzhouji == '星期三') { lasttime = 3 }
  587. if (lastzhouji == '星期四') { lasttime = 4 }
  588. if (lastzhouji == '星期五') { lasttime = 5 }
  589. if (lastzhouji == '星期六') { lasttime = 6 }
  590. if (lastzhouji == '星期天') { lasttime = 7 }
  591. // 前后两周 加上 剩余周数 得出总周数
  592. var contime = 2 + (last_Data - lasttime - firsttime) / 7
  593. //得出每周对应的日期
  594. var zhouArry = []
  595. for (var i = 1; i <= contime; i++) {
  596. var strTime = ''
  597. var lastTime = ''
  598. if (i == 1) {
  599. strTime = year + '-' + new_month + '-' + '01'
  600. let aa = 1 + firsttime - 1
  601. if (aa < 10) {
  602. aa = '0' + aa
  603. }
  604. lastTime = year + '-' + new_month + '-' + aa
  605. } else if (i == contime) {
  606. let bb = last_Data - lasttime + 1
  607. if (bb < 10) {
  608. bb = '0' + bb
  609. }
  610. strTime = year + '-' + new_month + '-' + bb
  611. lastTime = year + '-' + new_month + '-' + (last_Data < 10 ? ('0' + last_Data) : last_Data)
  612. } else {
  613. strTime = addDate(zhouArry[zhouArry.length - 1].endTime, 1)
  614. lastTime = addDate(zhouArry[zhouArry.length - 1].endTime, 7)
  615. }
  616. zhouArry.push({
  617. weeknum: i,
  618. beginTime: strTime,
  619. endTime: lastTime,
  620. beginTimeCode: new Date(strTime + ' 00:00:00').getTime() / 1000,
  621. endTimeCode: new Date(lastTime + ' 23:59:59').getTime() / 1000,
  622. })
  623. //日期增加 接受两个参数, 传入的时间,传入时间增加的天数
  624. function addDate(date, days) {
  625. if (days == undefined || days == '') {
  626. days = 1;
  627. }
  628. var date = new Date(date);
  629. date.setDate(date.getDate() + days);
  630. var month = date.getMonth() + 1;
  631. if (month < 10) { month = '0' + month; }
  632. var day = date.getDate();
  633. if (day < 10) { day = '0' + day; }
  634. return date.getFullYear() + '-' + month + '-' + day;
  635. }
  636. }
  637. return zhouArry
  638. }
  639. }