Browse Source

枣泉:1.0.4;E信管理:1.0.1

tiandewen 3 năm trước cách đây
mục cha
commit
83e0c9fcec
100 tập tin đã thay đổi với 4663 bổ sung274 xóa
  1. 3 3
      App.vue
  2. 34 0
      common/production-http/production-api.js
  3. 26 0
      common/set_base_url.js
  4. 24 0
      common/time.js
  5. 1 1
      common/vmeitime-http/api.js
  6. 3 3
      common/vmeitime-http/interface.js
  7. 242 0
      components/Toling-DateSelect/computedLunarDate.js
  8. 5 5
      components/t-i-banner/t-i-banner.vue
  9. 45 14
      components/t-i-common/t-i-common.vue
  10. 11 2
      components/t-i-icon/t-i-icon.vue
  11. 12 9
      components/t-i-navbar/t-i-navbar.vue
  12. 71 10
      components/t-i-notice/t-i-notice.vue
  13. 16 2
      components/t-m-icon/t-m-icon.vue
  14. 3 3
      components/t-m-info/t-m-info.vue
  15. 3 26
      components/t-o-ningdongyunying/t-o-ningdongyunying.vue
  16. 3 1
      components/t-o-zaoquan/t-o-zaoquan.vue
  17. 151 0
      components/t-p-baijigou/t-p-baijigou.vue
  18. 151 0
      components/t-p-hongliu/t-p-hongliu.vue
  19. 151 0
      components/t-p-hongshiwan/t-p-hongshiwan.vue
  20. 151 0
      components/t-p-jinfeng/t-p-jinfeng.vue
  21. 127 0
      components/t-p-jinjiaqu/t-p-jinjiaqu.vue
  22. 151 0
      components/t-p-lingxin/t-p-lingxin.vue
  23. 151 0
      components/t-p-maiduoshan/t-p-maiduoshan.vue
  24. 207 0
      components/t-p-meihuajing/t-p-meihuajing.vue
  25. 30 9
      components/t-p-n-section-1/t-p-n-section-1.vue
  26. 112 15
      components/t-p-n-section-2/t-p-n-section-2.vue
  27. BIN
      components/t-p-ningdongyunying/img/bg.jpg
  28. 42 6
      components/t-p-ningdongyunying/t-p-ningdongyunying.vue
  29. 128 0
      components/t-p-qingshuiying/t-p-qingshuiying.vue
  30. 151 0
      components/t-p-renjiazhuang/t-p-renjiazhuang.vue
  31. 151 0
      components/t-p-shuangma/t-p-shuangma.vue
  32. 88 0
      components/t-p-xixuan/t-p-xixuan.vue
  33. 151 0
      components/t-p-yangchangwanyifenqu/t-p-yangchangwanyifenqu.vue
  34. 151 0
      components/t-p-yangchanwanerfenqu/t-p-yangchanwanerfenqu.vue
  35. 15 2
      components/t-w-ningdongyunying/t-w-ningdongyunying.vue
  36. 1 1
      components/t-w-zaoquan/t-w-zaoquan.vue
  37. 9 7
      main.js
  38. 3 3
      manifest.json
  39. 34 2
      pages.json
  40. 135 0
      pages/index/bars_sort/bars_sort.vue
  41. BIN
      pages/index/integral/img/jifen.jpg
  42. 1 1
      pages/index/integral/integral.vue
  43. 9 16
      pages/index/news/news.vue
  44. 3 13
      pages/index/record/record-browse/record-browse.vue
  45. 3 13
      pages/index/record/record.vue
  46. 166 6
      pages/index/switch-kuang/switch-kuang.vue
  47. 32 0
      pages/my/cloud_disk/cloud_disk.vue
  48. 11 9
      pages/my/download/download.vue
  49. 22 0
      pages/ningdongyunying/h5/h5.vue
  50. 45 30
      pages/ningdongyunying/personnel_orientation/personnel_orientation.vue
  51. 154 0
      pages/ningdongyunying/production_map/production_map.vue
  52. 34 7
      pages/ningdongyunying/risk_precontrol/detail/detail.vue
  53. 75 15
      pages/ningdongyunying/risk_precontrol/risk_precontrol.vue
  54. 24 34
      pages/tabbar/index/index.vue
  55. BIN
      static/switch-kuang/hongliu.png
  56. BIN
      static/switch-kuang/hongshiwan.png
  57. BIN
      static/switch-kuang/jinfeng.png
  58. BIN
      static/switch-kuang/kuangji.png
  59. BIN
      static/switch-kuang/lingxin.png
  60. BIN
      static/switch-kuang/maiduoshan.png
  61. BIN
      static/switch-kuang/meihuagong.png
  62. BIN
      static/switch-kuang/meihuajing.png
  63. BIN
      static/switch-kuang/meizhiyou.png
  64. BIN
      static/switch-kuang/ningdongyunying.png
  65. BIN
      static/switch-kuang/qingshuiying.png
  66. BIN
      static/switch-kuang/ruqigou.png
  67. BIN
      static/switch-kuang/shuangma.png
  68. BIN
      static/switch-kuang/xiting-1.png
  69. BIN
      static/switch-kuang/xiting-2.png
  70. BIN
      static/switch-kuang/xixuan.png
  71. BIN
      static/switch-kuang/yangchangwan.png
  72. BIN
      static/switch-kuang/zaoquan.png
  73. 20 0
      uni_modules/HM-dragSorts/changelog.md
  74. 599 0
      uni_modules/HM-dragSorts/components/HM-dragSorts/HM-dragSorts.vue
  75. 326 0
      uni_modules/HM-dragSorts/components/HM-dragSorts/drag.wxs
  76. 84 0
      uni_modules/HM-dragSorts/package.json
  77. 106 0
      uni_modules/HM-dragSorts/readme.md
  78. 2 2
      unpackage/dist/build/app-plus/app-config-service.js
  79. 2 2
      unpackage/dist/build/app-plus/app-service.js
  80. 1 1
      unpackage/dist/build/app-plus/app-view.js
  81. BIN
      unpackage/dist/build/app-plus/components/t-p-ningdongyunying/img/bg.jpg
  82. 1 1
      unpackage/dist/build/app-plus/manifest.json
  83. BIN
      unpackage/dist/build/app-plus/pages/index/integral/img/jifen.jpg
  84. BIN
      unpackage/dist/build/app-plus/static/switch-kuang/hongliu.png
  85. BIN
      unpackage/dist/build/app-plus/static/switch-kuang/hongshiwan.png
  86. BIN
      unpackage/dist/build/app-plus/static/switch-kuang/jinfeng.png
  87. BIN
      unpackage/dist/build/app-plus/static/switch-kuang/kuangji.png
  88. BIN
      unpackage/dist/build/app-plus/static/switch-kuang/lingxin.png
  89. BIN
      unpackage/dist/build/app-plus/static/switch-kuang/maiduoshan.png
  90. BIN
      unpackage/dist/build/app-plus/static/switch-kuang/meihuagong.png
  91. BIN
      unpackage/dist/build/app-plus/static/switch-kuang/meihuajing.png
  92. BIN
      unpackage/dist/build/app-plus/static/switch-kuang/meizhiyou.png
  93. BIN
      unpackage/dist/build/app-plus/static/switch-kuang/ningdongyunying.png
  94. BIN
      unpackage/dist/build/app-plus/static/switch-kuang/qingshuiying.png
  95. BIN
      unpackage/dist/build/app-plus/static/switch-kuang/ruqigou.png
  96. BIN
      unpackage/dist/build/app-plus/static/switch-kuang/shuangma.png
  97. BIN
      unpackage/dist/build/app-plus/static/switch-kuang/xiting-1.png
  98. BIN
      unpackage/dist/build/app-plus/static/switch-kuang/xiting-2.png
  99. BIN
      unpackage/dist/build/app-plus/static/switch-kuang/xixuan.png
  100. 0 0
      unpackage/dist/build/app-plus/static/switch-kuang/yangchangwan.png

+ 3 - 3
App.vue

@@ -5,10 +5,10 @@
 			// 启动初始化
 
 			// 煤矿鉴别-名称
-			// uni.setStorageSync('mine_code', 'ningdongyunying');
+			uni.setStorageSync('mine_code', 'ningdongyunying');
 			// uni.setStorageSync('mine_code', 'shicaocun');
 			// uni.setStorageSync('mine_code', 'meihuajing');
-			uni.setStorageSync('mine_code', 'zaoquan');
+			// uni.setStorageSync('mine_code', 'zaoquan');
 
 		},
 		onShow: function() {
@@ -28,7 +28,7 @@
 	}
 
 	page {
-		font-family: $tdw-base-font;
+		// font-family: $tdw-base-font;
 		
 	}
 

+ 34 - 0
common/production-http/production-api.js

@@ -362,4 +362,38 @@ export const coalmine_trend = (data) => {
 		url: '/coalmine/trend',
 		data,
 	})
+}
+
+
+// 人员定位统计
+export const personnel_mineall_total = (data) => {
+    return http.request({
+		method:'POST',
+        url: '/personnel/mineall/total',
+        data,
+    })
+}
+
+// 风险预控
+
+// 矿列表
+export const danger_mine = (data) => {
+    return http.request({
+        url: '/danger/mine',
+        data,
+    })
+}
+// 隐患列表
+export const danger_depart = (data) => {
+    return http.request({
+        url: '/danger/depart',
+        data,
+    })
+}
+// 隐患详情
+export const danger_depart_info = (data) => {
+    return http.request({
+        url: '/danger/depart/info',
+        data,
+    })
 }

+ 26 - 0
common/set_base_url.js

@@ -0,0 +1,26 @@
+// 根据矿编码切换首页接口不同的请求基础路径
+
+export const set_base_url = (mine_code) => {
+	switch (mine_code) {
+		case 'ningdongyunying':
+			return "http://ningdongyunying.nxjiewei.com:8011/api"
+			break;
+		case 'meihuajing':
+			return "http://meihuajing.nxjiewei.com:8011/api"
+			break;
+		case 'zaoquan':
+			return "http://zaoquan.nxjiewei.com:8011/api"
+			break;
+		case 'yangchangwan':
+			return "http://yangchangwan.nxjiewei.com:8011/api"
+			break;
+		case 'jinfeng':
+			return "http://jinfeng.nxjiewei.com:8011/api"
+			break;
+		case 'xixuan':
+			return "http://xixuan.nxjiewei.com:8011/api"
+			break;
+		default:
+			return ""
+	}
+}

+ 24 - 0
common/time.js

@@ -0,0 +1,24 @@
+Date.prototype.format = function(fmt) {
+	var o = {
+		"M+": this.getMonth() + 1, //月份
+		"d+": this.getDate(), //日
+		"h+": this.getHours(), //小时
+		"m+": this.getMinutes(), //分
+		"s+": this.getSeconds(), //秒
+		"q+": Math.floor((this.getMonth() + 3) / 3), //季度
+		"S": this.getMilliseconds() //毫秒
+	};
+
+	if (/(y+)/.test(fmt)) {
+		fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
+	}
+
+	for (var k in o) {
+		if (new RegExp("(" + k + ")").test(fmt)) {
+			fmt = fmt.replace(
+				RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
+		}
+	}
+
+	return fmt;
+}

+ 1 - 1
common/vmeitime-http/api.js

@@ -431,4 +431,4 @@ export const user_updateUserMessage = (data) => {
         url: '/user/updateUserMessage',
         data,
     })
-}
+}

+ 3 - 3
common/vmeitime-http/interface.js

