common.js 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341
  1. import { defineStore } from "pinia";
  2. const commonStore = defineStore("common", {
  3. state: () => ({
  4. mapBool: 1, //1.高德 2.测绘院
  5. streetTownList: [
  6. { value: "", label: "全区" },
  7. { value: "华漕镇", label: "华漕镇" },
  8. { value: "虹桥镇", label: "虹桥镇" },
  9. { value: "梅陇镇", label: "梅陇镇" },
  10. { value: "七宝镇", label: "七宝镇" },
  11. { value: "颛桥镇", label: "颛桥镇" },
  12. { value: "马桥镇", label: "马桥镇" },
  13. { value: "吴泾镇", label: "吴泾镇" },
  14. { value: "浦江镇", label: "浦江镇" },
  15. { value: "新虹街道", label: "新虹街道" },
  16. { value: "古美路街道", label: "古美路街道" },
  17. { value: "江川路街道", label: "江川路街道" },
  18. { value: "浦锦街道", label: "浦锦街道" },
  19. { value: "莘庄镇", label: "莘庄镇" },
  20. ],
  21. timeList: [
  22. new Date().getFullYear() +
  23. "-" +
  24. (new Date().getMonth() + 1 < 10 ? "0" + (new Date().getMonth() + 1) : "" + (new Date().getMonth() + 1)) +
  25. "-" +
  26. (new Date().getDate() < 10 ? "0" + new Date().getDate() : new Date().getDate()) +
  27. " 00:00:00",
  28. new Date().getFullYear() +
  29. "-" +
  30. (new Date().getMonth() + 1 < 10 ? "0" + (new Date().getMonth() + 1) : "" + (new Date().getMonth() + 1)) +
  31. "-" +
  32. (new Date().getDate() < 10 ? "0" + new Date().getDate() : new Date().getDate()) +
  33. " 23:59:59",
  34. ],
  35. mhjz: [
  36. { streetTown: "全区", id: 12, x: 121.4175597, y: 31.119248 },
  37. {
  38. streetTown: "江川路街道",
  39. id: 1201,
  40. x: 121.399126538181,
  41. y: 31.0099719391863,
  42. },
  43. {
  44. streetTown: "新虹街道",
  45. id: 1217,
  46. x: 121.319329296294,
  47. y: 31.1983901916889,
  48. },
  49. {
  50. streetTown: "古美路街道",
  51. id: 1206,
  52. x: 121.388451866936,
  53. y: 31.1478233480159,
  54. },
  55. {
  56. streetTown: "浦锦街道",
  57. id: 1218,
  58. x: 121.483929120352,
  59. y: 31.089967318558,
  60. },
  61. {
  62. streetTown: "浦江镇",
  63. id: 1215,
  64. x: 121.524058543447,
  65. y: 31.0540039472667,
  66. },
  67. {
  68. streetTown: "吴泾镇",
  69. id: 1213,
  70. x: 121.454076463728,
  71. y: 31.04860402113,
  72. },
  73. {
  74. streetTown: "马桥镇",
  75. id: 1214,
  76. x: 121.352680027718,
  77. y: 31.0213512298508,
  78. },
  79. {
  80. streetTown: "颛桥镇",
  81. id: 1209,
  82. x: 121.40607138504,
  83. y: 31.0612972443508,
  84. },
  85. {
  86. streetTown: "莘庄镇",
  87. id: 1207,
  88. x: 121.37064864047,
  89. y: 31.1154549548722,
  90. },
  91. {
  92. streetTown: "梅陇镇",
  93. id: 1212,
  94. x: 121.421346814491,
  95. y: 31.1069718313722,
  96. },
  97. {
  98. streetTown: "七宝镇",
  99. id: 1208,
  100. x: 121.350366186317,
  101. y: 31.1553292680362,
  102. },
  103. {
  104. streetTown: "虹桥镇",
  105. id: 1211,
  106. x: 121.37956256207,
  107. y: 31.1806219953212,
  108. },
  109. {
  110. streetTown: "华漕镇",
  111. id: 1210,
  112. x: 121.277541517147,
  113. y: 31.2289121171624,
  114. },
  115. {
  116. streetTown: "莘庄工业区",
  117. id: 1216,
  118. x: 121.376508452784,
  119. y: 31.0678185611843,
  120. },
  121. ],
  122. deviceDetailsArray: {},//设备详情页面-数据存储
  123. facilitiesGatherType: "",//设施采集类型-数据存储
  124. facilitiesGatherArray: {
  125. department: "", //所属部门
  126. facilityType: "", //设施类型
  127. facilityTypeName: "", //设施类型名称
  128. facilityName: "", //设施名称
  129. status: "0", //设施状态
  130. address: "", //设施地址
  131. longitude: "", //经度
  132. latitude: "", //纬度
  133. province: "", //省
  134. city: "", //市
  135. area: "", //区(县)
  136. facilityAddress: "", //详细地址
  137. streetTown: null, //所属街镇
  138. gpsAreas: [], //经纬度集合
  139. contact: "", //联系人
  140. contactPhone: "", //联系方式
  141. imagesUrl: "", //图⽚地址URL
  142. facilityDesc: "", //备注
  143. extendData: [], //扩展属性
  144. recordPictureList: [],
  145. typeGuise: "", //点线面类型
  146. },//设施采集页面-数据存储
  147. }),
  148. persist: {
  149. storage: window ? window.localStorage : uni.setStorageSync(), // 指定换成地址
  150. beforeRestore: (context) => {
  151. // console.log("Before" + context);
  152. },
  153. afterRestore: (context) => {
  154. // console.log("After" + context);
  155. },
  156. },
  157. actions: {
  158. getDate() {
  159. var date = new Date();
  160. var year = date.getFullYear(); // 返回的是年份
  161. var month = date.getMonth() + 1; // 返回的月份上个月的月份,记得+1才是当月
  162. if (month < 10) {
  163. month = "0" + month;
  164. }
  165. var dates = date.getDate(); // 返回的是几号
  166. if (dates < 10) {
  167. dates = "0" + dates;
  168. }
  169. var day = date.getDay(); // 周一返回的是1,周六是6,但是周日是0
  170. var arr = ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"];
  171. return {
  172. year,
  173. month,
  174. dates,
  175. day,
  176. arr,
  177. };
  178. },
  179. /**
  180. * @处理公共日期格式
  181. */
  182. formatterDate(date, fmt) {
  183. let nowDate = {
  184. yyyy: date.getFullYear(), // 年
  185. MM: date.getMonth() + 1, // 月份
  186. dd: date.getDate(), //日
  187. hh: date.getHours(),
  188. mm: date.getMinutes(),
  189. ss: date.getSeconds(),
  190. };
  191. if (/(y+)/.test(fmt)) {
  192. fmt = fmt.replace(RegExp.$1, (date.getFullYear() + "").substr(4 - RegExp.$1.length));
  193. }
  194. for (var k in nowDate) {
  195. if (new RegExp("(" + k + ")").test(fmt)) {
  196. fmt = fmt.replace(RegExp.$1, RegExp.$1.length == 1 ? nowDate[k] : ("00" + nowDate[k]).substr(("" + nowDate[k]).length));
  197. }
  198. }
  199. return fmt;
  200. },
  201. /**
  202. * @获取当前日期前一年的日期
  203. */
  204. getYearLast(dateStr) {
  205. // 假设要获取的日期为dateStr,格式为"YYYY-MM-DD"
  206. let date = new Date(dateStr);
  207. let Y = date.getFullYear() - 1; // 获取前一年的年份
  208. let M = date.getMonth() + 1 < 10 ? "0" + (date.getMonth() + 1) : date.getMonth() + 1; // 月
  209. let D; // 日
  210. var h = (date.getHours() < 10 ? "0" + date.getHours() : date.getHours()) + ":";
  211. var m = (date.getMinutes() < 10 ? "0" + date.getMinutes() : date.getMinutes()) + ":";
  212. var s = date.getSeconds() < 10 ? "0" + date.getSeconds() : date.getSeconds();
  213. // 判断原日期的月份是否为2月份
  214. if (date.getMonth() === 1) { // 2月份
  215. // 判断前一年是否为闰年
  216. if (Y % 4 === 0 && Y % 100 !== 0 || Y % 400 === 0) { // 闰年
  217. D = Math.min(date.getDate(), 29); // 新日期的日期最大为29
  218. } else { // 平年
  219. D = Math.min(date.getDate(), 28); // 新日期的日期最大为28
  220. }
  221. } else { // 非2月份
  222. D = date.getDate(); // 新日期的日期为原日期的日期
  223. }
  224. let newDateStr = Y + "-" + M + "-" + (D < 10 ? "0" + D : D) + " " + h + m + s; // 格式化日期字符串
  225. return newDateStr
  226. },
  227. /**
  228. * @获取年月日时分秒
  229. * @returns
  230. */
  231. formatterDateTime(time3) {
  232. var date = new Date(time3);
  233. var Y = date.getFullYear() + "-";
  234. var M = (date.getMonth() + 1 < 10 ? "0" + (date.getMonth() + 1) : date.getMonth() + 1) + "-";
  235. var D = (date.getDate() < 10 ? "0" + date.getDate() : date.getDate()) + " ";
  236. var h = (date.getHours() < 10 ? "0" + date.getHours() : date.getHours()) + ":";
  237. var m = (date.getMinutes() < 10 ? "0" + date.getMinutes() : date.getMinutes()) + ":";
  238. var s = date.getSeconds() < 10 ? "0" + date.getSeconds() : date.getSeconds();
  239. var strDate = Y + M + D + h + m + s;
  240. return strDate;
  241. },
  242. /**
  243. * @统计两个日期之间的月份
  244. */
  245. getMonths(date1, date2) {
  246. //用-分成数组
  247. date1 = date1.split("-");
  248. date2 = date2.split("-");
  249. //获取年,月数
  250. var year1 = parseInt(date1[0]),
  251. month1 = parseInt(date1[1]),
  252. year2 = parseInt(date2[0]),
  253. month2 = parseInt(date2[1]),
  254. //通过年,月差计算月份差
  255. months = (year2 - year1) * 12 + (month2 - month1) + 1;
  256. return months;
  257. },
  258. /**
  259. * @计算当前坐标和G点坐标的偏差值
  260. * @returns
  261. */
  262. caculateLL(lat1, lng1, lat2, lng2) {
  263. var radLat1 = (lat1 * Math.PI) / 180.0;
  264. var radLat2 = (lat2 * Math.PI) / 180.0;
  265. var a = radLat1 - radLat2;
  266. var b = (lng1 * Math.PI) / 180.0 - (lng2 * Math.PI) / 180.0;
  267. var s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) + Math.cos(radLat1) * Math.cos(radLat2) * Math.pow(Math.sin(b / 2), 2)));
  268. s = s * 6378.137;
  269. s = Math.round(s * 10000) / 10;
  270. console.log(s);
  271. return s;
  272. },
  273. /**
  274. * @数组对象排序
  275. * @return
  276. * @param {数据} data
  277. * @param {0 从小到大 1 从大到小} sort
  278. */
  279. sortEvent(data, sort) {
  280. let arr = [];
  281. // 将需要排序的 key, 进行排列
  282. let sortKeys = Object.keys(JSON.parse(JSON.stringify(data))).sort((a, b) => {
  283. return sort == 0 ? JSON.parse(JSON.stringify(data))[a].sort - JSON.parse(JSON.stringify(data))[b].sort : JSON.parse(JSON.stringify(data))[b].sort - JSON.parse(JSON.stringify(data))[a].sort;
  284. });
  285. // 循环排列好的 key, 重新组成一个新的数组
  286. for (var sortIndex in sortKeys) {
  287. arr.push(JSON.parse(JSON.stringify(data))[sortKeys[sortIndex]]);
  288. }
  289. return arr;
  290. },
  291. /**
  292. * @公共添加服务器列表
  293. */
  294. setServeList(linkUrl, content) {
  295. let serveList = uni.getStorageSync("serveList");
  296. if (serveList.length <= 0) {
  297. uni.setStorageSync("serveList", [
  298. {
  299. radiolist: [
  300. {
  301. id: 1,
  302. linkUrl: linkUrl,
  303. content: content,
  304. },
  305. ],
  306. radiovalue: 1,
  307. },
  308. ]);
  309. } else {
  310. serveList[0].radiolist.push({
  311. id: serveList[0].radiolist[serveList[0].radiolist.length - 1].id + 1,
  312. linkUrl: linkUrl,
  313. content: content,
  314. });
  315. uni.setStorageSync("serveList", serveList);
  316. }
  317. }
  318. },
  319. });
  320. export default commonStore;