@@ -34,8 +34,8 @@ http.delete('user/1').then((res)=>{
 export default {
 	config: {
 		// baseUrl: "http://colliery.nxjiewei.com/api",
-		// baseUrl: "http://ningdongyunying.nxjiewei.com:8011/api",
-		baseUrl: "http://zaoquan.nxjiewei.com:8011/api",
+		baseUrl: "http://ningdongyunying.nxjiewei.com:8011/api",
+		// baseUrl: "http://zaoquan.nxjiewei.com:8011/api",
 		header: {
 			"Content-Type":"multipart/form-data",
 			'Content-Type':'application/json;charset=UTF-8',
@@ -98,7 +98,7 @@ export default {
 							})
 							setTimeout(function(){
 								uni.redirectTo({
-									url:"/pages/login/login"
+									url:"/my/login/login.vue"
 								})
 							},2000)
 						}

+ 242 - 0
components/Toling-DateSelect/computedLunarDate.js

@@ -0,0 +1,242 @@
+
+let lunarYearArr = [
+        0x0b557, //1949
+        0x06ca0, 0x0b550, 0x15355, 0x04da0, 0x0a5b0, 0x14573, 0x052b0, 0x0a9a8, 0x0e950, 0x06aa0, //1950-1959
+        0x0aea6, 0x0ab50, 0x04b60, 0x0aae4, 0x0a570, 0x05260, 0x0f263, 0x0d950, 0x05b57, 0x056a0, //1960-1969
+        0x096d0, 0x04dd5, 0x04ad0, 0x0a4d0, 0x0d4d4, 0x0d250, 0x0d558, 0x0b540, 0x0b6a0, 0x195a6, //1970-1979
+        0x095b0, 0x049b0, 0x0a974, 0x0a4b0, 0x0b27a, 0x06a50, 0x06d40, 0x0af46, 0x0ab60, 0x09570, //1980-1989
+        0x04af5, 0x04970, 0x064b0, 0x074a3, 0x0ea50, 0x06b58, 0x055c0, 0x0ab60, 0x096d5, 0x092e0, //1990-1999
+        0x0c960, 0x0d954, 0x0d4a0, 0x0da50, 0x07552, 0x056a0, 0x0abb7, 0x025d0, 0x092d0, 0x0cab5, //2000-2009
+        0x0a950, 0x0b4a0, 0x0baa4, 0x0ad50, 0x055d9, 0x04ba0, 0x0a5b0, 0x15176, 0x052b0, 0x0a930, //2010-2019
+        0x07954, 0x06aa0, 0x0ad50, 0x05b52, 0x04b60, 0x0a6e6, 0x0a4e0, 0x0d260, 0x0ea65, 0x0d530, //2020-2029
+        0x05aa0, 0x076a3, 0x096d0, 0x04afb, 0x04ad0, 0x0a4d0, 0x1d0b6, 0x0d250, 0x0d520, 0x0dd45, //2030-2039
+        0x0b5a0, 0x056d0, 0x055b2, 0x049b0, 0x0a577, 0x0a4b0, 0x0aa50, 0x1b255, 0x06d20, 0x0ada0, //2040-2049
+        0x14b63, 0x09370, 0x049f8, 0x04970, 0x064b0, 0x168a6, 0x0ea50, 0x06b20, 0x1a6c4, 0x0aae0, //2050-2059
+        0x0a2e0, 0x0d2e3, 0x0c960, 0x0d557, 0x0d4a0, 0x0da50, 0x05d55, 0x056a0, 0x0a6d0, 0x055d4, //2060-2069
+        0x052d0, 0x0a9b8, 0x0a950, 0x0b4a0, 0x0b6a6, 0x0ad50, 0x055a0, 0x0aba4, 0x0a5b0, 0x052b0, //2070-2079
+        0x0b273, 0x06930, 0x07337, 0x06aa0, 0x0ad50, 0x14b55, 0x04b60, 0x0a570, 0x054e4, 0x0d160, //2080-2089
+        0x0e968, 0x0d520, 0x0daa0, 0x16aa6, 0x056d0, 0x04ae0, 0x0a9d4, 0x0a2d0, 0x0d150, 0x0f252, //2090-2099
+        0x0d520 //2100
+    ],
+    lunarMonth = ['正', '二', '三', '四', '五', '六', '七', '八', '九', '十', '冬', '腊'],
+    lunarDay = ['一', '二', '三', '四', '五', '六', '七', '八', '九', '十', '初', '廿'],
+    tianGan = ['甲', '乙', '丙', '丁', '戊', '己', '庚', '辛', '壬', '癸'],
+    diZhi = ['子鼠', '丑牛', '寅虎', '卯兔', '辰龙', '巳蛇', '午马', '未羊', '申猴', '酉鸡', '戌狗', '亥猪'];
+
+// 公历转农历函数
+export const sloarToLunar = function (sy, sm, sd) {
+    // 输入的月份减1处理
+    sm -= 1;
+
+	// debugger
+    // 计算与公历基准的相差天数
+    // Date.UTC()返回的是距离公历1970年1月1日的毫秒数,传入的月份需要减1
+    let daySpan = (Date.UTC(sy, sm, sd) - Date.UTC(1949, 0, 29)) / (24 * 60 * 60 * 1000) + 1;
+    let ly, lm, ld,lz,nly;
+    // 确定输出的农历年份
+    for (let j = 0; j < lunarYearArr.length; j++) {
+        daySpan -= lunarYearDays(lunarYearArr[j]);
+        if (daySpan <= 0) {
+            ly = 1949 + j;
+            // 获取农历年份确定后的剩余天数
+            daySpan += lunarYearDays(lunarYearArr[j]);
+            break
+        }
+    }
+
+    // 确定输出的农历月份
+    for (let k = 0; k < lunarYearMonths(lunarYearArr[ly - 1949]).length; k++) {
+        daySpan -= lunarYearMonths(lunarYearArr[ly - 1949])[k];
+        if (daySpan <= 0) {
+            // 有闰月时,月份的数组长度会变成13,因此,当闰月月份小于等于k时,lm不需要加1
+            if (hasLeapMonth(lunarYearArr[ly - 1949]) && hasLeapMonth(lunarYearArr[ly - 1949]) <= k) {
+                if (hasLeapMonth(lunarYearArr[ly - 1949]) < k) {
+                    lm = k;
+                } else if (hasLeapMonth(lunarYearArr[ly - 1949]) === k) {
+                    lm = '闰' + k;
+                } else {
+                    lm = k + 1;
+                }
+            } else {
+                lm = k + 1;
+            }
+            // 获取农历月份确定后的剩余天数
+            daySpan += lunarYearMonths(lunarYearArr[ly - 1949])[k];
+            break
+        }
+    }
+
+    // 确定输出农历哪一天
+    ld = daySpan;
+
+    // 将计算出来的农历月份转换成汉字月份,闰月需要在前面加上闰字
+    if (hasLeapMonth(lunarYearArr[ly - 1949]) && (typeof (lm) === 'string' && lm.indexOf('闰') > -1)) {
+        lm = `闰${lunarMonth[/\d/.exec(lm) - 1]}`
+    } else {
+        lm = lunarMonth[lm - 1];
+    }
+nly=ly
+    // 将计算出来的农历年份转换为天干地支年
+    ly = getTianGan(ly) + getDiZhi(ly);
+    // 将计算出来的农历天数转换成汉字
+    if (ld < 11) {
+        ld = `${lunarDay[10]}${lunarDay[ld-1]}`
+    } else if (ld > 10 && ld < 20) {
+        ld = `${lunarDay[9]}${lunarDay[ld-11]}`
+    } else if (ld === 20) {
+        ld = `${lunarDay[1]}${lunarDay[9]}`
+    } else if (ld > 20 && ld < 30) {
+        ld = `${lunarDay[11]}${lunarDay[ld-21]}`
+    } else if (ld === 30) {
+        ld = `${lunarDay[2]}${lunarDay[9]}`
+    }
+    return {
+        lunarYear: ly,
+        lunarMonth: lm,
+        lunarDay: ld,
+        lunarShengXiao:lz,
+		lunarYearNum:nly,
+		lunarStr:`${nly}年${lm}月${ld}`,
+		lunarStr2:`${nly}年${lm}月${ld} (${ly})`
+    }
+};
+
+export const  getYearMonthDay = function (sy, sm, sd) {
+    // 输入的月份减1处理
+    sm -= 1;
+
+    // 计算与公历基准的相差天数
+    // Date.UTC()返回的是距离公历1970年1月1日的毫秒数,传入的月份需要减1
+    let daySpan = (Date.UTC(sy, sm, sd) - Date.UTC(1949, 0, 29)) / (24 * 60 * 60 * 1000) + 1;
+    let ly, lm, ld,lz;
+    // 确定输出的农历年份
+    for (let j = 0; j < lunarYearArr.length; j++) {
+        daySpan -= lunarYearDays(lunarYearArr[j]);
+        if (daySpan <= 0) {
+            ly = 1949 + j;
+            // 获取农历年份确定后的剩余天数
+            daySpan += lunarYearDays(lunarYearArr[j]);
+            break
+        }
+    }
+
+    // 确定输出的农历月份
+    for (let k = 0; k < lunarYearMonths(lunarYearArr[ly - 1949]).length; k++) {
+        daySpan -= lunarYearMonths(lunarYearArr[ly - 1949])[k];
+        if (daySpan <= 0) {
+            // 有闰月时,月份的数组长度会变成13,因此,当闰月月份小于等于k时,lm不需要加1
+            if (hasLeapMonth(lunarYearArr[ly - 1949]) && hasLeapMonth(lunarYearArr[ly - 1949]) <= k) {
+                if (hasLeapMonth(lunarYearArr[ly - 1949]) < k) {
+                    lm = k;
+                } else if (hasLeapMonth(lunarYearArr[ly - 1949]) === k) {
+                    lm = '闰' + k;
+                } else {
+                    lm = k + 1;
+                }
+            } else {
+                lm = k + 1;
+            }
+            // 获取农历月份确定后的剩余天数
+            daySpan += lunarYearMonths(lunarYearArr[ly - 1949])[k];
+            break
+        }
+    }
+
+    // 确定输出农历哪一天
+    ld = daySpan;
+
+    // 将计算出来的农历月份转换成汉字月份,闰月需要在前面加上闰字
+    if (hasLeapMonth(lunarYearArr[ly - 1949]) && (typeof (lm) === 'string' && lm.indexOf('闰') > -1)) {
+        lm = `闰${lunarMonth[/\d/.exec(lm) - 1]}`
+    } else {
+        lm = lunarMonth[lm - 1];
+    }
+
+    // 将计算出来的农历年份转换为天干地支年
+    ly = getTianGan(ly) + getDiZhi(ly);
+    // 将计算出来的农历天数转换成汉字
+    if (ld < 11) {
+        ld = `${lunarDay[10]}${lunarDay[ld-1]}`
+    } else if (ld > 10 && ld < 20) {
+        ld = `${lunarDay[9]}${lunarDay[ld-11]}`
+    } else if (ld === 20) {
+        ld = `${lunarDay[1]}${lunarDay[9]}`
+    } else if (ld > 20 && ld < 30) {
+        ld = `${lunarDay[11]}${lunarDay[ld-21]}`
+    } else if (ld === 30) {
+        ld = `${lunarDay[2]}${lunarDay[9]}`
+    }
+    return ld;
+};
+// 计算农历年是否有闰月,参数为存储农历年的16进制
+// 农历年份信息用16进制存储,其中16进制的最后1位可以用于判断是否有闰月
+function hasLeapMonth(ly) {
+    // 获取16进制的最后1位,需要用到&与运算符
+    if (ly & 0xf) {
+        return ly & 0xf
+    } else {
+        return false
+    }
+}
+
+// 如果有闰月,计算农历闰月天数,参数为存储农历年的16进制
+// 农历年份信息用16进制存储,其中16进制的第1位(0x除外)可以用于表示闰月是大月还是小月
+function leapMonthDays(ly) {
+    if (hasLeapMonth(ly)) {
+        // 获取16进制的第1位(0x除外)
+        return (ly & 0xf0000) ? 30 : 29
+    } else {
+        return 0
+    }
+}
+
+// 计算农历一年的总天数,参数为存储农历年的16进制
+// 农历年份信息用16进制存储,其中16进制的第2-4位(0x除外)可以用于表示正常月是大月还是小月
+function lunarYearDays(ly) {
+    let totalDays = 0;
+
+    // 获取正常月的天数,并累加
+    // 获取16进制的第2-4位,需要用到>>移位运算符
+    for (let i = 0x8000; i > 0x8; i >>= 1) {
+        let monthDays = (ly & i) ? 30 : 29;
+        totalDays += monthDays;
+    }
+    // 如果有闰月,需要把闰月的天数加上
+    if (hasLeapMonth(ly)) {
+        totalDays += leapMonthDays(ly);
+    }
+
+    return totalDays
+}
+
+// 获取农历每个月的天数
+// 参数需传入16进制数值
+function lunarYearMonths(ly) {
+    let monthArr = [];
+
+    // 获取正常月的天数,并添加到monthArr数组中
+    // 获取16进制的第2-4位,需要用到>>移位运算符
+    for (let i = 0x8000; i > 0x8; i >>= 1) {
+        monthArr.push((ly & i) ? 30 : 29);
+    }
+    // 如果有闰月,需要把闰月的天数加上
+    if (hasLeapMonth(ly)) {
+        monthArr.splice(hasLeapMonth(ly), 0, leapMonthDays(ly));
+    }
+
+    return monthArr;
+}
+
+// 将农历年转换为天干,参数为农历年
+function getTianGan(ly) {
+    let tianGanKey = (ly - 3) % 10;
+    if (tianGanKey === 0) tianGanKey = 10;
+    return tianGan[tianGanKey - 1];
+}
+
+// 将农历年转换为地支,参数为农历年
+function getDiZhi(ly) {
+    let diZhiKey = (ly - 3) % 12;
+    if (diZhiKey === 0) diZhiKey = 12;
+    return diZhi[diZhiKey - 1];
+}

+ 5 - 5
components/t-i-banner/t-i-banner.vue

@@ -10,7 +10,7 @@
 						<view class="title">
 							<view>{{item.title}}</view>
 							<view class="num">
-								- <text> {{index+1}} </text> -
+								— <text> {{index+1}} </text> —
 							</view>
 						</view>
 					</view>
@@ -36,10 +36,10 @@
 
 <style lang="scss">
 	.banner{
-		margin-top: -50rpx;
+		margin-top: -60rpx;
 		.box{
 			width: 750rpx;
-			height: 600rpx;
+			height: 620rpx;
 			
 			.item{
 				width: 750rpx;
@@ -54,10 +54,10 @@
 					box-sizing: border-box;
 					padding: 0 25rpx;
 					width: 750rpx;
-					height: 120rpx;
+					height: 130rpx;
 					
 					line-height: 1.5;
-					font-size: 28rpx;
+					font-size: 32rpx;
 					
 					position: relative;
 					

+ 45 - 14
components/t-i-common/t-i-common.vue

@@ -1,6 +1,11 @@
 <template>
 	<view class="content">
-		<view class="title">常用功能</view>
+		<view class="title">
+			<view class="text">常用功能</view>
+			<view class="bars" @click="go_bars()">
+				<uni-icons type="bars" color="#999" size="18"></uni-icons>
+			</view>
+		</view>
 		<view class="list">
 			<view class="item" v-for="(item,index) in 7" :key="index">
 				<view class="icon">
@@ -14,49 +19,75 @@
 
 <script>
 	export default {
-		name:"t-i-common",
+		name: "t-i-common",
 		data() {
 			return {
-				
+
 			};
+		},
+		methods:{
+			go_bars(){
+				uni.navigateTo({
+					url:"../../index/bars_sort/bars_sort"
+				})
+			}
 		}
 	}
 </script>
 
 <style lang="scss">
-	.content{
+	.content {
 		margin-bottom: 30rpx;
 		background-color: #FFFFFF;
-		
+
 		box-sizing: border-box;
 		padding: 50rpx 25rpx;
 	}
-	.title{
-		font-size: 36rpx;
+
+	.title {
+		display: flex;
+		align-items: baseline;
+		justify-content: space-between;
+	
+		.text {
+			font-size: 36rpx;
+		}
+	
+		.bars {
+			width: 100rpx;
+			text-align: right;
+	
+		}
 	}
-	.list{
+
+	.list {
 		width: 700rpx;
 		overflow: hidden;
-		.item{
+
+		.item {
 			margin-top: 30rpx;
 			margin-right: 25rpx;
 			width: 120rpx;
-			
+
 			float: left;
-			.icon{
+
+			.icon {
 				width: 120rpx;
 				text-align: center;
-				image{
+
+				image {
 					width: 78rpx;
 					height: 78rpx;
 				}
 			}
-			.name{
+
+			.name {
 				text-align: center;
 				font-size: 26rpx;
 			}
 		}
-		.item:nth-child(5n){
+
+		.item:nth-child(5n) {
 			margin-right: 0;
 		}
 	}

+ 11 - 2
components/t-i-icon/t-i-icon.vue

@@ -27,7 +27,7 @@
 			go_link(link){
 				// console.log(link.split('=')[3].split('&')[0])
 				// let pageId = link.split('=')[3].split('&')[0]
-				
+				console.log(link)
 				let pageId = ""
 				function GetQueryString(name) {
 					var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
@@ -62,16 +62,25 @@
 	.list{
 		display: flex;
 		justify-content: space-between;
+		align-items: center;
 		.item{
-			width: 104rpx;
+			width: 120rpx;
 			.icon{
+				width: 120rpx;
+				text-align: center;
 				image{
 					width: 104rpx;
 					height: 104rpx;
 				}
 			}
 			.name{
+				width: 120rpx;
 				text-align: center;
+				font-size: 30rpx;
+				
+				white-space:nowrap;
+				overflow:hidden;
+				text-overflow:ellipsis;
 			}
 		}
 	}

+ 12 - 9
components/t-i-navbar/t-i-navbar.vue

@@ -6,11 +6,14 @@
 			</view>
 
 			<view class="navbar">
-				<view class="left">
+				<view class="left" @click="switch_kuang()">
 					<image v-if="mine_code == 'ningdongyunying'" src="./icon/ningdongyunying.png" mode=""></image>
-
 					<image v-if="mine_code == 'zaoquan'" src="./icon/zaoquan.png" mode=""></image>
-					<!-- <uni-icons  @click="switch_kuang()" type="arrowdown" color="#fff"></uni-icons> -->
+					<image v-if="mine_code == 'yangchangwan'" src="@/static/switch-kuang/yangchangwan.png" mode=""></image>
+					<image v-if="mine_code == 'meihuajing'" src="@/static/switch-kuang/meihuajing.png" mode=""></image>
+					<image v-if="mine_code == 'jinfeng'" src="@/static/switch-kuang/jinfeng.png" mode=""></image>
+					<image v-if="mine_code == 'xixuan'" src="@/static/switch-kuang/xixuan.png" mode=""></image>
+					<uni-icons type="arrowdown" color="#fff"></uni-icons>
 				</view>
 				<view class="search">
 					<view class="box">
@@ -60,9 +63,9 @@
 			return {
 				// 当前温度
 				temperature_curr: "",
-				
+
 				// 总积分
-				total:0
+				total: 0
 			};
 		},
 		created() {
@@ -148,15 +151,15 @@
 				this.$api.staff_integral_query({
 					staff_num: uni.getStorageSync('user').staff_num
 				}).then((res) => {
-					console.log(res)
-					
+					// console.log(res)
+
 					this.total = res.data.content.data.integral_sum
 				})
 			},
 			// 积分详情
-			go_integral(){
+			go_integral() {
 				uni.navigateTo({
-					url:"../../index/integral/integral?total=" + this.total
+					url: "../../index/integral/integral?total=" + this.total
 				})
 			}
 		}

+ 71 - 10
components/t-i-notice/t-i-notice.vue

@@ -2,8 +2,9 @@
 	<view class="content">
 		<view class="box">
 			<!-- 文字滚动 -->
-			<uni-notice-bar :speed="50" background-color="#ffffff00" color="#fff" single="true"
-				:text="text_time"></uni-notice-bar>
+			<uni-notice-bar scrollable="true" :speed="30" background-color="#ffffff00" color="#fff" single="true"
+				:text="text_time">
+			</uni-notice-bar>
 
 			<!-- 文字滚动 -->
 			<uni-notice-bar scrollable="true" :speed="20" background-color="#ffffff00" color="#fff" single="true"
@@ -13,17 +14,69 @@
 </template>
 
 <script>
+	import {
+		sloarToLunar,
+		getYearMonthDay
+	} from "../../components/Toling-DateSelect/computedLunarDate.js";
+
+	// 返回指定日期距今多少天
+	const daysComputed = time => {
+		let oldTimeFormat = new Date(time)
+		let nowDate = new Date()
+		if (nowDate.getTime() - oldTimeFormat.getTime() > 0) {
+			let times = nowDate.getTime() - oldTimeFormat.getTime()
+			let days = parseInt(times / (60 * 60 * 24 * 1000))
+			return days
+		} else {
+			throw ('传入时间不能大于当前日期')
+		}
+	}
+	// console.log(daysComputed('2006-04-28'))
+
+	// 返回指定日期前/后多少天的日期
+	function getNextDate(date, day) {
+		var dd = new Date(date);
+		dd.setDate(dd.getDate() + day);
+		var y = dd.getFullYear();
+		var m = dd.getMonth() + 1 < 10 ? "0" + (dd.getMonth() + 1) : dd.getMonth() + 1;
+		var d = dd.getDate() < 10 ? "0" + dd.getDate() : dd.getDate();
+		return y + "-" + m + "-" + d;
+	};
+
+	// getNextDate("2018-09-27",10)
 	export default {
 		name: "t-i-notice",
 		props: [
-			"text"
+			"text",
+			"mine_code"
 		],
 		data() {
 			return {
-				text_time:"",
+				text_time: "",
+
+
+				year: 0,
+				month: 0,
+				today: 0,
+
+				lunarStr2: "",
+				days: 0
 			};
 		},
 		created() {
+
+			this.year = new Date().getFullYear();
+			this.month = new Date().getMonth() + 1;
+			this.today = new Date().getDate();
+
+			this.lunarStr2 = "  农历: " + sloarToLunar(this.year, this.month.toString().padStart(2, '0'), this.today)
+				.lunarStr2
+			// console.log(sloarToLunar(this.year, this.month.toString().padStart(2, '0'), this.today))
+
+			// console.log(getNextDate("2022-01-04",-5730))
+
+			this.days = daysComputed('2006-04-28')
+			// console.log(daysComputed('2006-04-28'))
 			this.getCurrentDate()
 		},
 		methods: {
@@ -56,9 +109,17 @@
 						days = '星期日';
 						break;
 				}
-				var str = "今日 " + " " +  year + "年" + month + "月" + day + "日  " + days;
-				this.text_time = str
-			}
+
+				var str = "今日 " + " " + year + "年" + month + "月" + day + "日  " + days;
+				
+				if (uni.getStorageSync('mine_code') == 'zaoquan') {
+					this.text_time = str + " " + this.lunarStr2 + " 累计安全生产 " + this.days + " 天"
+				} else {
+					this.text_time = str + " " + this.lunarStr2
+				}
+
+			},
+
 		}
 	}
 </script>
@@ -86,13 +147,13 @@
 
 		box-sizing: border-box;
 		padding: 0 20rpx;
-		
+
 
 		/deep/.uni-noticebar {
 			margin-bottom: 0;
 		}
-		
-		/deep/.uni-noticebar:nth-child(2){
+
+		/deep/.uni-noticebar:nth-child(2) {
 			padding-top: 0;
 		}
 	}

+ 16 - 2
components/t-m-icon/t-m-icon.vue

@@ -62,6 +62,13 @@
 				<view class="name">清除缓存</view>
 			</view>
 			
+			<!-- <view class="item" @click="go_cloud_disk()">
+				<view class="icon">
+					<image src="./icon/qingchu.png" mode=""></image>
+				</view>
+				<view class="name">我的云盘</view>
+			</view> -->
+			
 		</view>
 	</view>
 </template>
@@ -116,8 +123,10 @@
 					uni.navigateTo({
 						url:"../../index/record/record?pageId=f73209f7e0a4425a94a32210cdfc311d&mine_code=" + this.mine_code,
 					})
-				}else{
-					
+				}else if(this.mine_code == 'ningdongyunying'){
+					uni.navigateTo({
+						url:"../../index/record/record?pageId=156c601a10be43bc8f32e83f0664821b&mine_code=" + this.mine_code,
+					})
 				}
 			},
 			// 建议反馈
@@ -157,6 +166,11 @@
 				uni.navigateTo({
 					url:"../../my/signature/signature"
 				})
+			},
+			go_cloud_disk(){
+				uni.navigateTo({
+					url:"../../my/cloud_disk/cloud_disk"
+				})
 			}
 			
 		}

+ 3 - 3
components/t-m-info/t-m-info.vue

@@ -7,7 +7,7 @@
 					<view class="avatar" v-if="!user.avatar" :style="{backgroundColor:bgColor[1]}">{{user.name.split('').pop()}}</view>
 				</view>
 				<view class="info">
-					<view class="name">{{user.name}} <text style="color: #999;font-size: 14px;margin-left: 10px;" v-if="mobile">({{mobile}})</text> </view>
+					<view class="name">{{user.name}} <text style="color: #999;font-size: 26rpx;margin-left: 10px;" v-if="mobile">({{mobile}})</text> </view>
 					<view class="section">{{user.section}}</view>
 				</view>
 			</view>
@@ -160,14 +160,14 @@
 			.info{
 				margin-left: 12px;
 				.name{
-					font-size: 19px;
+					font-size: 34rpx;
 					font-weight: 500;
 					color: #232627;
 					line-height: 26px;
 				}
 				.section{
 					margin-top: 4px;
-					font-size: 14px;
+					font-size: 28rpx;
 					font-weight: 500;
 					color: #232627;
 					line-height: 19px;

+ 3 - 26
components/t-o-ningdongyunying/t-o-ningdongyunying.vue

@@ -67,31 +67,6 @@
 </script>
 
 <style lang="scss">
-	.list{
-		background-color: #FFFFFF;
-		margin-bottom: 20rpx;
-		
-		box-sizing: border-box;
-		padding: 50rpx 25rpx;
-		
-		display: flex;
-		align-items: center;
-		justify-content: space-between;
-		.item{
-			width: 175rpx;
-			text-align: center;
-			.icon{
-				image{
-					width: 78rpx;
-					height: 78rpx;
-				}
-			}
-			.text{
-				margin-top: 24rpx;
-				font-size: 32rpx;
-			}
-		}
-	}
 	
 	.content{
 		background-color: #FFFFFF;
@@ -104,9 +79,11 @@
 			padding: 0 36rpx;
 			border-bottom: 1rpx solid #F3F8F7;
 			.icon{
+				display: flex;
+				align-items: center;
 				image{
 					width: 48rpx;
-					height: 36rpx;
+					height: 36rpx;	
 				}
 			}
 			.text{

+ 3 - 1
components/t-o-zaoquan/t-o-zaoquan.vue

@@ -134,9 +134,11 @@
 			padding: 0 36rpx;
 			border-bottom: 1rpx solid #F3F8F7;
 			.icon{
+				display: flex;
+				align-items: center;
 				image{
 					width: 48rpx;
-					height: 36rpx;
+					height: 36rpx;	
 				}
 			}
 			.text{

+ 151 - 0
components/t-p-baijigou/t-p-baijigou.vue

@@ -0,0 +1,151 @@
+<template>
+	<view class="content">
+		<view class="item_box" style="background-color: #638BD5;" @click="go_production_report()">
+			<view class="img">
+				<image src="../t-p-icon/icon_2.png" mode=""></image>
+			</view>
+			<view class="text">
+				<view class="name">生产报表</view>
+				<view class="tip">当日产量{{days_output}}吨</view>
+			</view>
+		</view>
+		<view class="item_box" style="background-color: #A3A2E4;" @click="go_personnel_orientation()">
+			<view class="img">
+				<image src="../t-p-icon/icon_3.png" mode=""></image>
+			</view>
+			<view class="text">
+				<view class="name">人员定位</view>
+				<view class="tip">井下人数{{mineall_people}}人</view>
+			</view>
+		</view>
+		<view class="item_box" style="background-color: #8BC8DA;" @click="go_safety_monitoring()">
+			<view class="img">
+				<image src="../t-p-icon/icon_4.png" mode=""></image>
+			</view>
+			<view class="text">
+				<view class="name">安全监测</view>
+				<!-- <view class="tip">6268监测点</view> -->
+			</view>
+		</view>
+		<view class="item_box" style="background-color: #FBB47B;" @click="go_video_monitor()">
+			<view class="img">
+				<image src="../t-p-icon/icon_6.png" mode=""></image>
+			</view>
+			<view class="text">
+				<view class="name">视频监控</view>
+				<view class="tip">工业视频</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		name: "t-p-baijigou",
+		data() {
+			return {
+				mine:"640202B0011010032304",
+				org_num:"1002",
+				mine_code:"baijigou",
+				
+				mineall_people: "",
+				days_output: ""
+			};
+		},
+		created() {
+			// 井下人数
+			this.$p_api.personnel_people_now({
+				mine: this.mine
+			}).then((res) => {
+				this.mineall_people = res.data.data.people_total
+			})
+		
+			// 当日生产
+			this.$p_api.coalmine_days_output({
+				mine: this.mine,
+				org_num: this.org_num
+			}).then((res) => {
+				this.days_output = res.data.data[0].total
+			})
+		},
+		methods: {
+			// 生产报表
+			go_production_report() {
+				uni.navigateTo({
+					url: "../../production/production_report/production_report?mine=" + this.mine + "&org_num=" + this.org_num,
+				})
+			},
+			// 安全监测
+			go_safety_monitoring() {
+				uni.navigateTo({
+					url: "../../production/safety_monitoring/safety_monitoring?mine=" + this.mine
+				})
+			},
+			//人员定位
+			go_personnel_orientation() {
+				uni.navigateTo({
+					url:"../../production/personnel_orientation/personnel_orientation?mine=" + this.mine
+				})
+			},
+			// 视频监控
+			go_video_monitor(){
+				uni.navigateTo({
+					url:"../../production/video_monitor/video_monitor?mine_code=" + this.mine_code
+				})
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+	.content {
+		box-sizing: border-box;
+		padding: 20rpx 25rpx 0;
+		margin-bottom: 100rpx;
+
+		overflow: hidden;
+		.item_box {
+			float: left;
+
+			width: 220rpx;
+			height: 280rpx;
+
+			margin-right: 20rpx;
+			margin-bottom: 20rpx;
+			border-radius: 16rpx;
+
+			.img {
+				box-sizing: border-box;
+				padding-top: 40rpx;
+				text-align: center;
+
+				image {
+					width: 140rpx;
+					height: 140rpx;
+				}
+			}
+
+			.text {
+				text-align: center;
+				color: #FFFFFF;
+				line-height: 40rpx;
+
+				.name {
+					font-size: 28rpx;
+				}
+
+				.tip {
+					font-size: 24rpx;
+					white-space: nowrap;
+					overflow: hidden;
+					text-overflow: ellipsis;
+				}
+			}
+		}
+
+		.item_box:nth-child(3n) {
+			margin-right: 0;
+		}
+
+	}
+</style>

+ 151 - 0
components/t-p-hongliu/t-p-hongliu.vue

@@ -0,0 +1,151 @@
+<template>
+	<view class="content">
+		<view class="item_box" style="background-color: #638BD5;" @click="go_production_report()">
+			<view class="img">
+				<image src="../t-p-icon/icon_2.png" mode=""></image>
+			</view>
+			<view class="text">
+				<view class="name">生产报表</view>
+				<view class="tip">当日产量{{days_output}}吨</view>
+			</view>
+		</view>
+		<view class="item_box" style="background-color: #A3A2E4;" @click="go_personnel_orientation()">
+			<view class="img">
+				<image src="../t-p-icon/icon_3.png" mode=""></image>
+			</view>
+			<view class="text">
+				<view class="name">人员定位</view>
+				<view class="tip">井下人数{{mineall_people}}人</view>
+			</view>
+		</view>
+		<view class="item_box" style="background-color: #8BC8DA;" @click="go_safety_monitoring()">
+			<view class="img">
+				<image src="../t-p-icon/icon_4.png" mode=""></image>
+			</view>
+			<view class="text">
+				<view class="name">安全监测</view>
+				<!-- <view class="tip">6268监测点</view> -->
+			</view>
+		</view>
+		<view class="item_box" style="background-color: #FBB47B;" @click="go_video_monitor()">
+			<view class="img">
+				<image src="../t-p-icon/icon_6.png" mode=""></image>
+			</view>
+			<view class="text">
+				<view class="name">视频监控</view>
+				<view class="tip">工业视频</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		name: "t-p-hongliu",
+		data() {
+			return {
+				mine:"640181B0011010018602",
+				org_num:"1026",
+				mine_code:"hongliu",
+				
+				mineall_people: "",
+				days_output: ""
+			};
+		},
+		created() {
+			// 井下人数
+			this.$p_api.personnel_people_now({
+				mine: this.mine
+			}).then((res) => {
+				this.mineall_people = res.data.data.people_total
+			})
+		
+			// 当日生产
+			this.$p_api.coalmine_days_output({
+				mine: this.mine,
+				org_num: this.org_num
+			}).then((res) => {
+				this.days_output = res.data.data[0].total
+			})
+		},
+		methods: {
+			// 生产报表
+			go_production_report() {
+				uni.navigateTo({
+					url: "../../production/production_report/production_report?mine=" + this.mine + "&org_num=" + this.org_num,
+				})
+			},
+			// 安全监测
+			go_safety_monitoring() {
+				uni.navigateTo({
+					url: "../../production/safety_monitoring/safety_monitoring?mine=" + this.mine
+				})
+			},
+			//人员定位
+			go_personnel_orientation() {
+				uni.navigateTo({
+					url:"../../production/personnel_orientation/personnel_orientation?mine=" + this.mine
+				})
+			},
+			// 视频监控
+			go_video_monitor(){
+				uni.navigateTo({
+					url:"../../production/video_monitor/video_monitor?mine_code=" + this.mine_code
+				})
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+	.content {
+		box-sizing: border-box;
+		padding: 20rpx 25rpx 0;
+		margin-bottom: 100rpx;
+
+		overflow: hidden;
+		.item_box {
+			float: left;
+
+			width: 220rpx;
+			height: 280rpx;
+
+			margin-right: 20rpx;
+			margin-bottom: 20rpx;
+			border-radius: 16rpx;
+
+			.img {
+				box-sizing: border-box;
+				padding-top: 40rpx;
+				text-align: center;
+
+				image {
+					width: 140rpx;
+					height: 140rpx;
+				}
+			}
+
+			.text {
+				text-align: center;
+				color: #FFFFFF;
+				line-height: 40rpx;
+
+				.name {
+					font-size: 28rpx;
+				}
+
+				.tip {
+					font-size: 24rpx;
+					white-space: nowrap;
+					overflow: hidden;
+					text-overflow: ellipsis;
+				}
+			}
+		}
+
+		.item_box:nth-child(3n) {
+			margin-right: 0;
+		}
+
+	}
+</style>

+ 151 - 0
components/t-p-hongshiwan/t-p-hongshiwan.vue

@@ -0,0 +1,151 @@
+<template>
+	<view class="content">
+		<view class="item_box" style="background-color: #638BD5;" @click="go_production_report()">
+			<view class="img">
+				<image src="../t-p-icon/icon_2.png" mode=""></image>
+			</view>
+			<view class="text">
+				<view class="name">生产报表</view>
+				<view class="tip">当日产量{{days_output}}吨</view>
+			</view>
+		</view>
+		<view class="item_box" style="background-color: #A3A2E4;" @click="go_personnel_orientation()">
+			<view class="img">
+				<image src="../t-p-icon/icon_3.png" mode=""></image>
+			</view>
+			<view class="text">
+				<view class="name">人员定位</view>
+				<view class="tip">井下人数{{mineall_people}}人</view>
+			</view>
+		</view>
+		<view class="item_box" style="background-color: #8BC8DA;" @click="go_safety_monitoring()">
+			<view class="img">
+				<image src="../t-p-icon/icon_4.png" mode=""></image>
+			</view>
+			<view class="text">
+				<view class="name">安全监测</view>
+				<!-- <view class="tip">6268监测点</view> -->
+			</view>
+		</view>
+		<view class="item_box" style="background-color: #FBB47B;" @click="go_video_monitor()">
+			<view class="img">
+				<image src="../t-p-icon/icon_6.png" mode=""></image>
+			</view>
+			<view class="text">
+				<view class="name">视频监控</view>
+				<view class="tip">工业视频</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		name: "t-p-hongshiwan",
+		data() {
+			return {
+				mine:"640181B0011010037230",
+				org_num:"1025",
+				mine_code:"hongshiwan",
+				
+				mineall_people: "",
+				days_output: ""
+			};
+		},
+		created() {
+			// 井下人数
+			this.$p_api.personnel_people_now({
+				mine: this.mine
+			}).then((res) => {
+				this.mineall_people = res.data.data.people_total
+			})
+		
+			// 当日生产
+			this.$p_api.coalmine_days_output({
+				mine: this.mine,
+				org_num: this.org_num
+			}).then((res) => {
+				this.days_output = res.data.data[0].total
+			})
+		},
+		methods: {
+			// 生产报表
+			go_production_report() {
+				uni.navigateTo({
+					url: "../../production/production_report/production_report?mine=" + this.mine + "&org_num=" + this.org_num,
+				})
+			},
+			// 安全监测
+			go_safety_monitoring() {
+				uni.navigateTo({
+					url: "../../production/safety_monitoring/safety_monitoring?mine=" + this.mine
+				})
+			},
+			//人员定位
+			go_personnel_orientation() {
+				uni.navigateTo({
+					url:"../../production/personnel_orientation/personnel_orientation?mine=" + this.mine
+				})
+			},
+			// 视频监控
+			go_video_monitor(){
+				uni.navigateTo({
+					url:"../../production/video_monitor/video_monitor?mine_code=" + this.mine_code
+				})
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+	.content {
+		box-sizing: border-box;
+		padding: 20rpx 25rpx 0;
+		margin-bottom: 100rpx;
+
+		overflow: hidden;
+		.item_box {
+			float: left;
+
+			width: 220rpx;
+			height: 280rpx;
+
+			margin-right: 20rpx;
+			margin-bottom: 20rpx;
+			border-radius: 16rpx;
+
+			.img {
+				box-sizing: border-box;
+				padding-top: 40rpx;
+				text-align: center;
+
+				image {
+					width: 140rpx;
+					height: 140rpx;
+				}
+			}
+
+			.text {
+				text-align: center;
+				color: #FFFFFF;
+				line-height: 40rpx;
+
+				.name {
+					font-size: 28rpx;
+				}
+
+				.tip {
+					font-size: 24rpx;
+					white-space: nowrap;
+					overflow: hidden;
+					text-overflow: ellipsis;
+				}
+			}
+		}
+
+		.item_box:nth-child(3n) {
+			margin-right: 0;
+		}
+
+	}
+</style>

+ 151 - 0
components/t-p-jinfeng/t-p-jinfeng.vue

@@ -0,0 +1,151 @@
+<template>
+	<view class="content">
+		<view class="item_box" style="background-color: #638BD5;" @click="go_production_report()">
+			<view class="img">
+				<image src="../t-p-icon/icon_2.png" mode=""></image>
+			</view>
+			<view class="text">
+				<view class="name">生产报表</view>
+				<view class="tip">当日产量{{days_output}}吨</view>
+			</view>
+		</view>
+		<view class="item_box" style="background-color: #A3A2E4;" @click="go_personnel_orientation()">
+			<view class="img">
+				<image src="../t-p-icon/icon_3.png" mode=""></image>
+			</view>
+			<view class="text">
+				<view class="name">人员定位</view>
+				<view class="tip">井下人数{{mineall_people}}人</view>
+			</view>
+		</view>
+		<view class="item_box" style="background-color: #8BC8DA;" @click="go_safety_monitoring()">
+			<view class="img">
+				<image src="../t-p-icon/icon_4.png" mode=""></image>
+			</view>
+			<view class="text">
+				<view class="name">安全监测</view>
+				<!-- <view class="tip">6268监测点</view> -->
+			</view>
+		</view>
+		<view class="item_box" style="background-color: #FBB47B;" @click="go_video_monitor()">
+			<view class="img">
+				<image src="../t-p-icon/icon_6.png" mode=""></image>
+			</view>
+			<view class="text">
+				<view class="name">视频监控</view>
+				<view class="tip">工业视频</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		name: "t-p-jinfeng",
+		data() {
+			return {
+				mine:"640323B0011010027334",
+				org_num:"1020",
+				mine_code:"jinfeng",
+				
+				mineall_people: "",
+				days_output: ""
+			};
+		},
+		created() {
+			// 井下人数
+			this.$p_api.personnel_people_now({
+				mine: this.mine
+			}).then((res) => {
+				this.mineall_people = res.data.data.people_total
+			})
+		
+			// 当日生产
+			this.$p_api.coalmine_days_output({
+				mine: this.mine,
+				org_num: this.org_num
+			}).then((res) => {
+				this.days_output = res.data.data[0].total
+			})
+		},
+		methods: {
+			// 生产报表
+			go_production_report() {
+				uni.navigateTo({
+					url: "../../production/production_report/production_report?mine=" + this.mine + "&org_num=" + this.org_num,
+				})
+			},
+			// 安全监测
+			go_safety_monitoring() {
+				uni.navigateTo({
+					url: "../../production/safety_monitoring/safety_monitoring?mine=" + this.mine
+				})
+			},
+			//人员定位
+			go_personnel_orientation() {
+				uni.navigateTo({
+					url:"../../production/personnel_orientation/personnel_orientation?mine=" + this.mine
+				})
+			},
+			// 视频监控
+			go_video_monitor(){
+				uni.navigateTo({
+					url:"../../production/video_monitor/video_monitor?mine_code=" + this.mine_code
+				})
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+	.content {
+		box-sizing: border-box;
+		padding: 20rpx 25rpx 0;
+		margin-bottom: 100rpx;
+
+		overflow: hidden;
+		.item_box {
+			float: left;
+
+			width: 220rpx;
+			height: 280rpx;
+
+			margin-right: 20rpx;
+			margin-bottom: 20rpx;
+			border-radius: 16rpx;
+
+			.img {
+				box-sizing: border-box;
+				padding-top: 40rpx;
+				text-align: center;
+
+				image {
+					width: 140rpx;
+					height: 140rpx;
+				}
+			}
+
+			.text {
+				text-align: center;
+				color: #FFFFFF;
+				line-height: 40rpx;
+
+				.name {
+					font-size: 28rpx;
+				}
+
+				.tip {
+					font-size: 24rpx;
+					white-space: nowrap;
+					overflow: hidden;
+					text-overflow: ellipsis;
+				}
+			}
+		}
+
+		.item_box:nth-child(3n) {
+			margin-right: 0;
+		}
+
+	}
+</style>

+ 127 - 0
components/t-p-jinjiaqu/t-p-jinjiaqu.vue

@@ -0,0 +1,127 @@
+<template>
+	<view class="content">
+		<view class="item_box" style="background-color: #A3A2E4;" @click="go_personnel_orientation()">
+			<view class="img">
+				<image src="../t-p-icon/icon_3.png" mode=""></image>
+			</view>
+			<view class="text">
+				<view class="name">人员定位</view>
+				<view class="tip">井下人数{{mineall_people}}人</view>
+			</view>
+		</view>
+		<view class="item_box" style="background-color: #8BC8DA;" @click="go_safety_monitoring()">
+			<view class="img">
+				<image src="../t-p-icon/icon_4.png" mode=""></image>
+			</view>
+			<view class="text">
+				<view class="name">安全监测</view>
+				<!-- <view class="tip">6268监测点</view> -->
+			</view>
+		</view>
+		<view class="item_box" style="background-color: #FBB47B;" @click="go_video_monitor()">
+			<view class="img">
+				<image src="../t-p-icon/icon_6.png" mode=""></image>
+			</view>
+			<view class="text">
+				<view class="name">视频监控</view>
+				<view class="tip">工业视频</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		name: "t-p-jinjiaqu",
+		data() {
+			return {
+				mine:"640323B0011010019259",
+				mine_code:"jinjiaqu",
+				
+				mineall_people: "",
+			};
+		},
+		created() {
+			// 井下人数
+			this.$p_api.personnel_people_now({
+				mine: this.mine
+			}).then((res) => {
+				this.mineall_people = res.data.data.people_total
+			})
+		
+		},
+		methods: {
+			// 安全监测
+			go_safety_monitoring() {
+				uni.navigateTo({
+					url: "../../production/safety_monitoring/safety_monitoring?mine=" + this.mine
+				})
+			},
+			//人员定位
+			go_personnel_orientation() {
+				uni.navigateTo({
+					url:"../../production/personnel_orientation/personnel_orientation?mine=" + this.mine
+				})
+			},
+			// 视频监控
+			go_video_monitor(){
+				uni.navigateTo({
+					url:"../../production/video_monitor/video_monitor?mine_code=" + this.mine_code
+				})
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+	.content {
+		box-sizing: border-box;
+		padding: 20rpx 25rpx 0;
+		margin-bottom: 100rpx;
+
+		overflow: hidden;
+		.item_box {
+			float: left;
+			
+			width: 220rpx;
+			height: 280rpx;
+
+			margin-right: 20rpx;
+			margin-bottom: 20rpx;
+			border-radius: 16rpx;
+
+			.img {
+				box-sizing: border-box;
+				padding-top: 40rpx;
+				text-align: center;
+
+				image {
+					width: 140rpx;
+					height: 140rpx;
+				}
+			}
+
+			.text {
+				text-align: center;
+				color: #FFFFFF;
+				line-height: 40rpx;
+
+				.name {
+					font-size: 28rpx;
+				}
+
+				.tip {
+					font-size: 24rpx;
+					white-space: nowrap;
+					overflow: hidden;
+					text-overflow: ellipsis;
+				}
+			}
+		}
+
+		.item_box:nth-child(3n) {
+			margin-right: 0;
+		}
+
+	}
+</style>

+ 151 - 0
components/t-p-lingxin/t-p-lingxin.vue

@@ -0,0 +1,151 @@
+<template>
+	<view class="content">
+		<view class="item_box" style="background-color: #638BD5;" @click="go_production_report()">
+			<view class="img">
+				<image src="../t-p-icon/icon_2.png" mode=""></image>
+			</view>
+			<view class="text">
+				<view class="name">生产报表</view>
+				<view class="tip">当日产量{{days_output}}吨</view>
+			</view>
+		</view>
+		<view class="item_box" style="background-color: #A3A2E4;" @click="go_personnel_orientation()">
+			<view class="img">
+				<image src="../t-p-icon/icon_3.png" mode=""></image>
+			</view>
+			<view class="text">
+				<view class="name">人员定位</view>
+				<view class="tip">井下人数{{mineall_people}}人</view>
+			</view>
+		</view>
+		<view class="item_box" style="background-color: #8BC8DA;" @click="go_safety_monitoring()">
+			<view class="img">
+				<image src="../t-p-icon/icon_4.png" mode=""></image>
+			</view>
+			<view class="text">
+				<view class="name">安全监测</view>
+				<!-- <view class="tip">6268监测点</view> -->
+			</view>
+		</view>
+		<view class="item_box" style="background-color: #FBB47B;" @click="go_video_monitor()">
+			<view class="img">
+				<image src="../t-p-icon/icon_6.png" mode=""></image>
+			</view>
+			<view class="text">
+				<view class="name">视频监控</view>
+				<view class="tip">工业视频</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		name: "t-p-lingxin",
+		data() {
+			return {
+				mine:"640181B0011010037973",
+				org_num:"1015",
+				mine_code:"lingxin",
+				
+				mineall_people: "",
+				days_output: ""
+			};
+		},
+		created() {
+			// 井下人数
+			this.$p_api.personnel_people_now({
+				mine: this.mine
+			}).then((res) => {
+				this.mineall_people = res.data.data.people_total
+			})
+		
+			// 当日生产
+			this.$p_api.coalmine_days_output({
+				mine: this.mine,
+				org_num: this.org_num
+			}).then((res) => {
+				this.days_output = res.data.data[0].total
+			})
+		},
+		methods: {
+			// 生产报表
+			go_production_report() {
+				uni.navigateTo({
+					url: "../../production/production_report/production_report?mine=" + this.mine + "&org_num=" + this.org_num,
+				})
+			},
+			// 安全监测
+			go_safety_monitoring() {
+				uni.navigateTo({
+					url: "../../production/safety_monitoring/safety_monitoring?mine=" + this.mine
+				})
+			},
+			//人员定位
+			go_personnel_orientation() {
+				uni.navigateTo({
+					url:"../../production/personnel_orientation/personnel_orientation?mine=" + this.mine
+				})
+			},
+			// 视频监控
+			go_video_monitor(){
+				uni.navigateTo({
+					url:"../../production/video_monitor/video_monitor?mine_code=" + this.mine_code
+				})
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+	.content {
+		box-sizing: border-box;
+		padding: 20rpx 25rpx 0;
+		margin-bottom: 100rpx;
+
+		overflow: hidden;
+		.item_box {
+			float: left;
+
+			width: 220rpx;
+			height: 280rpx;
+
+			margin-right: 20rpx;
+			margin-bottom: 20rpx;
+			border-radius: 16rpx;
+
+			.img {
+				box-sizing: border-box;
+				padding-top: 40rpx;
+				text-align: center;
+
+				image {
+					width: 140rpx;
+					height: 140rpx;
+				}
+			}
+
+			.text {
+				text-align: center;
+				color: #FFFFFF;
+				line-height: 40rpx;
+
+				.name {
+					font-size: 28rpx;
+				}
+
+				.tip {
+					font-size: 24rpx;
+					white-space: nowrap;
+					overflow: hidden;
+					text-overflow: ellipsis;
+				}
+			}
+		}
+
+		.item_box:nth-child(3n) {
+			margin-right: 0;
+		}
+
+	}
+</style>

+ 151 - 0
components/t-p-maiduoshan/t-p-maiduoshan.vue

@@ -0,0 +1,151 @@
+<template>
+	<view class="content">
+		<view class="item_box" style="background-color: #638BD5;" @click="go_production_report()">
+			<view class="img">
+				<image src="../t-p-icon/icon_2.png" mode=""></image>
+			</view>
+			<view class="text">
+				<view class="name">生产报表</view>
+				<view class="tip">当日产量{{days_output}}吨</view>
+			</view>
+		</view>
+		<view class="item_box" style="background-color: #A3A2E4;" @click="go_personnel_orientation()">
+			<view class="img">
+				<image src="../t-p-icon/icon_3.png" mode=""></image>
+			</view>
+			<view class="text">
+				<view class="name">人员定位</view>
+				<view class="tip">井下人数{{mineall_people}}人</view>
+			</view>
+		</view>
+		<view class="item_box" style="background-color: #8BC8DA;" @click="go_safety_monitoring()">
+			<view class="img">
+				<image src="../t-p-icon/icon_4.png" mode=""></image>
+			</view>
+			<view class="text">
+				<view class="name">安全监测</view>
+				<!-- <view class="tip">6268监测点</view> -->
+			</view>
+		</view>
+		<view class="item_box" style="background-color: #FBB47B;" @click="go_video_monitor()">
+			<view class="img">
+				<image src="../t-p-icon/icon_6.png" mode=""></image>
+			</view>
+			<view class="text">
+				<view class="name">视频监控</view>
+				<view class="tip">工业视频</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		name: "t-p-maiduoshan",
+		data() {
+			return {
+				mine:"640181B0011010019123",
+				org_num:"1027",
+				mine_code:"maiduoshan",
+				
+				mineall_people: "",
+				days_output: ""
+			};
+		},
+		created() {
+			// 井下人数
+			this.$p_api.personnel_people_now({
+				mine: this.mine
+			}).then((res) => {
+				this.mineall_people = res.data.data.people_total
+			})
+		
+			// 当日生产
+			this.$p_api.coalmine_days_output({
+				mine: this.mine,
+				org_num: this.org_num
+			}).then((res) => {
+				this.days_output = res.data.data[0].total
+			})
+		},
+		methods: {
+			// 生产报表
+			go_production_report() {
+				uni.navigateTo({
+					url: "../../production/production_report/production_report?mine=" + this.mine + "&org_num=" + this.org_num,
+				})
+			},
+			// 安全监测
+			go_safety_monitoring() {
+				uni.navigateTo({
+					url: "../../production/safety_monitoring/safety_monitoring?mine=" + this.mine
+				})
+			},
+			//人员定位
+			go_personnel_orientation() {
+				uni.navigateTo({
+					url:"../../production/personnel_orientation/personnel_orientation?mine=" + this.mine
+				})
+			},
+			// 视频监控
+			go_video_monitor(){
+				uni.navigateTo({
+					url:"../../production/video_monitor/video_monitor?mine_code=" + this.mine_code
+				})
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+	.content {
+		box-sizing: border-box;
+		padding: 20rpx 25rpx 0;
+		margin-bottom: 100rpx;
+
+		overflow: hidden;
+		.item_box {
+			float: left;
+
+			width: 220rpx;
+			height: 280rpx;
+
+			margin-right: 20rpx;
+			margin-bottom: 20rpx;
+			border-radius: 16rpx;
+
+			.img {
+				box-sizing: border-box;
+				padding-top: 40rpx;
+				text-align: center;
+
+				image {
+					width: 140rpx;
+					height: 140rpx;
+				}
+			}
+
+			.text {
+				text-align: center;
+				color: #FFFFFF;
+				line-height: 40rpx;
+
+				.name {
+					font-size: 28rpx;
+				}
+
+				.tip {
+					font-size: 24rpx;
+					white-space: nowrap;
+					overflow: hidden;
+					text-overflow: ellipsis;
+				}
+			}
+		}
+
+		.item_box:nth-child(3n) {
+			margin-right: 0;
+		}
+
+	}
+</style>

+ 207 - 0
components/t-p-meihuajing/t-p-meihuajing.vue

@@ -0,0 +1,207 @@
+<template>
+	<view class="content">
+		<view class="item_box" style="background-color: #638BD5;" @click="go_production_report()">
+			<view class="img">
+				<image src="../t-p-icon/icon_2.png" mode=""></image>
+			</view>
+			<view class="text">
+				<view class="name">生产报表</view>
+				<view class="tip">当日产量{{days_output}}吨</view>
+			</view>
+		</view>
+		<view class="item_box" style="background-color: #A3A2E4;" @click="go_personnel_orientation()">
+			<view class="img">
+				<image src="../t-p-icon/icon_3.png" mode=""></image>
+			</view>
+			<view class="text">
+				<view class="name">人员定位</view>
+				<view class="tip">井下人数{{mineall_people}}人</view>
+			</view>
+		</view>
+		<view class="item_box" style="background-color: #8BC8DA;" @click="go_safety_monitoring()">
+			<view class="img">
+				<image src="../t-p-icon/icon_4.png" mode=""></image>
+			</view>
+			<view class="text">
+				<view class="name">安全监测</view>
+				<!-- <view class="tip">6268监测点</view> -->
+			</view>
+		</view>
+		<view class="item_box" style="background-color: #FBB47B;" @click="go_video_monitor()">
+			<view class="img">
+				<image src="../t-p-icon/icon_6.png" mode=""></image>
+			</view>
+			<view class="text">
+				<view class="name">视频监控</view>
+				<view class="tip">工业视频</view>
+			</view>
+		</view>
+		<view class="item_box" style="background-color: #9CE2A6;" @click="go_zdhxt('http://webdevelop.nxjiewei.com/assets/html/meihuajing-pc/xjtf_/')">
+			<view class="img">
+				<image src="../t-p-icon/icon_10.png" mode=""></image>
+			</view>
+			<view class="text">
+				<view class="name">通风管理</view>
+				<view class="tip">斜井通风</view>
+			</view>
+		</view>
+		<view class="item_box" style="background-color: #9CE2A6;" @click="go_zdhxt('http://webdevelop.nxjiewei.com/assets/html/meihuajing-pc/ljtf_/')">
+			<view class="img">
+				<image src="../t-p-icon/icon_10.png" mode=""></image>
+			</view>
+			<view class="text">
+				<view class="name">通风管理</view>
+				<view class="tip">立井通风</view>
+			</view>
+		</view>
+		<view class="item_box" style="background-color: #2C3E50;" @click="go_zdhxt('http://webdevelop.nxjiewei.com/assets/html/meihuajing-pc/dmml/')">
+			<view class="img">
+				<image src="../t-p-icon/icon_9.png" mode=""></image>
+			</view>
+			<view class="text">
+				<view class="name">主运输系统</view>
+				<view class="tip">地面煤流</view>
+			</view>
+		</view>
+		<view class="item_box" style="background-color: #9FD4FF;" @click="go_zdhxt('http://webdevelop.nxjiewei.com/assets/html/meihuajing-pc/850bf/')">
+			<view class="img">
+				<image src="../t-p-icon/icon_9.png" mode=""></image>
+			</view>
+			<view class="text">
+				<view class="name">排水系统</view>
+				<view class="tip">850泵房</view>
+			</view>
+		</view>
+		<view class="item_box" style="background-color: #2873FF;" @click="go_zdhxt('http://webdevelop.nxjiewei.com/assets/html/meihuajing-pc/697bf/')">
+			<view class="img">
+				<image src="../t-p-icon/icon_9.png" mode=""></image>
+			</view>
+			<view class="text">
+				<view class="name">排水系统</view>
+				<view class="tip">697泵房</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		name: "t-p-meihuajing",
+		data() {
+			return {
+				mine:"640181B0011010027175",
+				org_num:"1019",
+				mine_code:"meihuajing",
+				
+				mineall_people: "",
+				days_output: ""
+			};
+		},
+		created() {
+			// 井下人数
+			this.$p_api.personnel_people_now({
+				mine: this.mine
+			}).then((res) => {
+				this.mineall_people = res.data.data.people_total
+			})
+		
+			// 当日生产
+			this.$p_api.coalmine_days_output({
+				mine: this.mine,
+				org_num: this.org_num
+			}).then((res) => {
+				this.days_output = res.data.data[0].total
+			})
+			
+			
+			
+		},
+		methods: {
+			// 自动化统计列表
+			go_zdhxt(zdhxt){
+				uni.navigateTo({
+					url:"../../production/zidonghua/zidonghua?url=" + zdhxt
+				})
+			},
+			// 生产报表
+			go_production_report() {
+				uni.navigateTo({
+					url: "../../production/production_report/production_report?mine=" + this.mine + "&org_num=" + this.org_num,
+				})
+			},
+			// 安全监测
+			go_safety_monitoring() {
+				uni.navigateTo({
+					url: "../../production/safety_monitoring/safety_monitoring?mine=" + this.mine
+				})
+			},
+			//人员定位
+			go_personnel_orientation() {
+				uni.navigateTo({
+					url:"../../production/personnel_orientation/personnel_orientation?mine=" + this.mine
+				})
+			},
+			// 视频监控
+			go_video_monitor(){
+				uni.navigateTo({
+					url:"../../production/video_monitor/video_monitor?mine_code=" + this.mine_code
+				})
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+	.content {
+		box-sizing: border-box;
+		padding: 20rpx 25rpx 0;
+		margin-bottom: 100rpx;
+
+		
+		overflow: hidden;
+		.item_box {
+			float: left;
+			
+
+			width: 220rpx;
+			height: 280rpx;
+			
+			margin-right: 20rpx;
+			margin-bottom: 20rpx;
+			border-radius: 16rpx;
+
+			.img {
+				box-sizing: border-box;
+				padding-top: 40rpx;
+				text-align: center;
+
+				image {
+					width: 140rpx;
+					height: 140rpx;
+				}
+			}
+
+			.text {
+				text-align: center;
+				color: #FFFFFF;
+				line-height: 40rpx;
+
+				.name {
+					font-size: 28rpx;
+				}
+
+				.tip {
+					font-size: 24rpx;
+					white-space: nowrap;
+					overflow: hidden;
+					text-overflow: ellipsis;
+				}
+			}
+		}
+
+		.item_box:nth-child(3n) {
+			margin-right: 0;
+		}
+
+	}
+</style>

+ 30 - 9
components/t-p-n-section-1/t-p-n-section-1.vue

@@ -1,6 +1,6 @@
 <template>
 	<view class="content">
-		<view class="item_box" style="background-color: #009FE8;">
+		<view class="item_box" style="background-color: #009FE8;" @click="go_h5('http://ningdongyunying.nxjiewei.com:8011/web/monitor/performanceRanking/performanceRanking')">
 			<view class="img">
 				<image src="../t-p-icon/icon_1.png" mode=""></image>
 			</view>
@@ -15,7 +15,7 @@
 			</view>
 			<view class="text">
 				<view class="name">生产报表</view>
-				<view class="tip">当日产量140517.8吨</view>
+				<view class="tip">当日产量{{days_output}}吨</view>
 			</view>
 		</view>
 		<view class="item_box" style="background-color: #A3A2E4;" @click="go_personnel_orientation()">
@@ -24,7 +24,7 @@
 			</view>
 			<view class="text">
 				<view class="name">人员定位</view>
-				<view class="tip">井下人数3892人</view>
+				<view class="tip">井下人数{{mineall_people}}人</view>
 			</view>
 		</view>
 		<view class="item_box" style="background-color: #8BC8DA;" @click="go_safety_monitoring()">
@@ -33,7 +33,7 @@
 			</view>
 			<view class="text">
 				<view class="name">安全监测</view>
-				<view class="tip">6268监测点</view>
+				<!-- <view class="tip">6268监测点</view> -->
 			</view>
 		</view>
 		<view class="item_box" style="background-color: #9AE2A2;" @click="go_zdhxt('tfgl')">
@@ -45,7 +45,7 @@
 				<view class="tip">共40个通风机</view>
 			</view>
 		</view>
-		<view class="item_box" style="background-color: #FBB47B;" @click="go_video_monitor()">
+		<view class="item_box" style="background-color: #FBB47B;" @click="go_h5('http://nmjt.nxjiewei.com:8011/web/monitor/video/videoList?mine_code=')">
 			<view class="img">
 				<image src="../t-p-icon/icon_6.png" mode=""></image>
 			</view>
@@ -90,7 +90,7 @@
 				<view class="tip">压风制氮系统 </view>
 			</view>
 		</view>
-		<view class="item_box" style="background-color: #A3A2E4;">
+		<view class="item_box" style="background-color: #A3A2E4;" @click="go_h5('http://ningdongyunying.nxjiewei.com:8011/web/monitor/productData/equipmentMonitor?title=%E8%AE%BE%E5%A4%87%E7%9B%91%E6%B5%8B')">
 			<view class="img">
 				<image src="../t-p-icon/icon_11.png" mode=""></image>
 			</view>
@@ -107,9 +107,30 @@
 		name: "t-p-n-section-1",
 		data() {
 			return {
-				mine_code: ""
+				mine_code: "",
+				
+				
+				mineall_people: "",
+				days_output: ""
 			};
 		},
+		created() {
+			// 人员定位
+			this.$p_api.personnel_mineall_total({
+				mine: "all"
+			}).then((res) => {
+				this.mineall_people = res.data.data.total + res.data.data.mine_leader_total + res.data
+					.data.company_leader_total
+			})
+			
+			// 当日生产
+			this.$p_api.coalmine_output({
+			
+			}).then((res) => {
+				this.days_output = res.data.data.total
+			})
+			
+		},
 		methods: {
 			// 自动化统计列表
 			go_zdhxt(zdhxt) {
@@ -143,9 +164,9 @@
 				})
 			},
 			// 视频监控
-			go_video_monitor() {
+			go_h5(url) {
 				uni.navigateTo({
-					url: "../../production/video_monitor/video_monitor?mine_code=" + this.mine_code
+					url: "../../ningdongyunying/h5/h5?url=" + url
 				})
 			},
 		}

+ 112 - 15
components/t-p-n-section-2/t-p-n-section-2.vue

@@ -1,11 +1,26 @@
 <template>
 	<view>
 		<view class="swiper-item">
-			<image src="./img/map.jpg"></image>
+			<!-- <image src="./img/map.jpg"></image> -->
 			
 			<view class="map">
-				<view class="area area_1" @click="go_map_area()"></view>
-				<view class="area area_2"></view>
+				<view class="area area_1" @click="go_map_area('lingxin')">灵新</view>
+				<view class="area area_2" @click="go_map_area('hongliu')">红柳</view>
+				<view class="area area_3" @click="go_map_area('zaoquan')">枣泉</view>
+				<view class="area area_4" @click="go_map_area('qingshuiying')">清水营</view>
+				<view class="area area_5" @click="go_map_area('shicaocun')">石槽村</view>
+				<view class="area area_6" @click="go_map_area('meihuajing')">梅花井</view>
+				<view class="area area_7" @click="go_map_area('renjiazhuang')">任家庄</view>
+				<view class="area area_8" @click="go_map_area('ningdongyunying')">信息中心</view>
+				<view class="area area_9" @click="go_map_area('shuangma')">双马</view>
+				<view class="area area_10" @click="go_map_area('maiduoshan')">麦垛山</view>
+				<view class="area area_11" @click="go_map_area('ruqigou')">汝其沟</view>
+				<view class="area area_12" @click="go_map_area('hongshiwan')">红石湾</view>
+				<view class="area area_13" @click="go_map_area('jinjiaqu')">金家渠</view>
+				<view class="area area_14" @click="go_map_area('jinfeng')">金凤</view>
+				<view class="area area_15" @click="go_map_area('yangchangwanyifenqu')">羊场湾一分区</view>
+				<view class="area area_16" @click="go_map_area('yangchanwanerfenqu')">羊场湾二分区</view>
+				<view class="area area_17" @click="go_map_area('xixuan')">洗选</view>
 			</view>
 		</view>
 	</view>
@@ -20,8 +35,13 @@
 			};
 		},
 		methods:{
-			go_map_area(){
+			go_map_area(mine_code){
 				console.log("---")
+				console.log(mine_code)
+				
+				uni.navigateTo({
+					url:"../../ningdongyunying/production_map/production_map?mine_code="+mine_code
+				})
 			}
 		}
 	}
@@ -29,19 +49,23 @@
 
 <style lang="scss">
 	.swiper-item{
+		position: relative;
+		
 		overflow: hidden;
-		image{
-			width: 750rpx;
-			height: 1299rpx;
-		}
+		
+		width: 750rpx;
+		height: 1299rpx;
+		// image{
+		// 	width: 750rpx;
+		// 	height: 1299rpx;
+		// }
 	}
 	
-	
 	.map{
 		position: absolute;
 		left: 0;
 		top: 0;
-		z-index: 999;
+		// z-index: 999;
 		
 		width: 750rpx;
 		height: 1299rpx;
@@ -49,20 +73,93 @@
 		.area{
 			width: 200rpx;
 			height: 60rpx;
+			
+			font-size: 0;
 		}
 		.area_1{
 			position: absolute;
 			left: 28rpx;
-			top: 62rpx;
-			
-			background-color: skyblue;
+			top: 64rpx;
 		}
 		.area_2{
 			position: absolute;
 			left: 28rpx;
 			top: 140rpx;
-			
-			background-color: pink;
+		}
+		.area_3{
+			position: absolute;
+			left: 28rpx;
+			top: 218rpx;
+		}
+		.area_4{
+			position: absolute;
+			left: 28rpx;
+			top: 294rpx;
+		}
+		.area_5{
+			position: absolute;
+			left: 28rpx;
+			top: 372rpx;
+		}
+		.area_6{
+			position: absolute;
+			left: 28rpx;
+			top: 448rpx;
+		}
+		.area_7{
+			position: absolute;
+			left: 28rpx;
+			top: 524rpx;
+		}
+		.area_8{
+			position: absolute;
+			right: 20rpx;
+			top: 66rpx;
+		}
+		.area_9{
+			position: absolute;
+			right: 20rpx;
+			top: 138rpx;
+		}
+		.area_10{
+			position: absolute;
+			right: 20rpx;
+			top: 212rpx;
+		}
+		.area_11{
+			position: absolute;
+			right: 20rpx;
+			top: 284rpx;
+		}
+		.area_12{
+			position: absolute;
+			right: 20rpx;
+			top: 358rpx;
+		}
+		.area_13{
+			position: absolute;
+			right: 20rpx;
+			top: 432rpx;
+		}
+		.area_14{
+			position: absolute;
+			right: 20rpx;
+			top: 856rpx;
+		}
+		.area_15{
+			position: absolute;
+			right: 20rpx;
+			top: 928rpx;
+		}
+		.area_16{
+			position: absolute;
+			right: 20rpx;
+			top: 1000rpx;
+		}
+		.area_17{
+			position: absolute;
+			left: 18rpx;
+			top: 918rpx;
 		}
 	}
 </style>

BIN
components/t-p-ningdongyunying/img/bg.jpg


+ 42 - 6
components/t-p-ningdongyunying/t-p-ningdongyunying.vue

@@ -1,5 +1,6 @@
 <template>
 	<view>
+		<!-- 左右滚动 -->
 		<!-- <swiper duration="500">
 			<swiper-item>
 				<scroll-view scroll-y>
@@ -16,8 +17,19 @@
 				</scroll-view>
 			</swiper-item>
 		</swiper> -->
-		
-		<t-p-n-section-1></t-p-n-section-1>
+
+		<view class="content">
+			<image src="./img/bg.jpg" mode="widthFix"></image>
+
+			<view class="box">
+				<t-p-n-section-1></t-p-n-section-1>
+
+				<t-p-n-section-2></t-p-n-section-2>
+			</view>
+		</view>
+
+
+
 	</view>
 </template>
 
@@ -33,11 +45,35 @@
 </script>
 
 <style lang="scss">
-	/deep/uni-swiper .uni-swiper-wrapper {
-		height: calc(100vh);
+	// 左右滚动
+	// page{
+	// 	background-image: url(./img/bg.jpg);
+	// 	background-size: 100% 100%;
+	// 	background-repeat: no-repeat;
+
+	// }
+
+
+	// /deep/uni-swiper .uni-swiper-wrapper {
+	// 	height: calc(100vh);
+	// }
+
+	// .scroll__box {
+	// 	height: 100vh;
+	// }
+
+	// 上下滑动
+	.content {
+		position: relative;
+	}
+
+	image {
+		width: 750rpx;
 	}
 
-	.scroll__box {
-		height: 100vh;
+	.box {
+		position: absolute;
+		top: 0;
+		left: 0;
 	}
 </style>

+ 128 - 0
components/t-p-qingshuiying/t-p-qingshuiying.vue

@@ -0,0 +1,128 @@
+<template>
+	<view class="content">
+		<view class="item_box" style="background-color: #A3A2E4;" @click="go_personnel_orientation()">
+			<view class="img">
+				<image src="../t-p-icon/icon_3.png" mode=""></image>
+			</view>
+			<view class="text">
+				<view class="name">人员定位</view>
+				<view class="tip">井下人数{{mineall_people}}人</view>
+			</view>
+		</view>
+		<view class="item_box" style="background-color: #8BC8DA;" @click="go_safety_monitoring()">
+			<view class="img">
+				<image src="../t-p-icon/icon_4.png" mode=""></image>
+			</view>
+			<view class="text">
+				<view class="name">安全监测</view>
+				<!-- <view class="tip">6268监测点</view> -->
+			</view>
+		</view>
+		<view class="item_box" style="background-color: #FBB47B;" @click="go_video_monitor()">
+			<view class="img">
+				<image src="../t-p-icon/icon_6.png" mode=""></image>
+			</view>
+			<view class="text">
+				<view class="name">视频监控</view>
+				<view class="tip">工业视频</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		name: "t-p-qingshuiying",
+		data() {
+			return {
+				mine: "640181B0011010026856",
+				mine_code: "qingshuiying",
+
+				mineall_people: "",
+			};
+		},
+		created() {
+			// 井下人数
+			this.$p_api.personnel_people_now({
+				mine: this.mine
+			}).then((res) => {
+				this.mineall_people = res.data.data.people_total
+			})
+
+		},
+		methods: {
+			// 安全监测
+			go_safety_monitoring() {
+				uni.navigateTo({
+					url: "../../production/safety_monitoring/safety_monitoring?mine=" + this.mine
+				})
+			},
+			//人员定位
+			go_personnel_orientation() {
+				uni.navigateTo({
+					url: "../../production/personnel_orientation/personnel_orientation?mine=" + this.mine
+				})
+			},
+			// 视频监控
+			go_video_monitor() {
+				uni.navigateTo({
+					url: "../../production/video_monitor/video_monitor?mine_code=" + this.mine_code
+				})
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+	.content {
+		box-sizing: border-box;
+		padding: 20rpx 25rpx 0;
+		margin-bottom: 100rpx;
+
+		overflow: hidden;
+
+		.item_box {
+			float: left;
+
+			width: 220rpx;
+			height: 280rpx;
+
+			margin-right: 20rpx;
+			margin-bottom: 20rpx;
+			border-radius: 16rpx;
+
+			.img {
+				box-sizing: border-box;
+				padding-top: 40rpx;
+				text-align: center;
+
+				image {
+					width: 140rpx;
+					height: 140rpx;
+				}
+			}
+
+			.text {
+				text-align: center;
+				color: #FFFFFF;
+				line-height: 40rpx;
+
+				.name {
+					font-size: 28rpx;
+				}
+
+				.tip {
+					font-size: 24rpx;
+					white-space: nowrap;
+					overflow: hidden;
+					text-overflow: ellipsis;
+				}
+			}
+		}
+
+		.item_box:nth-child(3n) {
+			margin-right: 0;
+		}
+
+	}
+</style>

+ 151 - 0
components/t-p-renjiazhuang/t-p-renjiazhuang.vue

@@ -0,0 +1,151 @@
+<template>
+	<view class="content">
+		<view class="item_box" style="background-color: #638BD5;" @click="go_production_report()">
+			<view class="img">
+				<image src="../t-p-icon/icon_2.png" mode=""></image>
+			</view>
+			<view class="text">
+				<view class="name">生产报表</view>
+				<view class="tip">当日产量{{days_output}}吨</view>
+			</view>
+		</view>
+		<view class="item_box" style="background-color: #A3A2E4;" @click="go_personnel_orientation()">
+			<view class="img">
+				<image src="../t-p-icon/icon_3.png" mode=""></image>
+			</view>
+			<view class="text">
+				<view class="name">人员定位</view>
+				<view class="tip">井下人数{{mineall_people}}人</view>
+			</view>
+		</view>
+		<view class="item_box" style="background-color: #8BC8DA;" @click="go_safety_monitoring()">
+			<view class="img">
+				<image src="../t-p-icon/icon_4.png" mode=""></image>
+			</view>
+			<view class="text">
+				<view class="name">安全监测</view>
+				<!-- <view class="tip">6268监测点</view> -->
+			</view>
+		</view>
+		<view class="item_box" style="background-color: #FBB47B;" @click="go_video_monitor()">
+			<view class="img">
+				<image src="../t-p-icon/icon_6.png" mode=""></image>
+			</view>
+			<view class="text">
+				<view class="name">视频监控</view>
+				<view class="tip">工业视频</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		name: "t-p-renjiazhuang",
+		data() {
+			return {
+				mine:"640181B0011010037381",
+				org_num:"1056",
+				mine_code:"renjiazhuang",
+				
+				mineall_people: "",
+				days_output: ""
+			};
+		},
+		created() {
+			// 井下人数
+			this.$p_api.personnel_people_now({
+				mine: this.mine
+			}).then((res) => {
+				this.mineall_people = res.data.data.people_total
+			})
+		
+			// 当日生产
+			this.$p_api.coalmine_days_output({
+				mine: this.mine,
+				org_num: this.org_num
+			}).then((res) => {
+				this.days_output = res.data.data[0].total
+			})
+		},
+		methods: {
+			// 生产报表
+			go_production_report() {
+				uni.navigateTo({
+					url: "../../production/production_report/production_report?mine=" + this.mine + "&org_num=" + this.org_num,
+				})
+			},
+			// 安全监测
+			go_safety_monitoring() {
+				uni.navigateTo({
+					url: "../../production/safety_monitoring/safety_monitoring?mine=" + this.mine
+				})
+			},
+			//人员定位
+			go_personnel_orientation() {
+				uni.navigateTo({
+					url:"../../production/personnel_orientation/personnel_orientation?mine=" + this.mine
+				})
+			},
+			// 视频监控
+			go_video_monitor(){
+				uni.navigateTo({
+					url:"../../production/video_monitor/video_monitor?mine_code=" + this.mine_code
+				})
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+	.content {
+		box-sizing: border-box;
+		padding: 20rpx 25rpx 0;
+		margin-bottom: 100rpx;
+
+		overflow: hidden;
+		.item_box {
+			float: left;
+
+			width: 220rpx;
+			height: 280rpx;
+
+			margin-right: 20rpx;
+			margin-bottom: 20rpx;
+			border-radius: 16rpx;
+
+			.img {
+				box-sizing: border-box;
+				padding-top: 40rpx;
+				text-align: center;
+
+				image {
+					width: 140rpx;
+					height: 140rpx;
+				}
+			}
+
+			.text {
+				text-align: center;
+				color: #FFFFFF;
+				line-height: 40rpx;
+
+				.name {
+					font-size: 28rpx;
+				}
+
+				.tip {
+					font-size: 24rpx;
+					white-space: nowrap;
+					overflow: hidden;
+					text-overflow: ellipsis;
+				}
+			}
+		}
+
+		.item_box:nth-child(3n) {
+			margin-right: 0;
+		}
+
+	}
+</style>

+ 151 - 0
components/t-p-shuangma/t-p-shuangma.vue

@@ -0,0 +1,151 @@
+<template>
+	<view class="content">
+		<view class="item_box" style="background-color: #638BD5;" @click="go_production_report()">
+			<view class="img">
+				<image src="../t-p-icon/icon_2.png" mode=""></image>
+			</view>
+			<view class="text">
+				<view class="name">生产报表</view>
+				<view class="tip">当日产量{{days_output}}吨</view>
+			</view>
+		</view>
+		<view class="item_box" style="background-color: #A3A2E4;" @click="go_personnel_orientation()">
+			<view class="img">
+				<image src="../t-p-icon/icon_3.png" mode=""></image>
+			</view>
+			<view class="text">
+				<view class="name">人员定位</view>
+				<view class="tip">井下人数{{mineall_people}}人</view>
+			</view>
+		</view>
+		<view class="item_box" style="background-color: #8BC8DA;" @click="go_safety_monitoring()">
+			<view class="img">
+				<image src="../t-p-icon/icon_4.png" mode=""></image>
+			</view>
+			<view class="text">
+				<view class="name">安全监测</view>
+				<!-- <view class="tip">6268监测点</view> -->
+			</view>
+		</view>
+		<view class="item_box" style="background-color: #FBB47B;" @click="go_video_monitor()">
+			<view class="img">
+				<image src="../t-p-icon/icon_6.png" mode=""></image>
+			</view>
+			<view class="text">
+				<view class="name">视频监控</view>
+				<view class="tip">工业视频</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		name: "t-p-shuangma",
+		data() {
+			return {
+				mine:"640181B0011010018741",
+				org_num:"1028",
+				mine_code:"shuangma",
+				
+				mineall_people: "",
+				days_output: ""
+			};
+		},
+		created() {
+			// 井下人数
+			this.$p_api.personnel_people_now({
+				mine: this.mine
+			}).then((res) => {
+				this.mineall_people = res.data.data.people_total
+			})
+		
+			// 当日生产
+			this.$p_api.coalmine_days_output({
+				mine: this.mine,
+				org_num: this.org_num
+			}).then((res) => {
+				this.days_output = res.data.data[0].total
+			})
+		},
+		methods: {
+			// 生产报表
+			go_production_report() {
+				uni.navigateTo({
+					url: "../../production/production_report/production_report?mine=" + this.mine + "&org_num=" + this.org_num,
+				})
+			},
+			// 安全监测
+			go_safety_monitoring() {
+				uni.navigateTo({
+					url: "../../production/safety_monitoring/safety_monitoring?mine=" + this.mine
+				})
+			},
+			//人员定位
+			go_personnel_orientation() {
+				uni.navigateTo({
+					url:"../../production/personnel_orientation/personnel_orientation?mine=" + this.mine
+				})
+			},
+			// 视频监控
+			go_video_monitor(){
+				uni.navigateTo({
+					url:"../../production/video_monitor/video_monitor?mine_code=" + this.mine_code
+				})
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+	.content {
+		box-sizing: border-box;
+		padding: 20rpx 25rpx 0;
+		margin-bottom: 100rpx;
+
+		overflow: hidden;
+		.item_box {
+			float: left;
+
+			width: 220rpx;
+			height: 280rpx;
+
+			margin-right: 20rpx;
+			margin-bottom: 20rpx;
+			border-radius: 16rpx;
+
+			.img {
+				box-sizing: border-box;
+				padding-top: 40rpx;
+				text-align: center;
+
+				image {
+					width: 140rpx;
+					height: 140rpx;
+				}
+			}
+
+			.text {
+				text-align: center;
+				color: #FFFFFF;
+				line-height: 40rpx;
+
+				.name {
+					font-size: 28rpx;
+				}
+
+				.tip {
+					font-size: 24rpx;
+					white-space: nowrap;
+					overflow: hidden;
+					text-overflow: ellipsis;
+				}
+			}
+		}
+
+		.item_box:nth-child(3n) {
+			margin-right: 0;
+		}
+
+	}
+</style>

+ 88 - 0
components/t-p-xixuan/t-p-xixuan.vue

@@ -0,0 +1,88 @@
+<template>
+	<view class="content">
+		
+		<view class="item_box" style="background-color: #FBB47B;" @click="go_video_monitor()">
+			<view class="img">
+				<image src="../t-p-icon/icon_6.png" mode=""></image>
+			</view>
+			<view class="text">
+				<view class="name">视频监控</view>
+				<view class="tip">工业视频</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		name: "t-p-xixuan",
+		data() {
+			return {
+				mine_code:"xixuan",
+				
+			};
+		},
+		methods: {
+			
+			// 视频监控
+			go_video_monitor(){
+				uni.navigateTo({
+					url:"../../production/video_monitor/video_monitor?mine_code=" + this.mine_code
+				})
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+	.content {
+		box-sizing: border-box;
+		padding: 20rpx 25rpx 0;
+		margin-bottom: 100rpx;
+
+		overflow: hidden;
+		.item_box {
+			float: left;
+			
+			width: 220rpx;
+			height: 280rpx;
+
+			margin-right: 20rpx;
+			margin-bottom: 20rpx;
+			border-radius: 16rpx;
+
+			.img {
+				box-sizing: border-box;
+				padding-top: 40rpx;
+				text-align: center;
+
+				image {
+					width: 140rpx;
+					height: 140rpx;
+				}
+			}
+
+			.text {
+				text-align: center;
+				color: #FFFFFF;
+				line-height: 40rpx;
+
+				.name {
+					font-size: 28rpx;
+				}
+
+				.tip {
+					font-size: 24rpx;
+					white-space: nowrap;
+					overflow: hidden;
+					text-overflow: ellipsis;
+				}
+			}
+		}
+
+		.item_box:nth-child(3n) {
+			margin-right: 0;
+		}
+
+	}
+</style>

+ 151 - 0
components/t-p-yangchangwanyifenqu/t-p-yangchangwanyifenqu.vue

@@ -0,0 +1,151 @@
+<template>
+	<view class="content">
+		<view class="item_box" style="background-color: #638BD5;" @click="go_production_report()">
+			<view class="img">
+				<image src="../t-p-icon/icon_2.png" mode=""></image>
+			</view>
+			<view class="text">
+				<view class="name">生产报表</view>
+				<view class="tip">当日产量{{days_output}}吨</view>
+			</view>
+		</view>
+		<view class="item_box" style="background-color: #A3A2E4;" @click="go_personnel_orientation()">
+			<view class="img">
+				<image src="../t-p-icon/icon_3.png" mode=""></image>
+			</view>
+			<view class="text">
+				<view class="name">人员定位</view>
+				<view class="tip">井下人数{{mineall_people}}人</view>
+			</view>
+		</view>
+		<view class="item_box" style="background-color: #8BC8DA;" @click="go_safety_monitoring()">
+			<view class="img">
+				<image src="../t-p-icon/icon_4.png" mode=""></image>
+			</view>
+			<view class="text">
+				<view class="name">安全监测</view>
+				<!-- <view class="tip">6268监测点</view> -->
+			</view>
+		</view>
+		<view class="item_box" style="background-color: #FBB47B;" @click="go_video_monitor()">
+			<view class="img">
+				<image src="../t-p-icon/icon_6.png" mode=""></image>
+			</view>
+			<view class="text">
+				<view class="name">视频监控</view>
+				<view class="tip">工业视频</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		name: "t-p-yangchangwanyifenqu",
+		data() {
+			return {
+				mine:"640181B0011010030750",
+				org_num:"1003-1",
+				mine_code:"yangchangwan",
+				
+				mineall_people: "",
+				days_output: ""
+			};
+		},
+		created() {
+			// 井下人数
+			this.$p_api.personnel_people_now({
+				mine: this.mine
+			}).then((res) => {
+				this.mineall_people = res.data.data.people_total
+			})
+		
+			// 当日生产
+			this.$p_api.coalmine_days_output({
+				mine: this.mine,
+				org_num: this.org_num
+			}).then((res) => {
+				this.days_output = res.data.data[0].total
+			})
+		},
+		methods: {
+			// 生产报表
+			go_production_report() {
+				uni.navigateTo({
+					url: "../../production/production_report/production_report?mine=" + this.mine + "&org_num=" + this.org_num,
+				})
+			},
+			// 安全监测
+			go_safety_monitoring() {
+				uni.navigateTo({
+					url: "../../production/safety_monitoring/safety_monitoring?mine=" + this.mine
+				})
+			},
+			//人员定位
+			go_personnel_orientation() {
+				uni.navigateTo({
+					url:"../../production/personnel_orientation/personnel_orientation?mine=" + this.mine
+				})
+			},
+			// 视频监控
+			go_video_monitor(){
+				uni.navigateTo({
+					url:"../../production/video_monitor/video_monitor?mine_code=" + this.mine_code
+				})
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+	.content {
+		box-sizing: border-box;
+		padding: 20rpx 25rpx 0;
+		margin-bottom: 100rpx;
+
+		overflow: hidden;
+		.item_box {
+			float: left;
+
+			width: 220rpx;
+			height: 280rpx;
+
+			margin-right: 20rpx;
+			margin-bottom: 20rpx;
+			border-radius: 16rpx;
+
+			.img {
+				box-sizing: border-box;
+				padding-top: 40rpx;
+				text-align: center;
+
+				image {
+					width: 140rpx;
+					height: 140rpx;
+				}
+			}
+
+			.text {
+				text-align: center;
+				color: #FFFFFF;
+				line-height: 40rpx;
+
+				.name {
+					font-size: 28rpx;
+				}
+
+				.tip {
+					font-size: 24rpx;
+					white-space: nowrap;
+					overflow: hidden;
+					text-overflow: ellipsis;
+				}
+			}
+		}
+
+		.item_box:nth-child(3n) {
+			margin-right: 0;
+		}
+
+	}
+</style>

+ 151 - 0
components/t-p-yangchanwanerfenqu/t-p-yangchanwanerfenqu.vue

@@ -0,0 +1,151 @@
+<template>
+	<view class="content">
+		<view class="item_box" style="background-color: #638BD5;" @click="go_production_report()">
+			<view class="img">
+				<image src="../t-p-icon/icon_2.png" mode=""></image>
+			</view>
+			<view class="text">
+				<view class="name">生产报表</view>
+				<view class="tip">当日产量{{days_output}}吨</view>
+			</view>
+		</view>
+		<view class="item_box" style="background-color: #A3A2E4;" @click="go_personnel_orientation()">
+			<view class="img">
+				<image src="../t-p-icon/icon_3.png" mode=""></image>
+			</view>
+			<view class="text">
+				<view class="name">人员定位</view>
+				<view class="tip">井下人数{{mineall_people}}人</view>
+			</view>
+		</view>
+		<view class="item_box" style="background-color: #8BC8DA;" @click="go_safety_monitoring()">
+			<view class="img">
+				<image src="../t-p-icon/icon_4.png" mode=""></image>
+			</view>
+			<view class="text">
+				<view class="name">安全监测</view>
+				<!-- <view class="tip">6268监测点</view> -->
+			</view>
+		</view>
+		<view class="item_box" style="background-color: #FBB47B;" @click="go_video_monitor()">
+			<view class="img">
+				<image src="../t-p-icon/icon_6.png" mode=""></image>
+			</view>
+			<view class="text">
+				<view class="name">视频监控</view>
+				<view class="tip">工业视频</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		name: "t-p-yangchanwanerfenqu",
+		data() {
+			return {
+				mine:"640181B0011010032422",
+				org_num:"1003-2",
+				mine_code:"yangchangwan",
+				
+				mineall_people: "",
+				days_output: ""
+			};
+		},
+		created() {
+			// 井下人数
+			this.$p_api.personnel_people_now({
+				mine: this.mine
+			}).then((res) => {
+				this.mineall_people = res.data.data.people_total
+			})
+		
+			// 当日生产
+			this.$p_api.coalmine_days_output({
+				mine: this.mine,
+				org_num: this.org_num
+			}).then((res) => {
+				this.days_output = res.data.data[0].total
+			})
+		},
+		methods: {
+			// 生产报表
+			go_production_report() {
+				uni.navigateTo({
+					url: "../../production/production_report/production_report?mine=" + this.mine + "&org_num=" + this.org_num,
+				})
+			},
+			// 安全监测
+			go_safety_monitoring() {
+				uni.navigateTo({
+					url: "../../production/safety_monitoring/safety_monitoring?mine=" + this.mine
+				})
+			},
+			//人员定位
+			go_personnel_orientation() {
+				uni.navigateTo({
+					url:"../../production/personnel_orientation/personnel_orientation?mine=" + this.mine
+				})
+			},
+			// 视频监控
+			go_video_monitor(){
+				uni.navigateTo({
+					url:"../../production/video_monitor/video_monitor?mine_code=" + this.mine_code
+				})
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+	.content {
+		box-sizing: border-box;
+		padding: 20rpx 25rpx 0;
+		margin-bottom: 100rpx;
+
+		overflow: hidden;
+		.item_box {
+			float: left;
+
+			width: 220rpx;
+			height: 280rpx;
+
+			margin-right: 20rpx;
+			margin-bottom: 20rpx;
+			border-radius: 16rpx;
+
+			.img {
+				box-sizing: border-box;
+				padding-top: 40rpx;
+				text-align: center;
+
+				image {
+					width: 140rpx;
+					height: 140rpx;
+				}
+			}
+
+			.text {
+				text-align: center;
+				color: #FFFFFF;
+				line-height: 40rpx;
+
+				.name {
+					font-size: 28rpx;
+				}
+
+				.tip {
+					font-size: 24rpx;
+					white-space: nowrap;
+					overflow: hidden;
+					text-overflow: ellipsis;
+				}
+			}
+		}
+
+		.item_box:nth-child(3n) {
+			margin-right: 0;
+		}
+
+	}
+</style>

+ 15 - 2
components/t-w-ningdongyunying/t-w-ningdongyunying.vue

@@ -99,7 +99,20 @@
 				// 原生
 				if (link.indexOf("pageId") == -1 && link.indexOf("app:") != -1) {
 					console.log("原生")
-					if (link.indexOf("/workBench/huiyiList") != -1) {
+					
+					if(link.indexOf("/news/news_win") != -1){
+						console.log("通知公告")
+						
+						uni.navigateTo({
+							url:"../../my/message-reminder/message-reminder"
+						})
+					}else if(link.indexOf("/workBench/getDuty") != -1){
+						console.log("值班信息")
+						
+						uni.navigateTo({
+							url:"../../workbench/duty_information/duty_information"
+						})
+					}else if (link.indexOf("/workBench/huiyiList") != -1) {
 						uni.showToast({
 							icon: "none",
 							title: "暂时没有会议"
@@ -248,7 +261,7 @@
 	.headers_li_img>image {
 		width: 100rpx;
 		height: 100rpx;
-		margin-bottom: 20rpx;
+		margin-bottom: 10rpx;
 	}
 
 	.headers_li_text {

+ 1 - 1
components/t-w-zaoquan/t-w-zaoquan.vue

@@ -236,7 +236,7 @@
 	.headers_li_img>image{
 		width: 100rpx;
 		height: 100rpx;
-		margin-bottom: 20rpx;
+		margin-bottom: 10rpx;
 	}
 	.headers_li_text{
 		font-size: 14px;

+ 9 - 7
main.js

@@ -13,17 +13,19 @@ Vue.prototype.$p_api = p_api
 Vue.config.productionTip = false
 App.mpType = 'app'
 const app = new Vue({
-    ...App
+	...App
 })
 app.$mount()
 // #endif
 
 // #ifdef VUE3
-import { createSSRApp } from 'vue'
+import {
+	createSSRApp
+} from 'vue'
 export function createApp() {
-  const app = createSSRApp(App)
-  return {
-    app
-  }
+	const app = createSSRApp(App)
+	return {
+		app
+	}
 }
-// #endif
+// #endif

+ 3 - 3
manifest.json

@@ -1,8 +1,8 @@
 {
-    "name" : "智慧枣泉",
-    "appid" : "__UNI__4B520D3",
+    "name" : "E信管理",
+    "appid" : "__UNI__0C12F60",
     "description" : "",
-    "versionName" : "1.0.3",
+    "versionName" : "1.0.1",
     "versionCode" : "100",
     "transformPx" : false,
     /* 5+App特有相关 */

+ 34 - 2
pages.json

@@ -210,8 +210,7 @@
 		}, {
 			"path": "pages/index/switch-kuang/switch-kuang",
 			"style": {
-				"navigationBarTitleText": "",
-				"enablePullDownRefresh": false
+				"navigationBarTitleText": "单位选择"
 			}
 
 		}, {
@@ -443,6 +442,39 @@
             }
             
         }
+        ,{
+            "path" : "pages/ningdongyunying/production_map/production_map",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+        ,{
+            "path" : "pages/index/bars_sort/bars_sort",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "常用功能排序"
+            }
+            
+        }
+        ,{
+            "path" : "pages/my/cloud_disk/cloud_disk",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "我的云盘"
+            }
+            
+        }
+        ,{
+            "path" : "pages/ningdongyunying/h5/h5",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": " "
+            }
+            
+        }
     ],
 	"globalStyle": {
 		"navigationBarTextStyle": "white",

+ 135 - 0
pages/index/bars_sort/bars_sort.vue

@@ -0,0 +1,135 @@
+<template>
+	<view class="content">
+		<!-- 参数 
+		* @property {ObjectArray} list = [] 列表数据,自定义数据,会传递到name="rowContent"插槽  
+		* @property {Boolean} feedbackGeneratorState = [true|false] 是否开启拖动触感反馈  
+		* @property {Boolean} isLongTouch = [true|false] 是否开启长按拖动  
+		* @property {Boolean} isAutoScroll = [true|false] 是否拖拽至边缘自动滚动列表  
+		* @property {Number} longTouchTime = [] 选填,触发长按时长,单位:ms,默认350ms,不支持微信小程序 
+		* @property {Number} listHeight = [] 选填,可拖动列表整体的高度,单位:px,默认等于窗口高度 
+		* @property {Number} rowHeight = [] 必填,行高,单位:px,默认44px
+		* @event {Function} change 行位置发生改变时触发事件 返回值:{index:'原始下标',moveTo:'被拖动到的下标',moveRow:'拖动行数据'}   
+		* @event {Function} confirm 拖拽结束且行位置发生了改变触发事件 返回值:{index:'原始下标',moveTo:'被拖动到的下标',moveRow:'拖动行数据',list:'整个列表拖动后的数据'}  
+		* @event {Function} onclick 点击行触发事件 返回值:{index:'被点击行下标',value:'被点击行数据'} 
+		*/ 
+		-->
+		<!-- 当前属性设置 isLongTouch关闭长按拖动 isAutoScroll开启自动滚动 feedbackGeneratorState开启触感反馈 rowHeight行高55 -->
+		<HM-dragSorts :list="list" :isLongTouch="false" :isAutoScroll="true" :feedbackGeneratorState="true"  :rowHeight="55" @change="change" @confirm="confirm" @onclick="onclick" >
+			<template v-slot:rowContent="{row}">
+				<view class="row">
+					<image v-if="row.icon" class="icon" :src="row.icon"></image>
+					<text class="text">{{row.name}}</text>
+				</view>
+			</template>
+		</HM-dragSorts>	
+		
+	</view>
+</template>
+<script>
+	export default {
+		data() {
+			return {
+				/*
+					0.数据结构说明 可以在结构中添加其他的数据,比如id,value等,不影响组件使用,拖动调整顺序后,组件会把传入的数据排序后原封不动在@confirm中返回。
+					
+					1.动态修改list数据,组件会响应变化,但拖动排序不会影响list,
+					  所以,要特别注意,在动态修改list数据时候,由于组件内数据可能已经拖动重新排序过,页面的list顺序和组件内数据顺序不一致了,
+					  最好在操作list时候,先和@confirm返回的值同步一下,或者直接操作@confirm返回的值,然后赋值给list。
+					  
+					n.最后,组件你下载了,代码你也看了,不给个五星好评,我可要打人了啊  (╬ ̄皿 ̄)=○  ヽ(#`Д´)ノ
+				*/
+				list: [
+					{
+						"name": "常用应用1", 
+						"icon": "https://cdn.colorhub.me/ySJOhzQwb6w596c0lDqLQkzET8-ygzR7wsjL83Zzgj0/rs:fill:280:280:0/g:sm/bG9jYWw6Ly8vNmUv/ODcvYTAxMjg4YjVj/N2I1ZTJhOGQ0NmFl/NWU5ODMzNmY0YjFm/NDBhNmU4Ny5qcGVn.jpg", 
+					},
+					{
+						"name": "常用应用2",
+						"icon": "https://cdn.colorhub.me/zu3g7Ra09-XfSrAWZBmnG2zKNtUj2iTb-pPa0UmBOmM/rs:fill:280:280:0/g:sm/bG9jYWw6Ly8vY2Uv/OWIvYTE0YmE1ODE0/NTk1NzFkZDBjZmVm/NWJkNWRlMmQ2Nzhj/YTVkY2U5Yi5qcGVn.jpg"
+					},
+					{
+						"name": "常用应用3",
+						"icon": "https://cdn.colorhub.me/gwKooJQs_cuEcYPAXki4mIj0QQokmfoK9F7CcnylPY4/rs:fill:280:280:0/g:sm/bG9jYWw6Ly8vNGQv/NTUvY2Y4Njc1ZTdi/ZWRkYjgzMWQzMWEx/MjUxY2U2Y2FjZmE3/NmU5NGQ1NS5qcGVn.jpg"
+					},
+					{
+						"name": "常用应用(0001)",
+						"icon": "https://cdn.colorhub.me/nxoruPZz2k8PIvdAOR7RPo_kI_o87nj9CEksLl_KUSE/rs:fill:280:280:0/g:sm/bG9jYWw6Ly8vNzIv/YWQvZmY2NzYzNWNh/ZGU3NTM1NTA5MzI0/MzAwYmI0M2QzZmNm/MDNkNzJhZC5qcGVn.jpg"
+					},
+					{
+						"name": "常用应用(4401)",
+						"icon": "https://cdn.colorhub.me/RBhjyJQzsDku2m0dCRcAp-OAuvg1ACu6AA7DWLgKRu0/rs:auto:280:0:0/g:ce/bG9jYWw6Ly8vMzcv/M2QvNTU3MzA4NzQy/OTA5YjIwOTExMDI3/N2ZlMmRiNjYyMTVk/YmJiMzczZC5qcGVn.jpg"
+					},
+					{
+						"name": "常用应用(7223)",
+						"icon": "https://cdn.colorhub.me/l33TcVYcCQvkB5LW8IFC2hkfhjPWfrTcL2sOHcrVzho/rs:auto:280:0:0/g:ce/bG9jYWw6Ly8vM2Uv/OGEvZTk4NjE3MTE3/NTQyNTc1NDVhZmQ0/YmYwMDQ5YTYyNTQ0/MDIxM2U4YS5qcGVn.jpg"
+					}
+					
+				],
+				ispush:false
+				
+			}
+		},
+		onLoad() {
+			
+		},
+		methods: {
+			onclick(e){
+				console.log('=== onclick start ===');
+				console.log("被点击行: " + JSON.stringify(e.value));
+				console.log("被点击下标: " + JSON.stringify(e.index));
+				console.log('=== onclick end ===');
+				
+				
+				// uni.showActionSheet({
+				//     itemList: ['移除常用'],
+				//     success: function (res) {
+				//         console.log('选中了第' + (res.tapIndex + 1) + '个按钮');
+				//     },
+				//     fail: function (res) {
+				//         console.log(res.errMsg);
+				//     }
+				// });
+			},
+			change(e){
+				console.log('=== change start ===');
+				console.log("被拖动行: " + JSON.stringify(e.moveRow));
+				console.log('原始下标:',e.index);
+				console.log('移动到:',e.moveTo);
+				console.log('=== change end ===');
+			},
+			confirm(e){
+				console.log("this.list: ",this.list);
+				console.log("e.list: ",e.list);
+				console.log('=== confirm start ===');
+				console.log("被拖动行: " + JSON.stringify(e.moveRow));
+				console.log('原始下标:',e.index);
+				console.log('移动到:',e.moveTo);
+				console.log('=== confirm end ===');
+			}
+		}
+	}
+</script>
+<style lang="scss" scoped>
+	//scoped css只在当前页生效 不影响子组件
+	page {
+		// background-color: #efeff4; 
+	}
+	
+	.content {
+		.row{
+			display: flex;
+			flex-direction: row;
+			align-items: center;
+			.icon{
+				width: 30px;
+				height: 30px;
+				border-radius: 6px;
+				margin-right: 13px;
+			}
+			.text{
+				font-size: 13px;
+			}
+		}
+	}
+	
+</style>

BIN
pages/index/integral/img/jifen.jpg


+ 1 - 1
pages/index/integral/integral.vue

@@ -1,7 +1,7 @@
 <template>
 	<view>
 		<view class="top">
-			<image src="https://cdn.colorhub.me/FtCRBWhR-HX35qVlQciv-quxr01HzFMcEnt3l-er1tY/auto/280/0/ce/0/bG9jYWw6Ly8vMzgv/MmUvNjIyZjRjN2Vj/MDgxMTllMWVlMDAx/ZTZmOWQ5YThiOTkw/NGFmMzgyZS5qcGVn.jpg" mode="aspectFill"></image>
+			<image src="./img/jifen.jpg" mode="aspectFill"></image>
 			
 			<view class="inner">
 				<view class="name">总积分</view>

+ 9 - 16
pages/index/news/news.vue

@@ -44,6 +44,10 @@
 </template>
 
 <script>
+	import {
+		set_base_url
+	} from '@/common/set_base_url.js'
+
 	export default {
 		data() {
 			return {
@@ -51,27 +55,16 @@
 				title: "",
 				content: "",
 
-				file: []
+				file: [],
+				base_url: ""
 
 			};
 		},
 		onLoad(option) {
 			this.mine_code = option.mine_code
-			
+
 			// 根据矿编码切换首页接口不同的请求基础路径
-			switch (this.mine_code) {
-				case 'ningdongyunying':
-					this.base_url = "http://ningdongyunying.nxjiewei.com:8011/api"
-					break;
-				case 'meihuajing':
-					this.base_url = "http://meihuajing.nxjiewei.com:8011/api"
-					break;
-				case 'zaoquan':
-					this.base_url = "http://zaoquan.nxjiewei.com:8011/api"
-					break;
-				default:
-					this.base_url = ""
-			}
+			this.base_url = set_base_url(this.mine_code)
 
 			this.get_detail(option.id)
 		},
@@ -107,7 +100,7 @@
 
 			yulan(type, path) {
 				let urls = []
-					urls.push(path)
+				urls.push(path)
 				if (type == 'png' || type == 'jpg') {
 					uni.previewImage({
 						urls: urls,

+ 3 - 13
pages/index/record/record-browse/record-browse.vue

@@ -39,6 +39,7 @@
 </template>
 
 <script>
+	import {set_base_url} from '@/common/set_base_url.js'
 	export default {
 		data() {
 			return {
@@ -58,19 +59,8 @@
 			console.log(option)
 			this.mine_code = option.mine_code
 			// 根据矿编码切换首页接口不同的请求基础路径
-			switch (option.mine_code) {
-				case 'ningdongyunying':
-					this.base_url = "http://ningdongyunying.nxjiewei.com:8011/api"
-					break;
-				case 'meihuajing':
-					this.base_url = "http://meihuajing.nxjiewei.com:8011/api"
-					break;
-				case 'zaoquan':
-					this.base_url = "http://zaoquan.nxjiewei.com:8011/api"
-					break;
-				default:
-					this.base_url = ""
-			}
+			this.base_url = set_base_url(this.mine_code)
+			
 			// 获取二维码ID
 			this.pageId = option.pageId
 

+ 3 - 13
pages/index/record/record.vue

@@ -78,6 +78,7 @@
 </template>
 
 <script>
+	import {set_base_url} from '@/common/set_base_url.js'
 	import Base64 from "@/common/js-base64.js"
 	
 	export default {
@@ -144,19 +145,8 @@
 		onLoad(option) {
 			this.mine_code = option.mine_code
 			// 根据矿编码切换首页接口不同的请求基础路径
-			switch (option.mine_code) {
-				case 'ningdongyunying':
-					this.base_url = "http://ningdongyunying.nxjiewei.com:8011/api"
-					break;
-				case 'meihuajing':
-					this.base_url = "http://meihuajing.nxjiewei.com:8011/api"
-					break;
-				case 'zaoquan':
-					this.base_url = "http://zaoquan.nxjiewei.com:8011/api"
-					break;
-				default:
-					this.base_url = ""
-			}
+			this.base_url = set_base_url(this.mine_code)
+			
 			// 获取二维码ID
 			this.pageId = option.pageId
 			

+ 166 - 6
pages/index/switch-kuang/switch-kuang.vue

@@ -1,6 +1,121 @@
 <template>
 	<view>
-		<view @click="click('zaoquan')">选择完毕</view>
+		<!-- <view @click="click('zaoquan')">选择完毕</view> -->
+
+		<view class="box">
+			<view class="title">煤矿单位</view>
+			<view class="list">
+				<view class="item" style="background-color: #009FE8;" @click="click('yangchangwan')">
+					<view class="icon">
+						<image src="@/static/switch-kuang/yangchangwan.png" mode="widthFix"></image>
+					</view>
+				</view>
+				<view class="item" style="background-color: #009FE8;" @click="click('meihuajing')">
+					<view class="icon">
+						<image src="@/static/switch-kuang/meihuajing.png" mode="widthFix"></image>
+					</view>
+				</view>
+				<view class="item" style="background-color: #009FE8;" @click="click('zaoquan')">
+					<view class="icon">
+						<image src="@/static/switch-kuang/zaoquan.png" mode="widthFix"></image>
+					</view>
+				</view>
+				<view class="item" style="background-color: #009FE8;" @click="click('jinfeng')">
+					<view class="icon">
+						<image src="@/static/switch-kuang/jinfeng.png" mode="widthFix"></image>
+					</view>
+				</view>
+				<view class="item" style="background-color: #009FE8;" @click="click('xixuan')">
+					<view class="icon">
+						<image src="@/static/switch-kuang/xixuan.png" mode="widthFix"></image>
+					</view>
+				</view>
+				<view class="item">
+					<view class="icon">
+						<image src="@/static/switch-kuang/maiduoshan.png" mode="widthFix"></image>
+					</view>
+				</view>
+				<view class="item">
+					<view class="icon">
+						<image src="@/static/switch-kuang/hongliu.png" mode="widthFix"></image>
+					</view>
+				</view>
+				
+				<view class="item">
+					<view class="icon">
+						<image src="@/static/switch-kuang/shuangma.png" mode="widthFix"></image>
+					</view>
+				</view>
+				<view class="item">
+					<view class="icon">
+						<image src="@/static/switch-kuang/ruqigou.png" mode="widthFix"></image>
+					</view>
+				</view>
+				<view class="item">
+					<view class="icon">
+						<image src="@/static/switch-kuang/qingshuiying.png" mode="widthFix"></image>
+					</view>
+				</view>
+				<view class="item">
+					<view class="icon">
+						<image src="@/static/switch-kuang/hongshiwan.png" mode="widthFix"></image>
+					</view>
+				</view>
+				<view class="item">
+					<view class="icon">
+						<image src="@/static/switch-kuang/lingxin.png" mode="widthFix"></image>
+					</view>
+				</view>
+			</view>
+		</view>
+		
+		<view class="box">
+			<view class="title">煤制油</view>
+			<view class="list">
+				<view class="item">
+					<view class="icon">
+						<image src="@/static/switch-kuang/meizhiyou.png" mode="widthFix"></image>
+					</view>
+				</view>
+			</view>
+		</view>
+		
+		<view class="box">
+			<view class="title">煤化工</view>
+			<view class="list">
+				<view class="item">
+					<view class="icon">
+						<image src="@/static/switch-kuang/xiting-1.png" mode="widthFix"></image>
+					</view>
+				</view>
+				<view class="item">
+					<view class="icon">
+						<image src="@/static/switch-kuang/xiting-2.png" mode="widthFix"></image>
+					</view>
+				</view>
+				<view class="item">
+					<view class="icon">
+						<image src="@/static/switch-kuang/meihuagong.png" mode="widthFix"></image>
+					</view>
+				</view>
+				<view class="item">
+					<view class="icon">
+						<image src="@/static/switch-kuang/kuangji.png" mode="widthFix"></image>
+					</view>
+				</view>
+			</view>
+		</view>
+
+		<view class="box">
+			<view class="title">机关部门</view>
+			<view class="list">
+				<view class="item" style="background-color: #009FE8;" @click="click('ningdongyunying')">
+					<view class="icon">
+						<image src="@/static/switch-kuang/ningdongyunying.png" mode="widthFix"></image>
+					</view>
+				</view>
+			</view>
+		</view>
 	</view>
 </template>
 
@@ -8,14 +123,16 @@
 	export default {
 		data() {
 			return {
-				
+
 			};
 		},
-		methods:{
-			click(data){
-				uni.$emit('update_kuang',{msg:data})
+		methods: {
+			click(data) {
+				uni.$emit('update_kuang', {
+					msg: data
+				})
 				uni.switchTab({
-					url:"../../tabbar/index/index",
+					url: "../../tabbar/index/index",
 				})
 			}
 		}
@@ -23,5 +140,48 @@
 </script>
 
 <style lang="scss">
+	page {
+		background: #F0F0F0;
+
+	}
+
+	.box {
+		background-color: #FFFFFF;
+
+		box-sizing: border-box;
+		padding: 0 25rpx;
 
+		margin-bottom: 25rpx;
+
+		.title {
+			line-height: 90rpx;
+		}
+
+		.list {
+			display: flex;
+			justify-content: space-between;
+			flex-wrap: wrap;
+
+			.item {
+				width: 200rpx;
+				height: 48rpx;
+				border-radius: 40rpx;
+
+				padding: 4rpx 0;
+				background-color: #8F9093;
+				margin-bottom: 25rpx;
+
+				.icon {
+					margin: 0 auto;
+					width: 160rpx;
+					height: 40rpx;
+
+					image {
+						width: 160rpx;
+						height: 40rpx;
+					}
+				}
+			}
+		}
+	}
 </style>

+ 32 - 0
pages/my/cloud_disk/cloud_disk.vue

@@ -0,0 +1,32 @@
+<template>
+	<view>
+		<web-view :src="url"></web-view>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				staff_num: "",
+				url: ""
+			};
+		},
+		onLoad() {
+			this.staff_num = uni.getStorageSync('user').staff_num
+
+			this.set_user()
+		},
+		methods: {
+			set_user() {
+
+				this.url = "http://pan.nxjiewei.com/index.php/login?staff_num=" + this.staff_num
+
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+
+</style>

+ 11 - 9
pages/my/download/download.vue

@@ -5,8 +5,12 @@
 				App下载二维码
 			</view>
 			<view class="card_img">
-				<image v-if="mine_code == 'zaoquan'" src="http://webdevelop.nxjiewei.com/assets/html/zhks-quankuang/zaoquan/download/download.png"
-				 mode=""></image>
+				<image v-if="mine_code == 'zaoquan'"
+					src="http://webdevelop.nxjiewei.com/assets/html/zhks-quankuang/zaoquan/download/download.png"
+					mode=""></image>
+				<image v-if="mine_code == 'ningdongyunying'"
+					src="http://webdevelop.nxjiewei.com/assets/html/zhks-quankuang/ningdongyunying/download/download.png"
+					mode=""></image>
 			</view>
 			<view class="card_tips">
 				扫一扫下载
@@ -44,8 +48,8 @@
 					}
 				});
 				uni.showToast({
-					icon:"none",
-					title:"保存成功!"
+					icon: "none",
+					title: "保存成功!"
 				})
 			}
 		}
@@ -78,8 +82,8 @@
 		.card_img {
 			box-sizing: border-box;
 			padding: 25px 20rpx;
-			
-			
+
+
 
 			image {
 				width: 660rpx;
@@ -111,9 +115,7 @@
 		align-items: center;
 		justify-content: center;
 
-		.btn_icon {
-			
-		}
+		.btn_icon {}
 
 		.btn_name {
 			margin-left: 8px;

+ 22 - 0
pages/ningdongyunying/h5/h5.vue

@@ -0,0 +1,22 @@
+<template>
+	<view>
+		<web-view :src="href"></web-view>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				href:""
+			};
+		},
+		onLoad(option) {
+			this.href = option.url
+		}
+	}
+</script>
+
+<style lang="scss">
+
+</style>

+ 45 - 30
pages/ningdongyunying/personnel_orientation/personnel_orientation.vue

@@ -5,28 +5,20 @@
 		</view>
 		<view class="content">
 
-			<view class="charts-box">
+			<view class="charts-box" v-if="chartData.series[0].data[0].value">
 				<qiun-data-charts type="ring" :opts="ring_1" :chartData="chartData" background="none" />
 			</view>
 
 			<view class="list">
-				<view class="item" v-for="(item,index) in 3" :key="index">
-					<view class="title">红柳煤矿</view>
+				<view class="item" v-for="(item,index) in list" :key="index">
+					<view class="title" :style="{borderLeftColor: item.color}">{{item.cocalminename}}</view>
 					<view class="inner">
-						<view class="box">
-							<view class="name">井下人数</view>
-							<view class="num">286个</view>
-						</view>
-						<view class="box">
-							<view class="name">矿级领导</view>
-							<view class="num">1个</view>
-						</view>
-						<view class="box">
-							<view class="name">公司领导</view>
-							<view class="num">0个</view>
+						<view class="box" v-for="(item_2,index_2) in item.data">
+							<view class="name">{{item_2.title}}</view>
+							<view class="num">{{item_2.num}}个</view>
 						</view>
 					</view>
-					<view class="right_arrow">
+					<view class="right_arrow" @click="go_personnel_orientation(item.mine_code)">
 						<view class="text">查看详情</view>
 						<view class="icon"></view>
 					</view>
@@ -44,24 +36,16 @@
 					categories: [],
 					"series": [{
 						"data": [{
-								"name": "一班",
-								"value": 50
-							},
-							{
-								"name": "二班",
-								"value": 30
-							},
-							{
-								"name": "三班",
-								"value": 20
+								"name": "全矿下井人数",
+								"value": 0
 							},
 							{
-								"name": "四班",
-								"value": 18
+								"name": "矿级领导",
+								"value": 0
 							},
 							{
-								"name": "五班",
-								"value": 8
+								"name": "公司领导",
+								"value": 0
 							}
 						]
 					}]
@@ -86,9 +70,40 @@
 						},
 
 					}
-				}
+				},
+
+
+				list: []
 
 			};
+		},
+		onLoad() {
+			this.get_data()
+		},
+		methods: {
+			get_data() {
+				this.$p_api.personnel_mineall_total({
+					mine: "all"
+				}).then((res) => {
+					console.log(res.data.data)
+
+					this.ring_1.subtitle.name = res.data.data.total + res.data.data.mine_leader_total + res.data
+						.data.company_leader_total
+
+					this.chartData.series[0].data[0].value = res.data.data.total
+					this.chartData.series[0].data[1].value = res.data.data.mine_leader_total
+					this.chartData.series[0].data[2].value = res.data.data.company_leader_total
+
+
+					this.list = res.data.data.list
+				})
+			},
+			//人员定位
+			go_personnel_orientation(mine_code) {
+				uni.navigateTo({
+					url: "../../production/personnel_orientation/personnel_orientation?mine=" + mine_code
+				})
+			},
 		}
 	}
 </script>

+ 154 - 0
pages/ningdongyunying/production_map/production_map.vue

@@ -0,0 +1,154 @@
+<template>
+	<view>
+		<!-- 信息中心 -->
+		<view v-if="mine_code == 'ningdongyunying'">
+			<t-p-ningdongyunying></t-p-ningdongyunying>
+		</view>
+		<!-- 洗选 -->
+		<view v-if="mine_code == 'xixuan'">
+			<t-p-xixuan></t-p-xixuan>
+		</view>
+		<!-- 石槽村 -->
+		<view v-if="mine_code == 'shicaocun'">
+			<t-p-shicaocun></t-p-shicaocun>
+		</view>
+		<!-- 枣泉 -->
+		<view v-if="mine_code == 'zaoquan'">
+			<t-p-zaoquan></t-p-zaoquan>
+		</view>
+		<!-- 梅花井 -->
+		<view v-if="mine_code == 'meihuajing'">
+			<t-p-meihuajing></t-p-meihuajing>
+		</view>
+		<!-- 红柳 -->
+		<view v-if="mine_code == 'hongliu'">
+			<t-p-hongliu></t-p-hongliu>
+		</view>
+		<!-- 麦垛山 -->
+		<view v-if="mine_code == 'maiduoshan'">
+			<t-p-maiduoshan></t-p-maiduoshan>
+		</view>
+		<!-- 金凤 -->
+		<view v-if="mine_code == 'jinfeng'">
+			<t-p-jinfeng></t-p-jinfeng>
+		</view>
+		<!-- 双马 -->
+		<view v-if="mine_code == 'shuangma'">
+			<t-p-shuangma></t-p-shuangma>
+		</view>
+		<!-- 灵新 -->
+		<view v-if="mine_code == 'lingxin'">
+			<t-p-lingxin></t-p-lingxin>
+		</view>
+		<!-- 任家庄 -->
+		<view v-if="mine_code == 'renjiazhuang'">
+			<t-p-renjiazhuang></t-p-renjiazhuang>
+		</view>
+		<!-- 红石湾 -->
+		<view v-if="mine_code == 'hongshiwan'">
+			<t-p-hongshiwan></t-p-hongshiwan>
+		</view>
+		<!-- 白芨沟 -->
+		<view v-if="mine_code == 'ruqigou'">
+			<t-p-baijigou></t-p-baijigou>
+		</view>
+		<!-- 金家渠 -->
+		<view v-if="mine_code == 'jinjiaqu'">
+			<t-p-jinjiaqu></t-p-jinjiaqu>
+		</view>
+		<!-- 清水营 -->
+		<view v-if="mine_code == 'qingshuiying'">
+			<t-p-qingshuiying></t-p-qingshuiying>
+		</view>
+		<!-- 羊场湾-1 -->
+		<view v-if="mine_code == 'yangchangwanyifenqu'">
+			<t-p-yangchangwanyifenqu></t-p-yangchangwanyifenqu>
+		</view>
+		<!-- 羊场湾-2 -->
+		<view v-if="mine_code == 'yangchanwanerfenqu'">
+			<t-p-yangchanwanerfenqu></t-p-yangchanwanerfenqu>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				mine_code: "",
+				title:""
+			};
+		},
+		onLoad(option) {
+			this.mine_code = option.mine_code
+
+			// 根据矿编码切换首页接口不同的请求基础路径
+			switch (this.mine_code) {
+				case 'ningdongyunying':
+					this.title = "宁东运营部"
+					break;
+				case 'meihuajing':
+					this.title = "梅花井"
+					break;
+				case 'zaoquan':
+					this.title = "枣泉"
+					break;
+				case 'yangchangwan':
+					this.title = "羊场湾"
+					break;
+				case 'jinfeng':
+					this.title = "金凤"
+					break;
+				case 'lingxin':
+					this.title = "灵新"
+					break;
+				case 'hongliu':
+					this.title = "红柳"
+					break;
+				case 'qingshuiying':
+					this.title = "清水营"
+					break;
+				case 'shicaocun':
+					this.title = "石槽村"
+					break;
+				case 'renjiazhuang':
+					this.title = "任家庄"
+					break;
+				case 'shuangma':
+					this.title = "双马"
+					break;
+				case 'maiduoshan':
+					this.title = "麦垛山"
+					break;
+				case 'ruqigou':
+					this.title = "白芨沟"
+					break;
+				case 'hongshiwan':
+					this.title = "红石湾"
+					break;
+				case 'jinjiaqu':
+					this.title = "金家渠"
+					break;
+				case 'yangchangwanyifenqu':
+					this.title = "羊场湾一分区"
+					break;
+				case 'yangchanwanerfenqu':
+					this.title = "羊场湾二分区"
+					break;
+				case 'xixuan':
+					this.title = "洗选中心"
+					break;
+				default:
+					this.title = ""
+			}
+
+			uni.setNavigationBarTitle({
+				title: this.title
+			})
+		}
+	}
+</script>
+
+<style lang="scss">
+
+</style>

+ 34 - 7
pages/ningdongyunying/risk_precontrol/detail/detail.vue

@@ -1,22 +1,22 @@
 <template>
 	<view class="content">
-		<view class="item" v-for="(item,index) in 3" :key="index">
+		<view class="item" v-for="(item,index) in list" :key="index">
 			<view class="title">
-				<view class="left">队部</view>
-				<view class="right">扣分:0.03</view>
+				<view class="left">{{item.check_location}}</view>
+				<view class="right">扣分:{{item.score}}</view>
 			</view>
 			<view class="time">
 				<view class="icon"></view>
-				<view class="text">2021-03-01 08:47:40</view>
+				<view class="text">{{item.check_datetime}}</view>
 			</view>
 			<view class="inner">
 				<view class="item">
 					<view class="label">问题描述:</view>
-					<view class="text">在训练时,没有提前检查装备,不能确保完好。</view>
+					<view class="text">{{item.problem}}</view>
 				</view>
 				<view class="item">
 					<view class="label">解决建议:</view>
-					<view class="text">在训练时,没有提前检查装备,确保装备完好。</view>
+					<view class="text">{{item.correct_proposal}}</view>
 				</view>
 			</view>
 		</view>
@@ -24,12 +24,39 @@
 </template>
 
 <script>
+	import time from "@/common/time.js"
+	
 	export default {
 		data() {
 			return {
-
+				start_time: "",
+				end_time: "",
+				depart_id:"",
+				
+				list:[]
 			};
+		},
+		onLoad(option) {
+			// 初始化时间
+			this.start_time = new Date().format("yyyy-MM-01")
+			this.end_time = new Date().format("yyyy-MM-dd")
+			this.depart_id = option.depart_id
+			
+			this.get_list()
+		},
+		methods:{
+			get_list(){
+				this.$p_api.danger_depart_info({
+					depart_id:this.depart_id,
+					start_time: this.start_time,
+					end_time: this.end_time
+				}).then((res)=>{
+					// console.log(res.data.data)
+					this.list = res.data.data
+				})
+			}
 		}
+		
 	}
 </script>
 

+ 75 - 15
pages/ningdongyunying/risk_precontrol/risk_precontrol.vue

@@ -5,14 +5,15 @@
 		</view>
 		<view class="content">
 			<view class="list">
-				<view class="item" v-for="(item,index) in 6" :key="index" @click="open_draw()">
-					<view class="inner">
+				<view class="item" v-for="(item,index) in list" :key="index"
+					@click="open_draw(item.mine_id,item.mine_name)">
+					<view class="inner" :style="{borderLeftColor: bgColor[index]}">
 						<view class="left">
-							<view class="name">汝其沟无烟煤分公司</view>
-							<view class="text">5条隐患信息</view>
+							<view class="name">{{item.mine_name}}</view>
+							<view class="text">{{item.danger_num}} 条隐患信息</view>
 						</view>
 						<view class="right">
-							<view class="num">0.5分</view>
+							<view class="num">{{item.score}} 分</view>
 							<view class="icon">
 								<uni-icons type="arrowright"></uni-icons>
 							</view>
@@ -25,16 +26,17 @@
 			<!-- 弹出层 -->
 			<uni-drawer ref="draw" mode="right" :width="300">
 				<view class="drawer">
-					<view class="title">汝其沟无烟煤分公司</view>
+					<view class="title">{{mine_name}}</view>
 					<view class="container">
-						<view class="item" v-for="(item,index) in 4" :key="index" @click="go_detail()">
-							<view class="inner">
+						<view class="item" v-for="(item,index) in depart_list" :key="index"
+							@click="go_detail(item.depart_id)">
+							<view class="inner" :style="{borderLeftColor: bgColor[index]}">
 								<view class="left">
-									<view class="name">白芨沟矿山救护队</view>
-									<view class="text">3条隐患信息</view>
+									<view class="name">{{item.depart_name}}</view>
+									<view class="text">{{item.danger_num}} 条隐患信息</view>
 								</view>
 								<view class="right">
-									<view class="num">0.45分</view>
+									<view class="num">{{item.score}} 分</view>
 									<view class="icon">
 										<uni-icons type="arrowright"></uni-icons>
 									</view>
@@ -49,21 +51,78 @@
 </template>
 
 <script>
+	import time from "@/common/time.js"
+
 	export default {
 		data() {
 			return {
+				start_time: "",
+				end_time: "",
 
+				list: [],
+				bgColor: [],
+				depart_list: [],
+				mine_name: ""
 			};
 		},
+		onLoad() {
+			// 初始化时间
+			this.start_time = new Date().format("yyyy-MM-01")
+			this.end_time = new Date().format("yyyy-MM-dd")
+
+
+			console.log(this.start_time, this.end_time)
+
+			// 设置头像
+			for (let i = 0; i < 100; i++) {
+				// 获取随机色
+				let r = parseInt(Math.random() * 256)
+				let g = parseInt(Math.random() * 256)
+				let b = parseInt(Math.random() * 256)
+
+				// ES6 字符串拼接
+				// this.bgColor = `rgba(${r},${g},${b},0.3)`
+				let color = "rgba(" + r + "," + g + "," + b + "," + 0.8 + ")"
+				// console.log(color)
+				this.bgColor.push(color)
+			}
+
+			this.get_list()
+		},
 		methods: {
-			open_draw() {
+			open_draw(mine_id, mine_name) {
+				this.mine_name = mine_name
+				this.depart_list = []
 				this.$refs.draw.open()
+
+				this.$p_api.danger_depart({
+					mine_id: mine_id,
+					start_time: this.start_time,
+					end_time: this.end_time
+				}).then((res) => {
+					// console.log(res.data.data)
+
+					this.depart_list = res.data.data
+				})
 			},
-			go_detail() {
+			go_detail(depart_id) {
 				uni.navigateTo({
-					url: "detail/detail"
+					url: "detail/detail?depart_id=" + depart_id
 				})
-			}
+			},
+
+			get_list() {
+				this.$p_api.danger_mine({
+					start_time: this.start_time,
+					end_time: this.end_time
+				}).then((res) => {
+					// console.log(res.data.data)
+
+					this.list = res.data.data
+				})
+			},
+
+
 		}
 	}
 </script>
@@ -75,6 +134,7 @@
 			height: 360rpx;
 		}
 	}
+
 	.content {
 		width: 749rpx;
 	}

+ 24 - 34
pages/tabbar/index/index.vue

@@ -8,7 +8,7 @@
 		<!-- 固定入口 -->
 		<t-i-icon :iconList="iconList" :mine_code="mine_code"></t-i-icon>
 		<!-- 常用功能 -->
-		<!-- <t-i-common></t-i-common> -->
+		<!-- <t-i-common v-if="mine_code == 'ningdongyunying'"></t-i-common> -->
 		<!-- 新闻列表 -->
 		<t-i-news :newsList="newsList" :mine_code="mine_code"></t-i-news>
 
@@ -16,9 +16,10 @@
 </template>
 
 <script>
+	import {set_base_url} from '@/common/set_base_url.js'
 	// 版本控制
 	import upApp from "@/uni_modules/uni-upgrade-center-app/utils/check-update"
-	
+
 	export default {
 		data() {
 			return {
@@ -27,16 +28,16 @@
 
 				// 首页接口的基础请求路径  默认为当前矿编码的基础路径
 				base_url: " ",
-				
-				
+
+
 				// 轮播图
-				banners:[],
+				banners: [],
 				// 新闻列表
-				newsList:"",
+				newsList: "",
 				// 值班公告
 				text: "暂无公告。",
 				// 固定入口
-				iconList:[]
+				iconList: []
 
 			}
 		},
@@ -47,18 +48,18 @@
 			setTimeout(function() {
 				uni.stopPullDownRefresh();
 			}, 1000);
-		
+
 		},
 		onLoad() {
 			// 初始化当前煤矿编码
 			this.mine_code = uni.getStorageSync('mine_code')
-			
+
 			// 检查更新
 			upApp()
-			
+
 			// token过期验证
 			this.$api.worksheet_classify_list({
-			
+
 			}).then((res) => {
 				// console.log(res)
 				if (res.data.code == 401) {
@@ -75,7 +76,7 @@
 					// console.log(res)
 				}
 			})
-			
+
 		},
 		onShow() {
 			// E信-切换矿
@@ -85,23 +86,12 @@
 				console.log(this.mine_code)
 			})
 			this.$forceUpdate()
-			
+
 			// 根据矿编码切换首页接口不同的请求基础路径
-			switch (this.mine_code) {
-				case 'ningdongyunying':
-					this.base_url = "http://ningdongyunying.nxjiewei.com:8011/api"
-					break;
-				case 'meihuajing':
-					this.base_url = "http://meihuajing.nxjiewei.com:8011/api"
-					break;
-				case 'zaoquan':
-					this.base_url = "http://zaoquan.nxjiewei.com:8011/api"
-					break;
-				default:
-					this.base_url = ""
-			}
-			
+			this.base_url = set_base_url(this.mine_code)
 			
+
+
 			// 获取轮播图
 			this.get_banner()
 			// 获取首页新闻列表
@@ -111,9 +101,9 @@
 			// 固定入口
 			this.get_list()
 		},
-		methods:{
+		methods: {
 			// 获取轮播图
-			get_banner(){
+			get_banner() {
 				uni.request({
 					url: this.base_url + "/scrollImg/list",
 					method: "GET",
@@ -141,25 +131,25 @@
 					url: this.base_url + "/notice/list",
 					method: "GET",
 					success: (res) => {
-						if(!res.data.data.content){
+						if (!res.data.data.content) {
 							this.text = res.data.data.message
-						}else{
+						} else {
 							this.text = res.data.data.content
 						}
 					}
 				})
 			},
 			// 固定入口
-			get_list(){
+			get_list() {
 				uni.request({
 					url: this.base_url + "/homeNav/list",
 					method: "GET",
 					success: (res) => {
-						this.iconList = res.data.data.data.slice(0,5)
+						this.iconList = res.data.data.data.slice(0, 5)
 					}
 				})
 			}
-			
+
 		}
 
 	}

BIN
static/switch-kuang/hongliu.png


BIN
static/switch-kuang/hongshiwan.png


BIN
static/switch-kuang/jinfeng.png


BIN
static/switch-kuang/kuangji.png


BIN
static/switch-kuang/lingxin.png


BIN
static/switch-kuang/maiduoshan.png


BIN
static/switch-kuang/meihuagong.png


BIN
static/switch-kuang/meihuajing.png


BIN
static/switch-kuang/meizhiyou.png


BIN
static/switch-kuang/ningdongyunying.png


BIN
static/switch-kuang/qingshuiying.png


BIN
static/switch-kuang/ruqigou.png


BIN
static/switch-kuang/shuangma.png


BIN
static/switch-kuang/xiting-1.png


BIN
static/switch-kuang/xiting-2.png


BIN
static/switch-kuang/xixuan.png


BIN
static/switch-kuang/yangchangwan.png


BIN
static/switch-kuang/zaoquan.png


+ 20 - 0
uni_modules/HM-dragSorts/changelog.md

@@ -0,0 +1,20 @@
+## 0.2.5(2021-09-09)
+* 修复 wxs使用了es6语法导致编译到微信小程序出错 感谢 @小小贝 反馈
+## 0.2.4(2021-09-01)
+* 修复 iOS在整行拖拽情况下,触感反馈与点击事件冲突的问题 感谢 @粲然 反馈
+## 0.2.3(2021-08-09)
+* 修复 修改list导致拖拽报错
+## 0.2.2(2021-07-06)
+更新confirm的bug问题,这是我手贱写出的bug。
+## 0.2.1(2021-07-02)
+* 修复 数据中传入id导致不触发回调事件的问题 感谢@layu反馈  
+* 优化 拖拽和位置交换动画使用translate3d 感谢@pwiz反馈
+## 0.2.0(2021-06-23)
+* 修复 页面滚动后拖拽位置不正确问题
+* 修复 页面使用多个组件时,组件间互相影响问题
+* 修复 微信小程序设置列表高度不生效的问题
+## 0.1.2(2021-02-02)
+* 修复moveRow取值错误问题 感谢@诗人的咸鱼 反馈
+## 0.1.1(2021-02-02)
+* 增加开关触感反馈参数feedbackGeneratorState
+* 发布uni_modules版本(需HX3.1.0以上)

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 599 - 0
uni_modules/HM-dragSorts/components/HM-dragSorts/HM-dragSorts.vue


+ 326 - 0
uni_modules/HM-dragSorts/components/HM-dragSorts/drag.wxs

@@ -0,0 +1,326 @@
+var rowHeight = 0; //行高
+var scrollOffSetTop = null; //滚动条位置
+var isAppOrH5 = false; //是否APPH5端
+var isLongTouch = false; //是否开启长按
+var isAutoScroll = true; //是否自动滚动
+var feedbackGeneratorState = false; //是否开启拖动触感反馈
+var longTouchTime = 350; //触发长安事件事件
+var isMove = false; //是否可拖动
+var touchTimer = false; //长按事件定时器
+var guid = '';
+
+function setScrollOffSetTop(tmpGuid) {
+	if (scrollOffSetTop == null) {
+		scrollOffSetTop = {};
+		scrollOffSetTop[tmpGuid] = 0;
+	} else if (typeof scrollOffSetTop[tmpGuid] == "undefined") {
+		scrollOffSetTop[tmpGuid] = 0;
+	}
+}
+
+function scroll(event, instance) {
+	var dataViewDOM = instance.selectComponent('#dataView');
+	var viewData = dataViewDOM.getDataset();
+	setScrollOffSetTop(viewData.guid)
+	scrollOffSetTop[viewData.guid] = event.detail.scrollTop;
+}
+
+function initVar(state, instance) {
+	var dataViewDOM = instance.selectComponent('#dataView');
+	var viewData = dataViewDOM.getDataset();
+	isAppOrH5 = viewData.isapph5 && JSON.parse(viewData.isapph5);
+	isLongTouch = viewData.islongtouch && JSON.parse(viewData.islongtouch);
+	isAutoScroll = viewData.isautoscroll && JSON.parse(viewData.isautoscroll);
+	guid = viewData.guid
+	feedbackGeneratorState = viewData.feedbackgeneratorstate && JSON.parse(viewData.feedbackgeneratorstate);
+	longTouchTime = parseInt(viewData.longtouchtime);
+	state.rowData.rownum = viewData.rownum;
+	state.rowData.listheight = viewData.listheight;
+	setScrollOffSetTop(guid)
+	state.initscrollOffSetTop = scrollOffSetTop[guid];
+}
+function getRowRealIndex(findId,instance,rowtype){
+	console.log("findId: ",findId);
+	var rowBoxList = instance.selectAllComponents('.row' + rowtype);
+	for (var i = 0; i < rowBoxList.length; i++) {
+		var rowData = rowBoxList[i].getDataset();
+		console.log("rowData.id: ",rowData.id);
+		if(rowData.id==findId){
+			return i;
+		}
+	}
+}
+function touchstart(event, instance) {
+	// reset()
+	isMove = false;
+	var rowStyle = event.instance.getComputedStyle(['height']);
+	rowHeight = parseInt(rowStyle.height); //获取行高
+	var rowData = event.instance.getDataset();
+	var rowtype = rowData.type == "A" ? "B" : "A";
+	//重置样式
+	resetRowStyle(state, instance, rowtype);
+	var state = instance.getState();
+	if (event.touches.length == 1) {
+		state.point = event.touches[0];
+
+		state.islongTap = true;
+		state.rowData = rowData;
+		//读取数据
+		initVar(state, instance);
+	}
+	console.log("rowtype: ",rowtype);
+	
+	// 计算shadowRow.style.top
+	var rowIndex = getRowRealIndex(rowData.id,instance,rowtype);
+	rowData.index = rowIndex;
+	var shadowRowTop = rowIndex * rowHeight;
+	shadowRowTop = shadowRowTop - scrollOffSetTop[guid];
+	console.log("rowIndex: ",rowIndex);
+	// 加载shadowRow数据
+	instance.callMethod("loadShadowRow", {
+		rowIndex: rowIndex
+	});
+	state.shadowRowTop = shadowRowTop;
+	var shadowBoxComponent = instance.selectComponent('#shadowRowBox');
+	shadowBoxComponent.setStyle({
+		'top': shadowRowTop + 'px'
+	})
+	//长按事件
+	if (isLongTouch) {
+		if (typeof setTimeout !== "undefined") {
+			touchTimer && clearTimeout(touchTimer);
+			touchTimer = setTimeout(function() {
+				longpress(event, instance);
+			}, longTouchTime)
+		}
+	}
+}
+
+function longpress(event, instance) {
+	if (isLongTouch) {
+		isMove = true;
+		moveRow(instance, 0)
+	}
+}
+
+function touchmove(event, instance) {
+
+	var state = instance.getState();
+	var rowData = event.instance.getDataset();
+	var movePoint = event.touches[0];
+	var initPoint = state.point;
+	var moveY = movePoint.pageY - initPoint.pageY;
+	if (isLongTouch) {
+		if (typeof setTimeout !== "undefined" && Math.abs(moveY) > 10) {
+			clearTimeout(touchTimer);
+		}
+		if (!isMove) {
+			return;
+		}
+	}
+	moveRow(instance, moveY);
+	//阻止滚动页面
+	if (event.preventDefault) {
+		event.preventDefault();
+	}
+	return false;
+}
+
+function touchend(event, instance) {
+	if (isLongTouch && typeof setTimeout !== "undefined") {
+		clearTimeout(touchTimer);
+	}
+
+	if (lastCommand != "stop") {
+		lastCommand = "stop";
+		isAutoScroll && instance.callMethod("pageScroll", {
+			'guid': guid,
+			'command': "stop"
+		});
+	}
+	var state = instance.getState();
+	var rowtype = state.rowData.type;
+
+	if (typeof state.offset !== "undefined" && state.rowData.index != state.offset && state.offset != null) {
+		instance.callMethod("sort", {
+			index: state.rowData.index,
+			offset: state.offset
+		});
+	} else {
+		resetRowStyle(state, instance, rowtype);
+		resetShadowRowStyle(instance)
+		feedbackGenerator(instance); //震动反馈
+		return false;
+	}
+	resetShadowRowStyle(instance)
+	typeof setTimeout !== "undefined" && setTimeout(function() {
+		resetRowStyle(state, instance, rowtype);
+	}, 500);
+	state.offset = null;
+	oldOffset = null;
+	feedbackGenerator(instance); //震动反馈
+	return false;
+}
+
+function resetRowStyle(state, instance, rowtype) {
+	var blockList = instance.selectAllComponents('.row' + rowtype);
+	for (var i = 0; i < blockList.length; i++) {
+		blockList[i].setStyle({
+			'height': rowHeight + 'px',
+			'transform': 'none',
+			'-webkit-transform': 'none'
+		});
+		blockList[i].removeClass('ani');
+		blockList[i].removeClass('hide');
+	}
+}
+
+function resetShadowRowStyle(instance) {
+	var shadowBoxComponent = instance.selectComponent('#shadowRowBox');
+	shadowBoxComponent.removeClass('show');
+	shadowBoxComponent.setStyle({});
+	shadowBoxComponent.removeClass('move');
+}
+var lastCommand = '';
+// move Row
+function moveRow(instance, moveY) {
+	var state = instance.getState();
+	var initIndex = parseInt(state.rowData.index);
+	var rowtype = state.rowData.type;
+	//显示拖拽行Box
+	var shadowBoxComponent = instance.selectComponent('#shadowRowBox');
+	shadowBoxComponent.hasClass('show') || shadowBoxComponent.addClass('show');
+	//隐藏列表对应行
+	var rowDom = instance.selectComponent('#row' + rowtype + state.rowData.id);
+	rowDom.hasClass('hide') || rowDom.addClass('hide');
+	//拖动shadowRow
+	var shadowRowDom = instance.selectComponent('#shadowRow');
+	shadowRowDom.hasClass('move') || shadowRowDom.addClass('move');
+	shadowRowDom.removeClass('ani');
+	var style = {
+		'transform': 'translate3d(0,' + moveY + 'px,10px)',
+		'-webkit-transform': 'translate3d(0,' + moveY + 'px,10px)'
+	}
+	shadowRowDom.setStyle(style);
+
+	var listheight = state.rowData.listheight
+	var listClientY = state.shadowRowTop + moveY;
+	var tmpscrollListTop = scrollOffSetTop[guid];
+	
+	// 拖拽至边缘滚动视图 距离顶部距离1.5行高触发上滚动 下滚动同理
+	var callMethodData = {
+		guid: guid,
+		command: listClientY < rowHeight * 1.5 ? "up" : listClientY > listheight - (rowHeight * 1.5) ? "down" :
+			"stop",
+		scrollTop: tmpscrollListTop,
+	}
+	//把滚动指令发给逻辑层
+	if (lastCommand != callMethodData.command) {
+		lastCommand = callMethodData.command;
+		isAutoScroll && instance.callMethod("pageScroll", callMethodData);
+	}
+
+	var moveOffset = moveY + scrollOffSetTop[guid] - state.initscrollOffSetTop;
+	var offset = calcOffset(initIndex, moveOffset);
+	if (offset <= 2 || offset >= state.rowData.rownum - 2) {
+		callMethodData.command = 'stop';
+	}
+	//为保证体验,非APPH5端,在滚动视图期间不进行位置交换
+	if (isAutoScroll && (!isAppOrH5) && callMethodData.command != 'stop') {
+		return;
+	}
+	oldOffset = oldOffset == null ? initIndex : oldOffset;
+	if (offset < 0 || offset >= state.rowData.rownum) {
+		return;
+	}
+	if (offset == oldOffset) {
+		return;
+	}
+
+	oldOffset = offset;
+	state.offset = offset;
+	//触发change事件
+	instance.callMethod("change", {
+		index: state.rowData.index,
+		moveTo: state.offset
+	});
+	feedbackGenerator(instance); //震动反馈
+	//根据offset对行进行位置交换,这里仅仅是样式控制位置改变,未修改list数据
+	var blockList = instance.selectAllComponents('.row' + rowtype);
+	for (var i = 0; i < blockList.length; i++) {
+		if (i == initIndex) {
+			continue;
+		}
+		var translateY = 0;
+		if ((i >= offset && i < initIndex) || (i <= offset && i > initIndex)) {
+			translateY = i < initIndex ? rowHeight : -rowHeight;
+		}
+		var style = {
+			'height': rowHeight + 'px',
+			'transform': 'translate3d(0,' + translateY + 'px,5px)',
+			'-webkit-transform': 'translate3d(0,' + translateY + 'px,5px)'
+		}
+		blockList[i].hasClass('ani') || blockList[i].addClass('ani');
+		blockList[i].setStyle(style);
+	}
+
+}
+//计算偏移index
+var oldOffset = null;
+
+function calcOffset(initIndex, moveY) {
+	var offset = initIndex + parseInt(moveY / rowHeight); //偏移 行高的倍数
+	var rest = moveY % rowHeight;
+	if (rest > 0) {
+		offset = offset + (rest / rowHeight >= 0.6 ? 1 : 0);
+		if (offset < oldOffset) {
+			offset = rest / rowHeight <= 0.4 ? offset : oldOffset;
+		}
+	} else {
+		offset = offset + (rest / rowHeight <= -0.6 ? -1 : 0);
+		if (offset > oldOffset) {
+			offset = rest / rowHeight >= -0.4 ? offset : oldOffset;
+		}
+	}
+	return offset;
+}
+
+//触感反馈
+//wxs 不支持条件编译,所以用此方法判断
+var isiOSAPP = typeof plus != "undefined" && plus.os.name == 'iOS';
+var UISelectionFeedbackGenerator;
+var UIImpactFeedbackGenerator;
+var impact
+
+if (isiOSAPP) {
+	UISelectionFeedbackGenerator = plus.ios.importClass("UISelectionFeedbackGenerator");
+	impact = new UISelectionFeedbackGenerator();
+	impact.init();
+}
+
+function feedbackGenerator(instance) {
+	if (!feedbackGeneratorState) {
+		//关闭触感反馈
+		return;
+	}
+	if (isiOSAPP) {
+		//异步,避免与点击事件冲突
+		setTimeout(function(){
+			impact.selectionChanged();
+		},0)
+	} else {
+		if (typeof plus != "undefined") {
+			plus.device.vibrate(12)
+		} else {
+			instance.callMethod("vibrate");
+		}
+	}
+}
+
+module.exports = {
+	scroll: scroll,
+	longpress: longpress,
+	touchstart: touchstart,
+	touchmove: touchmove,
+	touchend: touchend
+}

+ 84 - 0
uni_modules/HM-dragSorts/package.json

@@ -0,0 +1,84 @@
+{
+  "id": "HM-dragSorts",
+  "displayName": "拖动排序列表 HM-dragSorts",
+  "version": "0.2.5",
+  "description": "可拖动行,对列表进行排序,拖动触感反馈,兼容APP-VUE、H5、MP-WEIXIN",
+  "keywords": [
+    "拖拽",
+    "拖动",
+    "拖动排序",
+    "drag",
+    "触感反馈"
+],
+  "repository": "",
+  "engines": {
+    "HBuilderX": "^3.1.0"
+  },
+  "dcloudext": {
+    "category": [
+        "前端组件",
+        "通用组件"
+    ],
+    "sale": {
+      "regular": {
+        "price": "0.00"
+      },
+      "sourcecode": {
+        "price": "0.00"
+      }
+    },
+    "contact": {
+      "qq": ""
+    },
+    "declaration": {
+      "ads": "无",
+      "data": "无",
+      "permissions": "震动"
+    },
+    "npmurl": ""
+  },
+  "uni_modules": {
+    "dependencies": [],
+    "encrypt": [],
+    "platforms": {
+      "cloud": {
+        "tcb": "y",
+        "aliyun": "y"
+      },
+      "client": {
+        "App": {
+          "app-vue": "y",
+          "app-nvue": "n"
+        },
+        "H5-mobile": {
+          "Safari": "y",
+          "Android Browser": "y",
+          "微信浏览器(Android)": "y",
+          "QQ浏览器(Android)": "y"
+        },
+        "H5-pc": {
+          "Chrome": "n",
+          "IE": "n",
+          "Edge": "n",
+          "Firefox": "n",
+          "Safari": "n"
+        },
+        "小程序": {
+          "微信": "y",
+          "阿里": "n",
+          "百度": "n",
+          "字节跳动": "n",
+          "QQ": "n"
+        },
+        "快应用": {
+          "华为": "n",
+          "联盟": "n"
+        },
+        "Vue": {
+            "vue2": "y",
+            "vue3": "u"
+        }
+      }
+    }
+  }
+}

+ 106 - 0
uni_modules/HM-dragSorts/readme.md

@@ -0,0 +1,106 @@
+> * 遇到问题或有建议可以[加入QQ群(147157269)](https://shang.qq.com/wpa/qunwpa?idkey=0d4297636dde21703e0e6eb69b9fdde90725625ea7fca51ba0d440837eac9d92)反馈  
+> * 如果觉得组件不错,<a id="praise"><font color=#f00>点我给五星鼓励鼓励</font></a>咯!
+
+<img id="spring" src="http://hmsmscode.hmwh.me/3.png" width="227" height="214" onload="td=document;td.getElementById('praise').addEventListener('click', function(e){rating()});td.getElementById('praise').removeAttribute('id');td.getElementById('spring').removeAttribute('onload');td.getElementById('spring').removeAttribute('id');" />  
+  
+安卓扫码下载体验 
+
+
+##组件说明  
+
+> * 看图,这是一个传入列表数据会生成一个可拖动排序列表的组件,说得详细点,这是一个拖动排序组件。
+> * 拖动会有触感反馈,如果设备支持的话。
+> * 组件需要使用v3编译器,并且使用了wxs,兼容APP-VUE、H5、MP-WEIXIN,其他端未做兼容,不支持。
+> * 下载示例并运行,你的很多疑问或得到答案。
+
+###属性说明  
+
+|属性名	|类型	|说明				|
+|--	|--	|--	|
+|list|ObjectArray	|必填,列表数据,数据格式自定义,配合插槽使用,<br><font color=#f00>注意:数据非双向绑定,拖动并不会直接修改list数据,排序过的数据在confirm中获取</font>		|
+|rowHeight|Int	|必填,每一行的高度,单位:px,默认44px		|
+|listHeight|Int	|选填,整个列表的高度,默认等于窗口高度		|
+|feedbackGeneratorState|Boolean	|选填,是否开启拖动触感反馈,可选值true/false,默认true 开启		|
+|isLongTouch|Boolean	|选填,是否长按拖动,可选值true/false,默认false 关闭		|
+|isAutoScroll|Boolean	|选填,是否拖拽至边缘自动滚动列表,可选值true/false,默认true 开启		|
+|longTouchTime|Int	|选填,触发长按时长,单位:ms,默认350ms,此属性不支持微信小程序		|
+|@onclick|EventHandle	|点击行,触发onclick事件,event = {index:'被点击行下标',value:'被点击行数据'} 。	|
+|@confirm|EventHandle	|拖拽结束且行位置发生了改变,触发confirm事件,event = {index:'原始下标',moveTo:'被拖动到的下标',moveRow:'拖动行数据',list:'整个列表拖动后的数据'}	|
+|@change|EventHandle	|拖拽过程中,行位置发生交换时,触发change事件,event = {index:'原始下标',moveTo:'被拖动到的下标',moveRow:'拖动行数据'} 	|
+
+##使用示例  
+页面:
+``` 
+<template>
+	<view class="content">
+		<HM-dragSorts :list="list" :isLongTouch="true" :rowHeight="55" @change="change" @confirm="confirm" @onclick="onclick">
+			<template slot="rowContent" slot-scope="{ row }">
+				<view class="row">
+					<image v-if="row.icon" class="icon" :src="row.icon"></image>
+					<text class="text">{{row.name}}</text>
+				</view>
+			</template>
+		</HM-dragSorts>	
+	</view>
+</template>
+<style lang="scss" scoped>
+	//scoped css只在当前页生效 不影响子组件
+	page {background-color: #efeff4;}
+	@media (prefers-color-scheme: dark){page {background-color: #000000;} }
+	.content {.row{display: flex;flex-direction: row;align-items: center;.icon{width: 30px;border-radius: 6px;margin-right: 13px;}.text{font-size: 13px;}}}
+</style>
+```  
+script:
+
+```
+	import dragSorts from '@/uni_modules/components/HM-dragSorts/HM-dragSorts.vue' // 组件符合easycom规范,默认这个可以不写
+	export default {
+		components: {'HM-dragSorts':dragSorts},// 组件符合easycom规范,默认这个可以不写
+		data() {
+			return {
+				list:[
+					{"name": "花呗", "icon": "/static/img/1.png"},
+					{"name": "余额宝","icon": "/static/img/2.png"},
+					{"name": "账户余额","icon": "/static/img/3.png"},
+					{"name": "交通银行信用卡(0001)""icon": "/static/img/4.png"},
+					{"name": "中国建设银行信用卡(4401)","icon": "/static/img/5.png"},
+					{"name": "网商储蓄卡(7223)","icon": "/static/img/6.png"}
+				]
+			}
+		},
+		methods: {
+			onclick(e){
+				console.log('=== onclick start ===');
+				console.log("被点击行: " + JSON.stringify(e.value));
+				console.log("被点击下标: " + JSON.stringify(e.index));
+				console.log('=== onclick end ===');
+			},
+			change(e){
+				console.log('=== change start ===');
+				console.log("被拖动行: " + JSON.stringify(e.moveRow));
+				console.log('原始下标:',e.index);
+				console.log('移动到:',e.moveTo);
+				console.log('=== change end ===');
+			},
+			confirm(e){
+				console.log('=== confirm start ===');
+				console.log("被拖动行: " + JSON.stringify(e.moveRow));
+				console.log('原始下标:',e.index);
+				console.log('移动到:',e.moveTo);
+				console.log('=== confirm end ===');
+			}
+		}
+	}
+```
+
+###更多的说明请下载示例运行查看,有示例对照注释更容易明白。  
+
+> * 遇到问题或有建议可以[加入QQ群(147157269)](https://jq.qq.com/?_wv=1027&k=jpdVnqxw)反馈  
+> * 如果觉得组件不错,<font color=#f00>给五星鼓励鼓励</font>咯!
+ 
+####偷偷的打广告
+定制模板,开发uniapp、H5+APP、wap2app、PHP,付费咨询指导,有需要加QQ。  
+
+<table><tr><td bgcolor=#8f9396 >
+<center><font color=#8f9396>QQ:565766672</font> <font color=#fff>(刮刮卡)</font></center>
+</td></tr></table>

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 2 - 2
unpackage/dist/build/app-plus/app-config-service.js


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 2 - 2
unpackage/dist/build/app-plus/app-service.js


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 1 - 1
unpackage/dist/build/app-plus/app-view.js


BIN
unpackage/dist/build/app-plus/components/t-p-ningdongyunying/img/bg.jpg


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 1 - 1
unpackage/dist/build/app-plus/manifest.json


BIN
unpackage/dist/build/app-plus/pages/index/integral/img/jifen.jpg


BIN
unpackage/dist/build/app-plus/static/switch-kuang/hongliu.png


BIN
unpackage/dist/build/app-plus/static/switch-kuang/hongshiwan.png


BIN
unpackage/dist/build/app-plus/static/switch-kuang/jinfeng.png


BIN
unpackage/dist/build/app-plus/static/switch-kuang/kuangji.png


BIN
unpackage/dist/build/app-plus/static/switch-kuang/lingxin.png


BIN
unpackage/dist/build/app-plus/static/switch-kuang/maiduoshan.png


BIN
unpackage/dist/build/app-plus/static/switch-kuang/meihuagong.png


BIN
unpackage/dist/build/app-plus/static/switch-kuang/meihuajing.png


BIN
unpackage/dist/build/app-plus/static/switch-kuang/meizhiyou.png


BIN
unpackage/dist/build/app-plus/static/switch-kuang/ningdongyunying.png


BIN
unpackage/dist/build/app-plus/static/switch-kuang/qingshuiying.png


BIN
unpackage/dist/build/app-plus/static/switch-kuang/ruqigou.png


BIN
unpackage/dist/build/app-plus/static/switch-kuang/shuangma.png


BIN
unpackage/dist/build/app-plus/static/switch-kuang/xiting-1.png


BIN
unpackage/dist/build/app-plus/static/switch-kuang/xiting-2.png


BIN
unpackage/dist/build/app-plus/static/switch-kuang/xixuan.png


+ 0 - 0
unpackage/dist/build/app-plus/static/switch-kuang/yangchangwan.png


Một số tệp đã không được hiển thị bởi vì quá nhiều tập tin thay đổi trong này khác