Bladeren bron

优化文件结构-删除多余代码文件

tiandewen 3 jaren geleden
bovenliggende
commit
f44264c7f4
100 gewijzigde bestanden met toevoegingen van 1313 en 4924 verwijderingen
  1. BIN
      __MACOSX/components/._.DS_Store
  2. BIN
      __MACOSX/static/._.DS_Store
  3. BIN
      __MACOSX/static/vant-uni-nvue/._.DS_Store
  4. BIN
      __MACOSX/static/vant-uni-nvue/._loading.gif
  5. 10 0
      common/vmeitime-http/api.js
  6. 50 17
      components/e-link/e-link.vue
  7. 1 1
      components/e-picture/e-picture.vue
  8. 0 9
      components/ly-tree-nvue/components/icons.js
  9. 0 94
      components/ly-tree-nvue/components/ly-checkbox.vue
  10. 0 375
      components/ly-tree-nvue/ly-tree-node.vue
  11. 0 550
      components/ly-tree-nvue/ly-tree.vue
  12. 0 538
      components/ly-tree-nvue/model/node.js
  13. 0 419
      components/ly-tree-nvue/model/tree-store.js
  14. BIN
      components/ly-tree-nvue/nvue-demo.zip
  15. 0 114
      components/ly-tree-nvue/tool/util.js
  16. 0 200
      components/ly-tree/components/ly-checkbox.vue
  17. 0 424
      components/ly-tree/ly-tree-node.vue
  18. 0 605
      components/ly-tree/ly-tree.vue
  19. 0 538
      components/ly-tree/model/node.js
  20. 0 419
      components/ly-tree/model/tree-store.js
  21. 0 115
      components/ly-tree/tool/util.js
  22. BIN
      components/t-c-contacts/icon/ICE.png
  23. BIN
      components/t-c-contacts/icon/you.png
  24. 0 150
      components/t-c-contacts/t-c-contacts.vue
  25. 1 1
      components/t-i-common/t-i-common.vue
  26. 27 3
      components/t-i-navbar/t-i-navbar.vue
  27. 0 0
      components/t-o-zaoquan/icon/bangong.png
  28. 0 0
      components/t-o-zaoquan/icon/bumen.png
  29. 0 0
      components/t-o-zaoquan/icon/jiagou.png
  30. 0 0
      components/t-o-zaoquan/icon/qingjia.png
  31. 0 0
      components/t-o-zaoquan/icon/qita.png
  32. BIN
      components/t-o-zaoquan/icon/title_icon.png
  33. 0 0
      components/t-o-zaoquan/icon/yongyin.png
  34. 146 0
      components/t-o-zaoquan/t-o-zaoquan.vue
  35. 36 4
      components/t-p-zaoquan/t-p-zaoquan.vue
  36. 0 100
      components/t-w-application1/t-w-application1.vue
  37. BIN
      components/t-w-icon/banzu.png
  38. BIN
      components/t-w-icon/daiban.png
  39. BIN
      components/t-w-icon/tongzhi.png
  40. BIN
      components/t-w-icon/zhiban.png
  41. 28 3
      components/t-w-application/t-w-application.vue
  42. 3 1
      manifest.json
  43. 34 11
      pages.json
  44. 22 0
      pages/index/record/h5/h5.vue
  45. 1 1
      pages/ningdongyunying/personnel_orientation/personnel_orientation.vue
  46. 1 1
      pages/ningdongyunying/risk_precontrol/detail/detail.vue
  47. 2 2
      pages/ningdongyunying/risk_precontrol/risk_precontrol.vue
  48. BIN
      pages/origanization/t-c-c-contacts-info/icon/ICE.png
  49. BIN
      pages/origanization/t-c-c-contacts-info/icon/searc1.png
  50. 0 160
      pages/origanization/t-c-c-contacts-info/t-c-c-contacts-info.vue
  51. 0 0
      pages/origanization/zaoquan/origanization/icon/close.png
  52. 0 0
      pages/origanization/zaoquan/origanization/icon/open.png
  53. BIN
      pages/origanization/zaoquan/origanization/icon/title_icon.png
  54. 188 0
      pages/origanization/zaoquan/origanization/origanization.vue
  55. 1 0
      pages/production/personnel_orientation/depart-people-2/depart-people-2.vue
  56. BIN
      pages/production/zaoquan/mine_water_treatment/icon/icon_1.png
  57. BIN
      pages/production/zaoquan/mine_water_treatment/icon/icon_2.png
  58. BIN
      pages/production/zaoquan/mine_water_treatment/icon/well.png
  59. 206 0
      pages/production/zaoquan/mine_water_treatment/mine_water_treatment.vue
  60. BIN
      pages/production/zaoquan/power_monitoring/icon/flag.png
  61. BIN
      pages/production/zaoquan/power_monitoring/icon/top.png
  62. 300 0
      pages/production/zaoquan/power_monitoring/power_monitoring.vue
  63. 26 3
      pages/tabbar/origanization/origanization.vue
  64. 0 1
      pages/tabbar/production/production.vue
  65. 21 8
      pages/tabbar/workbench/workbench.vue
  66. BIN
      pages/workbench/invoice_assistant/icon/invoice.png
  67. 209 0
      pages/workbench/invoice_assistant/invoice_assistant.vue
  68. BIN
      static/img/banzu.png
  69. BIN
      static/img/daiban.png
  70. BIN
      static/img/tongzhi.png
  71. BIN
      static/img/zhiban.png
  72. BIN
      static/vant-uni-nvue/.DS_Store
  73. BIN
      static/vant-uni-nvue/2323.gif
  74. BIN
      static/vant-uni-nvue/Rolling-2s-200px.gif
  75. BIN
      static/vant-uni-nvue/Rolling-2s-60px.gif
  76. BIN
      static/vant-uni-nvue/loading.gif
  77. BIN
      static/vant-uni-nvue/logo.png
  78. 0 0
      unpackage/dist/build/.automator/app-plus/.automator.json
  79. 0 1
      unpackage/dist/build/app-plus/__uniappchooselocation.js
  80. BIN
      unpackage/dist/build/app-plus/__uniapperror.png
  81. 0 1
      unpackage/dist/build/app-plus/__uniappes6.js
  82. 0 1
      unpackage/dist/build/app-plus/__uniappopenlocation.js
  83. 0 1
      unpackage/dist/build/app-plus/__uniapppicker.js
  84. 0 8
      unpackage/dist/build/app-plus/__uniappquill.js
  85. 0 1
      unpackage/dist/build/app-plus/__uniappquillimageresize.js
  86. 0 1
      unpackage/dist/build/app-plus/__uniappscan.js
  87. BIN
      unpackage/dist/build/app-plus/__uniappsuccess.png
  88. 0 25
      unpackage/dist/build/app-plus/__uniappview.html
  89. 0 8
      unpackage/dist/build/app-plus/app-config-service.js
  90. 0 1
      unpackage/dist/build/app-plus/app-config.js
  91. 0 8
      unpackage/dist/build/app-plus/app-service.js
  92. 0 1
      unpackage/dist/build/app-plus/app-view.js
  93. BIN
      unpackage/dist/build/app-plus/components/n-safety-monitoring-tab/icon/Co1.png
  94. BIN
      unpackage/dist/build/app-plus/components/n-safety-monitoring-tab/icon/feng.png
  95. BIN
      unpackage/dist/build/app-plus/components/n-safety-monitoring-tab/icon/wasi.png
  96. BIN
      unpackage/dist/build/app-plus/components/p-personnel-orientation-navbar/icon/search.png
  97. BIN
      unpackage/dist/build/app-plus/components/p-production-report-inner-3/icon/icon.png
  98. BIN
      unpackage/dist/build/app-plus/components/p-safety-monitoring-navbar/icon/search.png
  99. BIN
      unpackage/dist/build/app-plus/components/t-c-contacts/icon/ICE.png
  100. 0 0
      unpackage/dist/build/app-plus/components/t-c-contacts/icon/bangong.png

BIN
__MACOSX/components/._.DS_Store


BIN
__MACOSX/static/._.DS_Store


BIN
__MACOSX/static/vant-uni-nvue/._.DS_Store


BIN
__MACOSX/static/vant-uni-nvue/._loading.gif


+ 10 - 0
common/vmeitime-http/api.js

@@ -325,3 +325,13 @@ export const section_getlisttree = (data) => {
     })
 }
 
+
+// 工作台
+// 发票助手
+export const workbench_invoice_info = (data) => {
+    return http.request({
+        url: '/workbench/invoice/info',
+        data,
+    })
+}
+

+ 50 - 17
components/e-link/e-link.vue

@@ -88,25 +88,58 @@
 			};
 		},
 		methods: {
-			go_page(link) {
-				console.log(link)
-				let pageId = ""
-				function GetQueryString(name) {
-					var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
-					var r = link.match(reg);
-					if (r != null) return unescape(r[2]);
-					return null;
+			// go_page(link) {
+			// 	console.log(link)
+			// 	let pageId = ""
+			// 	function GetQueryString(name) {
+			// 		var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
+			// 		var r = link.match(reg);
+			// 		if (r != null) return unescape(r[2]);
+			// 		return null;
+			// 	}
+			// 	console.log(GetQueryString("pageId"))
+			// 	if (GetQueryString("pageId")) {
+			// 		pageId = GetQueryString("pageId")
+			// 	} else {
+			// 		pageId = link.split('=')[1]
+			// 	}
+
+			// 	uni.navigateTo({
+			// 		url: "../../index/record/record?pageId=" + pageId + "&mine_code=" + this.mine_code,
+			// 	})
+			// }
+			
+			go_page(link){
+				// 二维码
+				if(link.indexOf("pageId") != -1 && link.indexOf("app:") == -1){
+					let pageId = ""
+					function GetQueryString(name) {
+						var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
+						var r = link.match(reg);
+						if (r != null) return unescape(r[2]);
+						return null;
+					}
+					console.log(GetQueryString("pageId"))
+					if (GetQueryString("pageId")) {
+						pageId = GetQueryString("pageId")
+					} else {
+						pageId = link.split('=')[1]
+					}
+					
+					uni.navigateTo({
+						url:"../../index/record/record?pageId=" + pageId + "&mine_code=" + this.mine_code,
+					})
 				}
-				console.log(GetQueryString("pageId"))
-				if (GetQueryString("pageId")) {
-					pageId = GetQueryString("pageId")
-				} else {
-					pageId = link.split('=')[1]
+				// h5
+				if(link.indexOf("pageId") == -1 && link.indexOf("app:") == -1){
+					uni.navigateTo({
+						url: "../../index/record/h5/h5?url=" + link
+					})
+				}
+				// 原生
+				if(link.indexOf("pageId") == -1 && link.indexOf("app:") != -1){
+					console.log("原生")
 				}
-
-				uni.navigateTo({
-					url: "../../index/record/record?pageId=" + pageId + "&mine_code=" + this.mine_code,
-				})
 			}
 		}
 	}

+ 1 - 1
components/e-picture/e-picture.vue

@@ -8,7 +8,7 @@
 					<swiper class="box" autoplay="true" interval="3000" circular="true">
 						<swiper-item class="item" v-for="item in pictureList" :key="item.id">
 							<view class="swiper-item">
-								<image :src="item.imageUrl" mode=""></image>
+								<image :src="item.imageUrl" mode="aspectFit"></image>
 							</view>
 						</swiper-item>
 					</swiper>

+ 0 - 9
components/ly-tree-nvue/components/icons.js

@@ -1,9 +0,0 @@
-export default {
-	'icon-unchecked': "\ue852",
-	'icon-radio-disabled': "\ue853",
-	'icon-radio-unchecked': "\ue854",
-	'icon-checked': "\ue855",
-	'icon-check-disabled': "\ue856",
-	'icon-indeterminate': "\ue85a",
-	'icon-radio-checked': "\ue86b"
-}

File diff suppressed because it is too large
+ 0 - 94
components/ly-tree-nvue/components/ly-checkbox.vue


File diff suppressed because it is too large
+ 0 - 375
components/ly-tree-nvue/ly-tree-node.vue


File diff suppressed because it is too large
+ 0 - 550
components/ly-tree-nvue/ly-tree.vue


+ 0 - 538
components/ly-tree-nvue/model/node.js

@@ -1,538 +0,0 @@
-import {
-	markNodeData,
-	objectAssign,
-	arrayFindIndex,
-	getChildState,
-	reInitChecked,
-	getPropertyFromData,
-	isNull,
-	NODE_KEY
-} from '../tool/util';
-
-const getStore = function(store) {
-	let thisStore = store;
-	
-	return function() {
-		return thisStore;
-	}
-}
-
-let nodeIdSeed = 0;
-
-export default class Node {
-	constructor(options) {
-		this.time = new Date().getTime();
-		this.id = nodeIdSeed++;
-		this.text = null;
-		this.checked = false;
-		this.indeterminate = false;
-		this.data = null;
-		this.expanded = false;
-		this.parentId = null;
-		this.visible = true;
-		this.isCurrent = false;
-
-		for (let name in options) {
-			if (options.hasOwnProperty(name)) {
-				if (name === 'store') {
-					this.store = getStore(options[name]);
-				} else {
-					this[name] = options[name];
-				}
-			}
-		}
-		
-		if (!this.store()) {
-			throw new Error('[Node]store is required!');
-		}
-
-		// internal
-		this.level = 0;
-		this.loaded = false;
-		this.childNodesId = [];
-		this.loading = false;
-		this.label = getPropertyFromData(this, 'label');
-		this.key = this._getKey();
-		this.disabled = getPropertyFromData(this, 'disabled');
-		this.nextSibling = null;
-		this.previousSibling = null;
-		this.icon = '';
-		
-		this._handleParentAndLevel();
-		this._handleProps();
-		this._handleExpand();
-		this._handleCurrent();
-		
-		if (this.store().lazy) {
-			this.store()._initDefaultCheckedNode(this);
-		}
-
-		this.updateLeafState();
-	}
-	
-	_getKey() {
-		if (!this.data || Array.isArray(this.data)) return null;
-		
-		if (typeof this.data === 'object') {
-			const nodeKey = this.store().key;
-			const key = this.data[nodeKey];
-			
-			if (typeof key === 'undefined') {
-				throw new Error(`您配置的node-key为"${nodeKey}",但数据中并未找到对应"${nodeKey}"属性的值,请检查node-key的配置是否合理`)
-			}
-			
-			return key;
-		}
-		
-		throw new Error('不合法的data数据');
-	}
-	
-	_handleParentAndLevel() {
-		if (this.parentId !== null) {
-			let parent = this.getParent(this.parentId);
-			
-			if (this.store().isInjectParentInNode) {
-				this.parent = parent;
-			}
-			
-			// 由于这里做了修改,默认第一个对象不会被注册到nodesMap中,所以找不到parent会报错,所以默认parent的level是0
-			if (!parent) {
-				parent = {
-					level: 0
-				}
-			} else {
-				const parentChildNodes = parent.getChildNodes(parent.childNodesId);
-				const index = parent.childNodesId.indexOf(this.key);
-				this.nextSibling = index > -1 ? parentChildNodes[index + 1] : null;
-				this.previousSibling = index > 0 ? parentChildNodes[index - 1] : null;
-			}
-			this.level = parent.level + 1;
-		}
-	}
-	
-	_handleProps() {
-		const props = this.store().props;
-		
-		if (this.store().showNodeIcon) {
-			if (props && typeof props.icon !== 'undefined') {
-				this.icon = getPropertyFromData(this, 'icon');
-			} else {
-				console.warn('请配置props属性中的"icon"字段')
-			}
-		}
-		
-		this.store().registerNode(this);
-		
-		if (props && typeof props.isLeaf !== 'undefined') {
-			const isLeaf = getPropertyFromData(this, 'isLeaf');
-			if (typeof isLeaf === 'boolean') {
-				this.isLeafByUser = isLeaf;
-			}
-		}
-	}
-	
-	_handleExpand() {
-		if (this.store().lazy !== true && this.data) {
-			this.setData(this.data);
-		
-			if (this.store().defaultExpandAll) {
-				this.expanded = true;
-			}
-		} else if (this.level > 0 && this.store().lazy && this.store().defaultExpandAll) {
-			this.expand();
-		}
-		
-		if (!Array.isArray(this.data)) {
-			markNodeData(this, this.data);
-		}
-		
-		if (!this.data) return;
-		
-		const defaultExpandedKeys = this.store().defaultExpandedKeys;
-		const key = this.store().key;
-		if (key && defaultExpandedKeys && defaultExpandedKeys.indexOf(this.key) !== -1) {
-			this.expand(null, this.store().autoExpandparent);
-		}
-	}
-	
-	_handleCurrent() {
-		const key = this.store().key;
-		
-		if (key && this.store().currentNodeKey !== undefined && this.key === this.store().currentNodeKey) {
-			this.store().currentNode = this;
-			this.store().currentNode.isCurrent = true;
-		}
-	}
-	
-	destroyStore() {
-		getStore(null)
-	}
-
-	setData(data) {
-		if (!Array.isArray(data)) {
-			markNodeData(this, data);
-		}
-
-		this.data = data;
-		this.childNodesId = [];
-
-		let children;
-		if (this.level === 0 && Array.isArray(this.data)) {
-			children = this.data;
-		} else {
-			children = getPropertyFromData(this, 'children') || [];
-		}
-
-		for (let i = 0, j = children.length; i < j; i++) {
-			this.insertChild({
-				data: children[i]
-			});
-		}
-	}
-
-	contains(target, deep = true) {
-		const walk = function(parent) {
-			const children = parent.getChildNodes(parent.childNodesId) || [];
-			let result = false;
-			for (let i = 0, j = children.length; i < j; i++) {
-				const child = children[i];
-				if (child === target || (deep && walk(child))) {
-					result = true;
-					break;
-				}
-			}
-			return result;
-		};
-
-		return walk(this);
-	}
-
-	remove() {
-		if (this.parentId !== null) {
-			const parent = this.getParent(this.parentId);
-			parent.removeChild(this);
-		}
-	}
-
-	insertChild(child, index, batch) {
-		if (!child) throw new Error('insertChild error: child is required.');
-
-		if (!(child instanceof Node)) {
-			if (!batch) {
-				const children = this.getChildren(true);
-				if (children.indexOf(child.data) === -1) {
-					if (typeof index === 'undefined' || index < 0) {
-						children.push(child.data);
-					} else {
-						children.splice(index, 0, child.data);
-					}
-				}
-			}
-			
-			objectAssign(child, {
-				parentId: isNull(this.key) ? '' : this.key,
-				store: this.store()
-			});
-			child = new Node(child);
-		}
-
-		child.level = this.level + 1;
-
-		if (typeof index === 'undefined' || index < 0) {
-			this.childNodesId.push(child.key);
-		} else {
-			this.childNodesId.splice(index, 0, child.key);
-		}
-
-		this.updateLeafState();
-	}
-
-	insertBefore(child, ref) {
-		let index;
-		if (ref) {
-			index = this.childNodesId.indexOf(ref.id);
-		}
-		this.insertChild(child, index);
-	}
-
-	insertAfter(child, ref) {
-		let index;
-		if (ref) {
-			index = this.childNodesId.indexOf(ref.id);
-			if (index !== -1) index += 1;
-		}
-		this.insertChild(child, index);
-	}
-
-	removeChild(child) {
-		const children = this.getChildren() || [];
-		const dataIndex = children.indexOf(child.data);
-		if (dataIndex > -1) {
-			children.splice(dataIndex, 1);
-		}
-		
-		const index = this.childNodesId.indexOf(child.key);
-		
-		if (index > -1) {
-			this.store() && this.store().deregisterNode(child);
-			child.parentId = null;
-			this.childNodesId.splice(index, 1);
-		}
-		
-		this.updateLeafState();
-	}
-
-	removeChildByData(data) {
-		let targetNode = null;
-
-		for (let i = 0; i < this.childNodesId.length; i++) {
-			let node = this.getChildNodes(this.childNodesId);
-			if (node[i].data === data) {
-				targetNode = node[i];
-				break;
-			}
-		}
-
-		if (targetNode) {
-			this.removeChild(targetNode);
-		}
-	}
-
-	// 为了避免APP端parent嵌套结构导致报错,这里parent需要从nodesMap中获取
-	getParent(parentId) {
-		try {
-			if (!parentId.toString()) return null;
-			return this.store().nodesMap[parentId];
-		} catch (error) {
-			return null;
-		}
-	}
-
-	// 为了避免APP端childNodes嵌套结构导致报错,这里childNodes需要从nodesMap中获取
-	getChildNodes(childNodesId) {
-		let childNodes = [];
-		if (childNodesId.length === 0) return childNodes;
-		childNodesId.forEach((key) => {
-			childNodes.push(this.store().nodesMap[key]);
-		})
-		return childNodes;
-	}
-
-	expand(callback, expandparent) {
-		const done = () => {
-			if (expandparent) {
-				let parent = this.getParent(this.parentId);
-				while (parent && parent.level > 0) {
-					parent.expanded = true;
-					parent = this.getParent(parent.parentId);
-				}
-			}
-			this.expanded = true;
-			if (callback) callback();
-		};
-
-		if (this.shouldLoadData()) {
-			this.loadData(function(data) {
-				if (Array.isArray(data)) {
-					if (this.checked) {
-						this.setChecked(true, true);
-					} else if (!this.store().checkStrictly) {
-						reInitChecked(this);
-					}
-					done();
-				}
-			});
-		} else {
-			done();
-		}
-	}
-
-	doCreateChildren(array, defaultProps = {}) {
-		array.forEach((item) => {
-			this.insertChild(objectAssign({
-				data: item
-			}, defaultProps), undefined, true);
-		});
-	}
-
-	collapse() {
-		this.expanded = false;
-	}
-
-	shouldLoadData() {
-		return this.store().lazy === true && this.store().load && !this.loaded;
-	}
-
-	updateLeafState() {
-		if (this.store().lazy === true && this.loaded !== true && typeof this.isLeafByUser !== 'undefined') {
-			this.isLeaf = this.isLeafByUser;
-			return;
-		}
-		const childNodesId = this.childNodesId;
-		if (!this.store().lazy || (this.store().lazy === true && this.loaded === true)) {
-			this.isLeaf = !childNodesId || childNodesId.length === 0;
-			return;
-		}
-		this.isLeaf = false;
-	}
-
-	setChecked(value, deep, recursion, passValue) {
-		this.indeterminate = value === 'half';
-		this.checked = value === true;
-		
-		if (this.checked && this.store().expandOnCheckNode) {
-			this.expand(null, true)
-		}
-		
-		if (this.store().checkStrictly) return;
-		if (this.store().showRadio) return;
-
-		if (!(this.shouldLoadData() && !this.store().checkDescendants)) {
-			let childNodes = this.getChildNodes(this.childNodesId);
-			let {
-				all,
-				allWithoutDisable
-			} = getChildState(childNodes);
-
-			if (!this.isLeaf && (!all && allWithoutDisable)) {
-				this.checked = false;
-				value = false;
-			}
-
-			const handleDescendants = () => {
-				if (deep) {
-					let childNodes = this.getChildNodes(this.childNodesId)
-					for (let i = 0, j = childNodes.length; i < j; i++) {
-						const child = childNodes[i];
-						passValue = passValue || value !== false;
-						const isCheck = child.disabled ? child.checked : passValue;
-						child.setChecked(isCheck, deep, true, passValue);
-					}
-					const {
-						half,
-						all
-					} = getChildState(childNodes);
-					
-					if (!all) {
-						this.checked = all;
-						this.indeterminate = half;
-					}
-				}
-			};
-
-			if (this.shouldLoadData()) {
-				this.loadData(() => {
-					handleDescendants();
-					reInitChecked(this);
-				}, {
-					checked: value !== false
-				});
-				return;
-			} else {
-				handleDescendants();
-			}
-		}
-
-		if (!this.parentId) return;
-
-		let parent = this.getParent(this.parentId);
-		if (parent && parent.level === 0) return;
-
-		if (!recursion) {
-			reInitChecked(parent);
-		}
-	}
-
-	setRadioChecked(value) {
-		const allNodes = this.store()._getAllNodes().sort((a, b) => b.level - a.level);
-		allNodes.forEach(node => node.setChecked(false, false));
-		this.checked = value === true;
-	}
-
-	getChildren(forceInit = false) {
-		if (this.level === 0) return this.data;
-		const data = this.data;
-		if (!data) return null;
-
-		const props = this.store().props;
-		let children = 'children';
-		if (props) {
-			children = props.children || 'children';
-		}
-
-		if (data[children] === undefined) {
-			data[children] = null;
-		}
-
-		if (forceInit && !data[children]) {
-			data[children] = [];
-		}
-
-		return data[children];
-	}
-
-	updateChildren() {
-		let childNodes = this.getChildNodes(this.childNodesId);
-		const newData = this.getChildren() || [];
-		const oldData = childNodes.map((node) => node.data);
-
-		const newDataMap = {};
-		const newNodes = [];
-
-		newData.forEach((item, index) => {
-			const key = item[NODE_KEY];
-			const isNodeExists = !!key && arrayFindIndex(oldData, data => data[NODE_KEY] === key) >= 0;
-			if (isNodeExists) {
-				newDataMap[key] = {
-					index,
-					data: item
-				};
-			} else {
-				newNodes.push({
-					index,
-					data: item
-				});
-			}
-		});
-
-		if (!this.store().lazy) {
-			oldData.forEach((item) => {
-				if (!newDataMap[item[NODE_KEY]]) this.removeChildByData(item);
-			});
-		}
-
-		newNodes.forEach(({
-			index,
-			data
-		}) => {
-			this.insertChild({
-				data
-			}, index);
-		});
-
-		this.updateLeafState();
-	}
-
-	loadData(callback, defaultProps = {}) {
-		if (this.store().lazy === true && 
-			this.store().load && !this.loaded && 
-			(!this.loading || Object.keys(defaultProps).length)
-		) {
-			this.loading = true;
-
-			const resolve = (children) => {
-				this.loaded = true;
-				this.loading = false;
-				this.childNodesId = [];
-				this.doCreateChildren(children, defaultProps);
-				this.updateLeafState();
-				
-				callback && callback.call(this,children);
-			};
-
-			this.store().load(this, resolve);
-		} else {
-			callback && callback.call(this);
-		}
-	}
-}

+ 0 - 419
components/ly-tree-nvue/model/tree-store.js

@@ -1,419 +0,0 @@
-import Node from './node';
-import {
-	getNodeKey,
-	getPropertyFromData
-} from '../tool/util';
-
-export default class TreeStore {
-	constructor(options) {
-		this.ready = false;
-		this.currentNode = null;
-		this.currentNodeKey = null;
-
-		Object.assign(this, options);
-
-		if (!this.key) {
-			throw new Error('[Tree] nodeKey is required');
-		}
-
-		this.nodesMap = {};
-		this.root = new Node({
-			data: this.data,
-			store: this
-		});
-
-		if (this.lazy && this.load) {
-			const loadFn = this.load;
-			loadFn(this.root, (data) => {
-				this.root.doCreateChildren(data);
-				this._initDefaultCheckedNodes();
-				this.ready = true;
-			});
-		} else {
-			this._initDefaultCheckedNodes();
-			this.ready = true;
-		}
-	}
-
-	filter(value, data) {
-		const filterNodeMethod = this.filterNodeMethod;
-		const lazy = this.lazy;
-		const _self = this;
-		const traverse = function(node) {
-			const childNodes = node.root ? node.root.getChildNodes(node.root.childNodesId) : node.getChildNodes(node.childNodesId);
-
-			childNodes.forEach((child) => {
-				if (data && typeof data === 'object') {
-					let nodePath = _self.getNodePath(child.data);
-					if (!nodePath.some(pathItem => pathItem[_self.key] === data[_self.key])) {
-						child.visible = false;
-						traverse(child);
-						return;
-					}
-				}
-				
-				if (_self.childVisibleForFilterNode) {
-					let parent = child.getParent(child.parentId);
-					child.visible = filterNodeMethod.call(child, value, child.data, child) || (parent && parent.visible);
-				} else {
-					child.visible = filterNodeMethod.call(child, value, child.data, child);
-				}
-				
-				traverse(child);
-			});
-
-			if (!node.visible && childNodes.length) {
-				let allHidden = true;
-				allHidden = !childNodes.some(child => child.visible);
-
-				if (node.root) {
-					node.root.visible = allHidden === false;
-				} else {
-					node.visible = allHidden === false;
-				}
-			}
-			
-			if (!value) return;
-
-			if (node.visible && !node.isLeaf && !lazy) node.expand();
-		};
-
-		traverse(this);
-	}
-
-	setData(newVal) {
-		const instanceChanged = newVal !== this.root.data;
-		if (instanceChanged) {
-			this.root.setData(newVal);
-			this._initDefaultCheckedNodes();
-		} else {
-			this.root.updateChildren();
-		}
-	}
-
-	getNode(data) {
-		if (data instanceof Node) return data;
-		const key = typeof data !== 'object' ? data : getNodeKey(this.key, data);
-		if (!key) return null;
-		return this.nodesMap[key] || null;
-	}
-
-	insertBefore(data, refData) {
-		const refNode = this.getNode(refData);
-		let parent = refNode.getParent(refNode.parentId);
-		parent.insertBefore({
-			data
-		}, refNode);
-	}
-
-	insertAfter(data, refData) {
-		const refNode = this.getNode(refData);
-		let parent = refNode.getParent(refNode.parentId);
-		parent.insertAfter({
-			data
-		}, refNode);
-	}
-
-	remove(data) {
-		const node = this.getNode(data);
-
-		if (node && node.parentId !== null) {
-			let parent = node.getParent(node.parentId);
-			if (node === this.currentNode) {
-				this.currentNode = null;
-			}
-			parent.removeChild(node);
-		}
-	}
-
-	append(data, parentData) {
-		const parentNode = parentData ? this.getNode(parentData) : this.root;
-
-		if (parentNode) {
-			parentNode.insertChild({
-				data
-			});
-		}
-	}
-
-	_initDefaultCheckedNodes() {
-		const defaultCheckedKeys = this.defaultCheckedKeys || [];
-		const nodesMap = this.nodesMap;
-		let checkedKeyfromData = [];
-		let totalCheckedKeys = []
-		
-		for (let key in nodesMap) {
-			let checked = getPropertyFromData(nodesMap[key], 'checked') || false;
-			checked && checkedKeyfromData.push(key);
-		}
-		
-		totalCheckedKeys = Array.from(new Set([...defaultCheckedKeys, ...checkedKeyfromData]));
-		totalCheckedKeys.forEach((checkedKey) => {
-			const node = nodesMap[checkedKey];
-			
-			if (node) {
-				node.setChecked(true, !this.checkStrictly);
-			}
-		});
-	}
-
-	_initDefaultCheckedNode(node) {
-		const defaultCheckedKeys = this.defaultCheckedKeys || [];
-
-		if (defaultCheckedKeys.indexOf(node.key) !== -1) {
-			node.setChecked(true, !this.checkStrictly);
-		}
-	}
-	
-	toggleExpendAll(isExpandAll) {
-		const allNodes = this._getAllNodes();
-		
-		allNodes.forEach(item => {
-			const node = this.getNode(item.key); 
-			
-			if (node) isExpandAll ? node.expand() : node.collapse();
-		});
-	}
-	
-	setCheckAll(isCkeckAll) {
-		const allNodes = this._getAllNodes();
-		
-		allNodes.forEach(item => {
-			item.setChecked(isCkeckAll, false);
-		}); 
-	}
-
-	setDefaultCheckedKey(newVal) {
-		if (newVal !== this.defaultCheckedKeys) {
-			this.defaultCheckedKeys = newVal;
-			this._initDefaultCheckedNodes();
-		}
-	}
-
-	registerNode(node) {
-
-		const key = this.key;
-		if (!key || !node || !node.data) return;
-
-		const nodeKey = node.key;
-		if (nodeKey !== undefined) this.nodesMap[node.key] = node;
-	}
-
-	deregisterNode(node) {
-		const key = this.key;
-		if (!key || !node || !node.data) return;
-
-		let childNodes = node.getChildNodes(node.childNodesId);
-		childNodes.forEach(child => {
-			this.deregisterNode(child);
-		});
-
-		delete this.nodesMap[node.key];
-	}
-	
-	getNodePath(data) {
-		if (!this.key) throw new Error('[Tree] nodeKey is required in getNodePath');
-		const node = this.getNode(data);
-		if (!node) return [];
-		
-		const path = [node.data];
-		let parent = node.getParent(node.parentId);
-		while (parent && parent !== this.root) {
-			path.push(parent.data);
-			parent = parent.getParent(parent.parentId);
-		}
-		return path.reverse();
-	}
-
-	getCheckedNodes(leafOnly = false, includeHalfChecked = false) {
-		const checkedNodes = [];
-		const traverse = function(node) {
-			const childNodes = node.root ? node.root.getChildNodes(node.root.childNodesId) : node.getChildNodes(node.childNodesId);
-
-			childNodes.forEach((child) => {
-				if ((child.checked || (includeHalfChecked && child.indeterminate)) && (!leafOnly || (leafOnly && child.isLeaf))) {
-					checkedNodes.push(child.data);
-				}
-
-				traverse(child);
-			});
-		};
-
-		traverse(this);
-
-		return checkedNodes;
-	}
-
-	getCheckedKeys(leafOnly = false, includeHalfChecked = false) {
-		return this.getCheckedNodes(leafOnly, includeHalfChecked).map((data) => (data || {})[this.key]);
-	}
-
-	getHalfCheckedNodes() {
-		const nodes = [];
-		const traverse = function(node) {
-			const childNodes = node.root ? node.root.getChildNodes(node.root.childNodesId) : node.getChildNodes(node.childNodesId);
-
-			childNodes.forEach((child) => {
-				if (child.indeterminate) {
-					nodes.push(child.data);
-				}
-
-				traverse(child);
-			});
-		};
-
-		traverse(this);
-
-		return nodes;
-	}
-
-	getHalfCheckedKeys() {
-		return this.getHalfCheckedNodes().map((data) => (data || {})[this.key]);
-	}
-
-	_getAllNodes() {
-		const allNodes = [];
-		const nodesMap = this.nodesMap;
-		for (let nodeKey in nodesMap) {
-			if (nodesMap.hasOwnProperty(nodeKey)) {
-				allNodes.push(nodesMap[nodeKey]);
-			}
-		}
-
-		return allNodes;
-	}
-
-	updateChildren(key, data) {
-		const node = this.nodesMap[key];
-		if (!node) return;
-		const childNodes = node.getChildNodes(node.childNodesId);
-		for (let i = childNodes.length - 1; i >= 0; i--) {
-			const child = childNodes[i];
-			this.remove(child.data);
-		}
-		for (let i = 0, j = data.length; i < j; i++) {
-			const child = data[i];
-			this.append(child, node.data);
-		}
-	}
-
-	_setCheckedKeys(key, leafOnly = false, checkedKeys) {
-		const allNodes = this._getAllNodes().sort((a, b) => b.level - a.level);
-		const cache = Object.create(null);
-		const keys = Object.keys(checkedKeys);
-		allNodes.forEach(node => node.setChecked(false, false));
-		for (let i = 0, j = allNodes.length; i < j; i++) {
-			const node = allNodes[i];
-			let nodeKey = node.data[key];
-			
-			if (typeof nodeKey === 'undefined') continue;
-			
-			nodeKey = nodeKey.toString();
-			let checked = keys.indexOf(nodeKey) > -1;
-			if (!checked) {
-				if (node.checked && !cache[nodeKey]) {
-					node.setChecked(false, false);
-				}
-				continue;
-			}
-
-			let parent = node.getParent(node.parentId);
-			while (parent && parent.level > 0) {
-				cache[parent.data[key]] = true;
-				parent = parent.getParent(parent.parentId);
-			}
-
-			if (node.isLeaf || this.checkStrictly) {
-				node.setChecked(true, false);
-				continue;
-			}
-			node.setChecked(true, true);
-
-			if (leafOnly) {
-				node.setChecked(false, false);
-				const traverse = function(node) {
-					const childNodes = node.getChildNodes(node.childNodesId);
-					childNodes.forEach((child) => {
-						if (!child.isLeaf) {
-							child.setChecked(false, false);
-						}
-						traverse(child);
-					});
-				};
-				traverse(node);
-			}
-		}
-	}
-
-	setCheckedNodes(array, leafOnly = false) {
-		const key = this.key;
-		const checkedKeys = {};
-		array.forEach((item) => {
-			checkedKeys[(item || {})[key]] = true;
-		});
-
-		this._setCheckedKeys(key, leafOnly, checkedKeys);
-	}
-
-	setCheckedKeys(keys, leafOnly = false) {
-		this.defaultCheckedKeys = keys;
-		const key = this.key;
-		const checkedKeys = {};
-		keys.forEach((key) => {
-			checkedKeys[key] = true;
-		});
-
-		this._setCheckedKeys(key, leafOnly, checkedKeys);
-	}
-
-	setDefaultExpandedKeys(keys) {
-		keys = keys || [];
-		this.defaultExpandedKeys = keys;
-
-		keys.forEach((key) => {
-			const node = this.getNode(key);
-			if (node) node.expand(null, this.autoExpandParent);
-		});
-	}
-
-	setChecked(data, checked, deep) {
-		const node = this.getNode(data);
-
-		if (node) {
-			node.setChecked(!!checked, deep);
-		}
-	}
-
-	getCurrentNode() {
-		return this.currentNode;
-	}
-
-	setCurrentNode(currentNode) {
-		const prevCurrentNode = this.currentNode;
-		if (prevCurrentNode) {
-			prevCurrentNode.isCurrent = false;
-		}
-		this.currentNode = currentNode;
-		this.currentNode.isCurrent = true;
-		
-		this.expandCurrentNodeParent && this.currentNode.expand(null, true)
-	}
-
-	setUserCurrentNode(node) {
-		const key = node[this.key];
-		const currNode = this.nodesMap[key];
-		this.setCurrentNode(currNode);
-	}
-
-	setCurrentNodeKey(key) {
-		if (key === null || key === undefined) {
-			this.currentNode && (this.currentNode.isCurrent = false);
-			this.currentNode = null;
-			return;
-		}
-		const node = this.getNode(key);
-		if (node) {
-			this.setCurrentNode(node);
-		}
-	}
-};

BIN
components/ly-tree-nvue/nvue-demo.zip


+ 0 - 114
components/ly-tree-nvue/tool/util.js

@@ -1,114 +0,0 @@
-export const NODE_KEY = '$treeNodeId';
-
-export const markNodeData = function(node, data) {
-	if (!data || data[NODE_KEY]) return;
-	Object.defineProperty(data, NODE_KEY, {
-		value: node.id,
-		enumerable: false,
-		configurable: false,
-		writable: false
-	});
-};
-
-export const getNodeKey = function(key, data) {
-	if (!key) return data[NODE_KEY];
-	return data[key];
-};
-
-export const objectAssign = function(target) {
-	for (let i = 1, j = arguments.length; i < j; i++) {
-		let source = arguments[i] || {};
-		for (let prop in source) {
-			if (source.hasOwnProperty(prop)) {
-				let value = source[prop];
-				if (value !== undefined) {
-					target[prop] = value;
-				}
-			}
-		}
-	}
-
-	return target;
-};
-
-// TODO: use native Array.find, Array.findIndex when IE support is dropped
-export const arrayFindIndex = function(arr, pred) {
-	for (let i = 0; i !== arr.length; ++i) {
-		if (pred(arr[i])) {
-			return i;
-		}
-	}
-	return -1;
-};
-
-export const getChildState = function(node) {
-	let all = true;
-	let none = true;
-	let allWithoutDisable = true;
-	for (let i = 0, j = node.length; i < j; i++) {
-		const n = node[i];
-		if (n.checked !== true || n.indeterminate) {
-			all = false;
-			if (!n.disabled) {
-				allWithoutDisable = false;
-			}
-		}
-		if (n.checked !== false || n.indeterminate) {
-			none = false;
-		}
-	}
-
-	return {
-		all,
-		none,
-		allWithoutDisable,
-		half: !all && !none
-	};
-};
-
-export const reInitChecked = function(node) {
-	if (!node || node.childNodesId.length === 0) return;
-
-	let childNodes = node.getChildNodes(node.childNodesId);
-	const {
-		all,
-		none,
-		half
-	} = getChildState(childNodes);
-	if (all) {
-		node.checked = true;
-		node.indeterminate = false;
-	} else if (half) {
-		node.checked = false;
-		node.indeterminate = true;
-	} else if (none) {
-		node.checked = false;
-		node.indeterminate = false;
-	}
-
-	let parent = node.getParent(node.parentId);
-	if (!parent || parent.level === 0) return;
-
-	if (!node.store().checkStrictly) {
-		reInitChecked(parent);
-	}
-};
-
-export const getPropertyFromData = function(node, prop) {
-	const props = node.store().props;
-	const data = node.data || {};
-	const config = props[prop];
-
-	if (typeof config === 'function') {
-		return config(data, node);
-	} else if (typeof config === 'string') {
-		return data[config];
-	} else if (typeof config === 'undefined') {
-		const dataProp = data[prop];
-		return dataProp === undefined ? '' : dataProp;
-	}
-};
-
-export const isNull = function(v) {
-	return v === undefined || v === null || v === '';
-}

+ 0 - 200
components/ly-tree/components/ly-checkbox.vue

@@ -1,200 +0,0 @@
-<template>
-	<text :class="classObj.wrapper" @click.stop="handleClick">
-		<text :class="[classObj.input, {'is-indeterminate': indeterminate, 'is-checked': checked, 'is-disabled': disabled}]">
-			<text :class="classObj.inner"></text>
-		</text>
-	</text>
-</template>
-
-<script>
-	export default {
-		data() {
-			return {
-				classObj: {}
-			}
-		},
-		
-		props: {
-			type: {
-				type: String,
-				validator(t) {
-					return t === 'radio' || t === 'checkbox'
-				}
-			},
-			checked: Boolean,
-			disabled: Boolean,
-			indeterminate: Boolean
-		},
-		
-		created() {
-			this.classObj = {
-				wrapper: `ly-${this.type}`,
-				input: `ly-${this.type}__input`,
-				inner: `ly-${this.type}__inner`
-			}
-		},
-		
-		methods: {
-			handleClick() {
-				this.$emit('check', this.checked);
-			}
-		}
-	}
-</script>
-
-<style>
-	/* lyRadio/lyCheckbox-start */
-	.ly-checkbox,
-	.ly-radio {
-		color: #606266;
-		font-weight: 500;
-		font-size: 28rpx;
-		cursor: pointer;
-		user-select: none;
-		padding-right: 16rpx
-	}
-	
-	.ly-checkbox__input,
-	.ly-radio__input {
-		cursor: pointer;
-		outline: 0;
-		line-height: 1;
-		vertical-align: middle
-	}
-	
-	.ly-checkbox__input.is-disabled .ly-checkbox__inner,
-	.ly-radio__input.is-disabled .ly-radio__inner {
-		background-color: #edf2fc;
-		border-color: #DCDFE6;
-		cursor: not-allowed
-	}
-	
-	.ly-checkbox__input.is-disabled .ly-checkbox__inner::after,
-	.ly-radio__input.is-disabled .ly-radio__inner::after {
-		cursor: not-allowed;
-		border-color: #C0C4CC
-	}
-	
-	.ly-checkbox__input.is-disabled .ly-checkbox__inner+.ly-checkbox__label,
-	.ly-radio__input.is-disabled .ly-radio__inner+.ly-radio__label {
-		cursor: not-allowed
-	}
-	
-	.ly-checkbox__input.is-disabled.is-checked .ly-checkbox__inner,
-	.ly-radio__input.is-disabled.is-checked .ly-radio__inner {
-		background-color: #F2F6FC;
-		border-color: #DCDFE6
-	}
-	
-	.ly-checkbox__input.is-disabled.is-checked .ly-checkbox__inner::after,
-	.ly-radio__input.is-disabled.is-checked .ly-radio__inner::after {
-		border-color: #C0C4CC
-	}
-	
-	.ly-checkbox__input.is-disabled.is-indeterminate .ly-checkbox__inner {
-		background-color: #F2F6FC;
-		border-color: #DCDFE6
-	}
-	
-	.ly-checkbox__input.is-disabled.is-indeterminate .ly-checkbox__inner::before {
-		background-color: #C0C4CC;
-		border-color: #C0C4CC
-	}
-	
-	.ly-checkbox__input.is-checked .ly-checkbox__inner,
-	.ly-radio__input.is-checked .ly-radio__inner,
-	.ly-checkbox__input.is-indeterminate .ly-checkbox__inner {
-		background-color: #409EFF;
-		border-color: #409EFF
-	}
-	
-	.ly-checkbox__input.is-disabled+text.ly-checkbox__label,
-	.ly-radio__input.is-disabled+text.ly-radio__label {
-		color: #C0C4CC;
-		cursor: not-allowed
-	}
-	
-	.ly-checkbox__input.is-checked .ly-checkbox__inner::after,
-	.ly-radio__input.is-checked .ly-radio__inner::after {
-		-webkit-transform: rotate(45deg) scaleY(1);
-		transform: rotate(45deg) scaleY(1)
-	}
-	
-	.ly-checkbox__input.is-checked+.ly-checkbox__label,
-	.ly-radio__input.is-checked+.ly-radio__label {
-		color: #409EFF
-	}
-	
-	.ly-checkbox__input.is-focus .ly-checkbox__inner,
-	.ly-radio__input.is-focus .ly-radio__inner {
-		border-color: #409EFF
-	}
-	
-	.ly-checkbox__input.is-indeterminate .ly-checkbox__inner::before {
-		content: '';
-		position: absolute;
-		display: block;
-		background-color: #FFF;
-		height: 6rpx;
-		-webkit-transform: scale(.5);
-		transform: scale(.5);
-		left: 0;
-		right: 0;
-		top: 10rpx
-	}
-	
-	.ly-checkbox__input.is-indeterminate .ly-checkbox__inner::after {
-		display: none
-	}
-	
-	.ly-checkbox__inner,
-	.ly-radio__inner {
-		display: inline-block;
-		position: relative;
-		border: 2rpx solid #DCDFE6;
-		border-radius: 4rpx;
-		-webkit-box-sizing: border-box;
-		box-sizing: border-box;
-		width: 28rpx;
-		height: 28rpx;
-		background-color: #FFF;
-		z-index: 1;
-		-webkit-transition: border-color .25s cubic-bezier(.71, -.46, .29, 1.46), background-color .25s cubic-bezier(.71, -.46, .29, 1.46);
-		transition: border-color .25s cubic-bezier(.71, -.46, .29, 1.46), background-color .25s cubic-bezier(.71, -.46, .29, 1.46)
-	}
-	
-	.ly-radio__inner {
-		border-radius: 50%;
-		width: 34rpx !important;
-		height: 34rpx !important;
-	}
-	
-	.ly-checkbox__inner::after,
-	.ly-radio__inner::after {
-		-webkit-box-sizing: content-box;
-		box-sizing: content-box;
-		content: "";
-		border: 2rpx solid #FFF;
-		border-left: 0;
-		border-top: 0;
-		height: 14rpx;
-		left: 10rpx;
-		position: absolute;
-		top: 2rpx;
-		-webkit-transform: rotate(45deg) scaleY(0);
-		transform: rotate(45deg) scaleY(0);
-		width: 6rpx;
-		-webkit-transition: -webkit-transform .15s ease-in .05s;
-		transition: -webkit-transform .15s ease-in .05s;
-		transition: transform .15s ease-in .05s;
-		transition: transform .15s ease-in .05s, -webkit-transform .15s ease-in .05s;
-		-webkit-transform-origin: center;
-		transform-origin: center
-	}
-	
-	.ly-radio__inner::after {
-		left: 12rpx !important;
-		top: 6rpx !important;
-	}
-	/* lyRadio/lyCheckbox-end */
-</style>

File diff suppressed because it is too large
+ 0 - 424
components/ly-tree/ly-tree-node.vue


+ 0 - 605
components/ly-tree/ly-tree.vue

@@ -1,605 +0,0 @@
-<template>
-	<view>
-		<template v-if="showLoading">
-			<view class="ly-loader ly-flex-center">
-				<view class="ly-loader-inner">加载中...</view>
-			</view>
-		</template>
-		
-		<template v-else>
-			<view v-if="isEmpty || !visible" 
-				class="ly-empty">
-				{{emptyText}}
-			</view>
-			<view :key="updateKey"
-				class="ly-tree" 
-				:class="{'is-empty': isEmpty || !visible}" 
-				role="tree" 
-				name="LyTreeExpand">
-				<ly-tree-node v-for="nodeId in childNodesId" 
-					:nodeId="nodeId" 
-					:render-after-expand="renderAfterExpand"
-					:show-checkbox="showCheckbox" 
-					:show-radio="showRadio" 
-					:check-only-leaf="checkOnlyLeaf"
-					:key="getNodeKey(nodeId)" 
-					:indent="indent" 
-					:icon-class="iconClass">
-				</ly-tree-node>
-			</view>
-		</template>
-	</view>
-</template>
-
-<script>
-	import Vue from 'vue'
-	import TreeStore from './model/tree-store.js';
-	import {getNodeKey} from './tool/util.js';
-	import LyTreeNode from './ly-tree-node.vue';
-
-	export default {
-		name: 'LyTree',
-		
-		componentName: 'LyTree',
-		
-		components: {
-			LyTreeNode
-		},
-		
-		data() {
-			return {
-				updateKey: new Date().getTime(), // 数据更新的时候,重新渲染树
-				elId: `ly_${Math.ceil(Math.random() * 10e5).toString(36)}`,
-				visible: true,
-				store: {
-					ready: false
-				},
-				currentNode: null,
-				childNodesId: []
-			};
-		},
-		
-		provide() {
-		    return {
-		       tree: this
-		    }
-		},
-		
-		props: {
-			// 展示数据
-			treeData: Array,
-			
-			// 自主控制loading加载,避免数据还没获取到的空档出现“暂无数据”字样
-			ready: {
-				type: Boolean,
-				default: true
-			},
-			
-			// 内容为空的时候展示的文本
-			emptyText: {
-				type: String,
-				default: '暂无数据'
-			},
-			
-			// 是否在第一次展开某个树节点后才渲染其子节点
-			renderAfterExpand: {
-				type: Boolean,
-				default: true
-			},
-			
-			// 每个树节点用来作为唯一标识的属性,整棵树应该是唯一的
-			nodeKey: String,
-			
-			// 在显示复选框的情况下,是否严格的遵循父子不互相关联的做法,默认为 false
-			checkStrictly: Boolean,
-			
-			// 是否默认展开所有节点
-			defaultExpandAll: Boolean,
-			
-			// 切换全部展开、全部折叠
-			toggleExpendAll: Boolean,
-			
-			// 是否在点击节点的时候展开或者收缩节点, 默认值为 true,如果为 false,则只有点箭头图标的时候才会展开或者收缩节点
-			expandOnClickNode: {
-				type: Boolean,
-				default: true
-			},
-			
-			// 选中的时候展开节点
-			expandOnCheckNode: {
-				type: Boolean,
-				default: true
-			},
-			
-			// 是否在点击节点的时候选中节点,默认值为 false,即只有在点击复选框时才会选中节点
-			checkOnClickNode: Boolean,
-			checkDescendants: {
-				type: Boolean,
-				default: false
-			},
-			
-			// 展开子节点的时候是否自动展开父节点
-			autoExpandParent: {
-				type: Boolean,
-				default: true
-			},
-			
-			// 默认勾选的节点的 key 的数组
-			defaultCheckedKeys: Array,
-			
-			// 默认展开的节点的 key 的数组
-			defaultExpandedKeys: Array,
-			
-			// 是否展开当前节点的父节点
-			expandCurrentNodeParent: Boolean,
-			
-			// 当前选中的节点
-			currentNodeKey: [String, Number],
-			
-			// 是否最后一层叶子节点才显示单选/多选框
-			checkOnlyLeaf: {
-				type: Boolean,
-				default: false
-			},
-			
-			// 节点是否可被选择
-			showCheckbox: {
-				type: Boolean,
-				default: false
-			},
-			
-			// 节点单选
-			showRadio: {
-				type: Boolean,
-				default: false
-			},
-			
-			// 配置选项
-			props: {
-				type: [Object, Function],
-				default () {
-					return {
-						children: 'children', // 指定子树为节点对象的某个属性值
-						label: 'label', // 指定节点标签为节点对象的某个属性值
-						disabled: 'disabled' //	指定节点选择框是否禁用为节点对象的某个属性值
-					};
-				}
-			},
-			
-			// 是否懒加载子节点,需与 load 方法结合使用
-			lazy: {
-				type: Boolean,
-				default: false
-			},
-			
-			// 是否高亮当前选中节点,默认值是 false
-			highlightCurrent: Boolean,
-			
-			// 加载子树数据的方法,仅当 lazy 属性为true 时生效
-			load: Function,
-			
-			// 对树节点进行筛选时执行的方法,返回 true 表示这个节点可以显示,返回 false 则表示这个节点会被隐藏
-			filterNodeMethod: Function,
-			
-			// 搜索时是否展示匹配项的所有子节点
-			childVisibleForFilterNode: {
-				type: Boolean,
-				default: false
-			},
-			
-			// 是否每次只打开一个同级树节点展开
-			accordion: Boolean,
-			
-			// 相邻级节点间的水平缩进,单位为像素
-			indent: {
-				type: Number,
-				default: 18
-			},
-			
-			// 自定义树节点的展开图标
-			iconClass: String,
-			
-			// 是否显示节点图标,如果配置为true,需要配置props中对应的图标属性名称
-			showNodeIcon: {
-				type: Boolean,
-				default: false
-			},
-			
-			// 当节点图标显示出错时,显示的默认图标
-			defaultNodeIcon: {
-				type: String,
-				default: 'https://img-cdn-qiniu.dcloud.net.cn/uniapp/doc/github.svg'
-			},
-			
-			// 如果数据量较大,建议不要在node节点中添加parent属性,会造成性能损耗
-			isInjectParentInNode: {
-				type: Boolean,
-				default: false
-			}
-		},
-		
-		computed: {
-			isEmpty() {
-				if (this.store.root) {
-					const childNodes = this.store.root.getChildNodes(this.childNodesId);
-					
-					return !childNodes || childNodes.length === 0 || childNodes.every(({visible}) => !visible);
-				}
-				
-				return true;
-			},
-			showLoading() {
-				return !(this.store.ready && this.ready);
-			}
-		},
-		
-		watch: {
-			toggleExpendAll(newVal) {
-				this.store.toggleExpendAll(newVal);
-			},
-			defaultCheckedKeys(newVal) {
-				this.store.setDefaultCheckedKey(newVal);
-			},
-			defaultExpandedKeys(newVal) {
-				this.store.defaultExpandedKeys = newVal;
-				this.store.setDefaultExpandedKeys(newVal);
-			},
-			checkStrictly(newVal) {
-				this.store.checkStrictly = newVal || this.checkOnlyLeaf;
-			},
-			'store.root.childNodesId'(newVal) {
-				this.childNodesId = newVal;
-			},
-			'store.root.visible'(newVal) {
-				this.visible = newVal;
-			},
-			childNodesId(){
-				this.$nextTick(() => {
-					this.$emit('ly-tree-render-completed');
-				});
-			},
-			treeData: {
-				handler(newVal) {
-					this.updateKey = new Date().getTime();
-					this.store.setData(newVal);
-				},
-				deep: true
-			}
-		},
-		
-		methods: {
-			/*
-			 * @description 对树节点进行筛选操作
-			 * @method filter
-			 * @param {all} value 在 filter-node-method 中作为第一个参数
-			 * @param {Object} data 搜索指定节点的节点数据,不传代表搜索所有节点,假如要搜索A节点下面的数据,那么nodeData代表treeData中A节点的数据
-			*/
-			filter(value, data) {
-				if (!this.filterNodeMethod) throw new Error('[Tree] filterNodeMethod is required when filter');
-				this.store.filter(value, data);
-			},
-			
-			/*
-			 * @description 获取节点的唯一标识符
-			 * @method getNodeKey
-			 * @param {String, Number} nodeId
-			 * @return {String, Number} 匹配到的数据中的某一项数据
-			*/
-			getNodeKey(nodeId) {
-				let node = this.store.root.getChildNodes([nodeId])[0];
-				return getNodeKey(this.nodeKey, node.data);
-			},
-			
-		   /*
-		    * @description 获取节点路径
-		    * @method getNodePath
-		    * @param {Object} data 节点数据
-		    * @return {Array} 路径数组
-		   */
-			getNodePath(data) {
-				return this.store.getNodePath(data);
-			},
-			
-			/*
-			 * @description 若节点可被选择(即 show-checkbox 为 true),则返回目前被选中的节点所组成的数组
-			 * @method getCheckedNodes
-			 * @param {Boolean} leafOnly 是否只是叶子节点,默认false
-			 * @param {Boolean} includeHalfChecked 是否包含半选节点,默认false
-			 * @return {Array} 目前被选中的节点所组成的数组
-			*/
-			getCheckedNodes(leafOnly, includeHalfChecked) {
-				return this.store.getCheckedNodes(leafOnly, includeHalfChecked);
-			},
-			
-			/*
-			 * @description 若节点可被选择(即 show-checkbox 为 true),则返回目前被选中的节点的 key 所组成的数组
-			 * @method getCheckedKeys
-			 * @param {Boolean} leafOnly 是否只是叶子节点,默认false,若为 true 则仅返回被选中的叶子节点的 keys
-			 * @param {Boolean} includeHalfChecked 是否返回indeterminate为true的节点,默认false
-			 * @return {Array} 目前被选中的节点所组成的数组
-			*/
-			getCheckedKeys(leafOnly, includeHalfChecked) {
-				return this.store.getCheckedKeys(leafOnly, includeHalfChecked);
-			},
-			
-			/*
-			 * @description 获取当前被选中节点的 data,若没有节点被选中则返回 null
-			 * @method getCurrentNode
-			 * @return {Object} 当前被选中节点的 data,若没有节点被选中则返回 null
-			*/
-			getCurrentNode() {
-				const currentNode = this.store.getCurrentNode();
-				return currentNode ? currentNode.data : null;
-			},
-			
-			/*
-			 * @description 获取当前被选中节点的 key,若没有节点被选中则返回 null
-			 * @method getCurrentKey
-			 * @return {all} 当前被选中节点的 key, 若没有节点被选中则返回 null
-			*/
-			getCurrentKey() {
-				const currentNode = this.getCurrentNode();
-				return currentNode ? currentNode[this.nodeKey] : null;
-			},
-			
-			/*
-			 * @description 设置全选/取消全选
-			 * @method setCheckAll
-			 * @param {Boolean} isCheckAll 选中状态,默认为true
-			*/
-			setCheckAll(isCheckAll = true) {
-				if (this.showRadio) throw new Error('You set the "show-radio" property, so you cannot select all nodes');
-				
-				if (!this.showCheckbox) console.warn('You have not set the property "show-checkbox". Please check your settings');
-				
-				this.store.setCheckAll(isCheckAll);
-			},
-			
-			/*
-			 * @description 设置目前勾选的节点
-			 * @method setCheckedNodes
-			 * @param {Array} nodes 接收勾选节点数据的数组
-			 * @param {Boolean} leafOnly 是否只是叶子节点, 若为 true 则仅设置叶子节点的选中状态,默认值为 false
-			*/
-			setCheckedNodes(nodes, leafOnly) {
-				this.store.setCheckedNodes(nodes, leafOnly);
-			},
-			
-			/*
-			 * @description 通过 keys 设置目前勾选的节点
-			 * @method setCheckedKeys
-			 * @param {Array} keys 勾选节点的 key 的数组 
-			 * @param {Boolean} leafOnly 是否只是叶子节点, 若为 true 则仅设置叶子节点的选中状态,默认值为 false
-			*/
-			setCheckedKeys(keys, leafOnly) {
-				if (!this.nodeKey) throw new Error('[Tree] nodeKey is required in setCheckedKeys');
-				this.store.setCheckedKeys(keys, leafOnly);
-			},
-			
-			/*
-			 * @description 通过 key / data 设置某个节点的勾选状态
-			 * @method setChecked
-			 * @param {all} data 勾选节点的 key 或者 data 
-			 * @param {Boolean} checked 节点是否选中
-			 * @param {Boolean} deep 是否设置子节点 ,默认为 false
-			*/
-			setChecked(data, checked, deep) {
-				this.store.setChecked(data, checked, deep);
-			},
-			
-			/*
-			 * @description 若节点可被选择(即 show-checkbox 为 true),则返回目前半选中的节点所组成的数组
-			 * @method getHalfCheckedNodes
-			 * @return {Array} 目前半选中的节点所组成的数组
-			*/
-			getHalfCheckedNodes() {
-				return this.store.getHalfCheckedNodes();
-			},
-			
-			/*
-			 * @description 若节点可被选择(即 show-checkbox 为 true),则返回目前半选中的节点的 key 所组成的数组
-			 * @method getHalfCheckedKeys
-			 * @return {Array} 目前半选中的节点的 key 所组成的数组
-			*/
-			getHalfCheckedKeys() {
-				return this.store.getHalfCheckedKeys();
-			},
-			
-			/*
-			 * @description 通过 node 设置某个节点的当前选中状态
-			 * @method setCurrentNode
-			 * @param {Object} node 待被选节点的 node
-			*/
-			setCurrentNode(node) {
-				if (!this.nodeKey) throw new Error('[Tree] nodeKey is required in setCurrentNode');
-				this.store.setUserCurrentNode(node);
-			},
-			
-			/*
-			 * @description 通过 key 设置某个节点的当前选中状态
-			 * @method setCurrentKey
-			 * @param {all} key 待被选节点的 key,若为 null 则取消当前高亮的节点
-			*/
-			setCurrentKey(key) {
-				if (!this.nodeKey) throw new Error('[Tree] nodeKey is required in setCurrentKey');
-				this.store.setCurrentNodeKey(key);
-			},
-			
-			/*
-			 * @description 根据 data 或者 key 拿到 Tree 组件中的 node
-			 * @method getNode
-			 * @param {all} data 要获得 node 的 key 或者 data
-			*/
-			getNode(data) {
-				return this.store.getNode(data);
-			},
-			
-			/*
-			 * @description 删除 Tree 中的一个节点
-			 * @method remove
-			 * @param {all} data 要删除的节点的 data 或者 node
-			*/
-			remove(data) {
-				this.store.remove(data);
-			},
-			
-			/*
-			 * @description 为 Tree 中的一个节点追加一个子节点
-			 * @method append
-			 * @param {Object} data 要追加的子节点的 data 
-			 * @param {Object} parentNode 子节点的 parent 的 data、key 或者 node
-			*/
-			append(data, parentNode) {
-				this.store.append(data, parentNode);
-			},
-			
-			/*
-			 * @description 为 Tree 的一个节点的前面增加一个节点
-			 * @method insertBefore
-			 * @param {Object} data 要增加的节点的 data 
-			 * @param {all} refNode 要增加的节点的后一个节点的 data、key 或者 node
-			*/
-			insertBefore(data, refNode) {
-				this.store.insertBefore(data, refNode);
-			},
-			
-			/*
-			 * @description 为 Tree 的一个节点的后面增加一个节点
-			 * @method insertAfter
-			 * @param {Object} data 要增加的节点的 data 
-			 * @param {all} refNode 要增加的节点的前一个节点的 data、key 或者 node
-			*/
-			insertAfter(data, refNode) {
-				this.store.insertAfter(data, refNode);
-			},
-			
-			/*
-			 * @description 通过 keys 设置节点子元素
-			 * @method updateKeyChildren
-			 * @param {String, Number} key 节点 key 
-			 * @param {Object} data 节点数据的数组
-			*/
-			updateKeyChildren(key, data) {
-				if (!this.nodeKey) throw new Error('[Tree] nodeKey is required in updateKeyChild');
-				this.store.updateChildren(key, data);
-			}
-		},
-		
-		created() {
-			this.isTree = true;
-			
-			let props = this.props;
-			if (typeof this.props === 'function') props = this.props();
-			if (typeof props !== 'object') throw new Error('props must be of object type.');
-			
-			this.store = new TreeStore({
-				key: this.nodeKey,
-				data: this.treeData,
-				lazy: this.lazy,
-				props: props,
-				load: this.load,
-				showCheckbox: this.showCheckbox,
-				showRadio: this.showRadio,
-				currentNodeKey: this.currentNodeKey,
-				checkStrictly: this.checkStrictly || this.checkOnlyLeaf,
-				checkDescendants: this.checkDescendants,
-				expandOnCheckNode: this.expandOnCheckNode,
-				defaultCheckedKeys: this.defaultCheckedKeys,
-				defaultExpandedKeys: this.defaultExpandedKeys,
-				expandCurrentNodeParent: this.expandCurrentNodeParent,
-				autoExpandParent: this.autoExpandParent,
-				defaultExpandAll: this.defaultExpandAll,
-				filterNodeMethod: this.filterNodeMethod,
-				childVisibleForFilterNode: this.childVisibleForFilterNode,
-				showNodeIcon: this.showNodeIcon,
-				isInjectParentInNode: this.isInjectParentInNode
-			});
-
-			this.childNodesId = this.store.root.childNodesId;
-		},
-		
-		beforeDestroy() {
-			if (this.accordion) {
-				uni.$off(`${this.elId}-tree-node-expand`)
-			}
-		}
-	};
-</script>
-
-<style>
-	.ly-tree {
-		position: relative;
-		cursor: default;
-		background: #FFF;
-		color: #606266;
-		padding: 30rpx;
-	}
-	
-	.ly-tree.is-empty {
-		background: transparent;
-	}
-	
-	/* lyEmpty-start */
-	.ly-empty {
-		width: 100%;
-		display: flex;
-		justify-content: center;
-		margin-top: 100rpx;
-	}
-	/* lyEmpty-end */
-	
-	/* lyLoader-start */
-	.ly-loader {
-		margin-top: 100rpx;
-		display: flex;
-		align-items: center;
-		justify-content: center;
-	}
-	
-	.ly-loader-inner,
-	.ly-loader-inner:before,
-	.ly-loader-inner:after {
-		background: #efefef;
-		animation: load 1s infinite ease-in-out;
-		width: .5em;
-		height: 1em;
-	}
-	
-	.ly-loader-inner:before,
-	.ly-loader-inner:after {
-		position: absolute;
-		top: 0;
-		content: '';
-	}
-	
-	.ly-loader-inner:before {
-		left: -1em;
-	}
-	
-	.ly-loader-inner {
-		text-indent: -9999em;
-		position: relative;
-		font-size: 22rpx;
-		animation-delay: 0.16s;
-	}
-	
-	.ly-loader-inner:after {
-		left: 1em;
-		animation-delay: 0.32s;
-	}
-	/* lyLoader-end */
-	
-	@keyframes load {
-		0%,
-		80%,
-		100% {
-			box-shadow: 0 0 #efefef;
-			height: 1em;
-		}
-	
-		40% {
-			box-shadow: 0 -1.5em #efefef;
-			height: 1.5em;
-		}
-	}
-</style>

+ 0 - 538
components/ly-tree/model/node.js

@@ -1,538 +0,0 @@
-import {
-	markNodeData,
-	objectAssign,
-	arrayFindIndex,
-	getChildState,
-	reInitChecked,
-	getPropertyFromData,
-	isNull,
-	NODE_KEY
-} from '../tool/util';
-
-const getStore = function(store) {
-	let thisStore = store;
-	
-	return function() {
-		return thisStore;
-	}
-}
-
-let nodeIdSeed = 0;
-
-export default class Node {
-	constructor(options) {
-		this.time = new Date().getTime();
-		this.id = nodeIdSeed++;
-		this.text = null;
-		this.checked = false;
-		this.indeterminate = false;
-		this.data = null;
-		this.expanded = false;
-		this.parentId = null;
-		this.visible = true;
-		this.isCurrent = false;
-
-		for (let name in options) {
-			if (options.hasOwnProperty(name)) {
-				if (name === 'store') {
-					this.store = getStore(options[name]);
-				} else {
-					this[name] = options[name];
-				}
-			}
-		}
-		
-		if (!this.store()) {
-			throw new Error('[Node]store is required!');
-		}
-
-		// internal
-		this.level = 0;
-		this.loaded = false;
-		this.childNodesId = [];
-		this.loading = false;
-		this.label = getPropertyFromData(this, 'label');
-		this.key = this._getKey();
-		this.disabled = getPropertyFromData(this, 'disabled');
-		this.nextSibling = null;
-		this.previousSibling = null;
-		this.icon = '';
-		
-		this._handleParentAndLevel();
-		this._handleProps();
-		this._handleExpand();
-		this._handleCurrent();
-		
-		if (this.store().lazy) {
-			this.store()._initDefaultCheckedNode(this);
-		}
-
-		this.updateLeafState();
-	}
-	
-	_getKey() {
-		if (!this.data || Array.isArray(this.data)) return null;
-		
-		if (typeof this.data === 'object') {
-			const nodeKey = this.store().key;
-			const key = this.data[nodeKey];
-			
-			if (typeof key === 'undefined') {
-				throw new Error(`您配置的node-key为"${nodeKey}",但数据中并未找到对应"${nodeKey}"属性的值,请检查node-key的配置是否合理`)
-			}
-			
-			return key;
-		}
-		
-		throw new Error('不合法的data数据');
-	}
-	
-	_handleParentAndLevel() {
-		if (this.parentId !== null) {
-			let parent = this.getParent(this.parentId);
-			
-			if (this.store().isInjectParentInNode) {
-				this.parent = parent;
-			}
-			
-			// 由于这里做了修改,默认第一个对象不会被注册到nodesMap中,所以找不到parent会报错,所以默认parent的level是0
-			if (!parent) {
-				parent = {
-					level: 0
-				}
-			} else {
-				const parentChildNodes = parent.getChildNodes(parent.childNodesId);
-				const index = parent.childNodesId.indexOf(this.key);
-				this.nextSibling = index > -1 ? parentChildNodes[index + 1] : null;
-				this.previousSibling = index > 0 ? parentChildNodes[index - 1] : null;
-			}
-			this.level = parent.level + 1;
-		}
-	}
-	
-	_handleProps() {
-		const props = this.store().props;
-		
-		if (this.store().showNodeIcon) {
-			if (props && typeof props.icon !== 'undefined') {
-				this.icon = getPropertyFromData(this, 'icon');
-			} else {
-				console.warn('请配置props属性中的"icon"字段')
-			}
-		}
-		
-		this.store().registerNode(this);
-		
-		if (props && typeof props.isLeaf !== 'undefined') {
-			const isLeaf = getPropertyFromData(this, 'isLeaf');
-			if (typeof isLeaf === 'boolean') {
-				this.isLeafByUser = isLeaf;
-			}
-		}
-	}
-	
-	_handleExpand() {
-		if (this.store().lazy !== true && this.data) {
-			this.setData(this.data);
-		
-			if (this.store().defaultExpandAll) {
-				this.expanded = true;
-			}
-		} else if (this.level > 0 && this.store().lazy && this.store().defaultExpandAll) {
-			this.expand();
-		}
-		
-		if (!Array.isArray(this.data)) {
-			markNodeData(this, this.data);
-		}
-		
-		if (!this.data) return;
-		
-		const defaultExpandedKeys = this.store().defaultExpandedKeys;
-		const key = this.store().key;
-		if (key && defaultExpandedKeys && defaultExpandedKeys.indexOf(this.key) !== -1) {
-			this.expand(null, this.store().autoExpandparent);
-		}
-	}
-	
-	_handleCurrent() {
-		const key = this.store().key;
-		
-		if (key && this.store().currentNodeKey !== undefined && this.key === this.store().currentNodeKey) {
-			this.store().currentNode = this;
-			this.store().currentNode.isCurrent = true;
-		}
-	}
-	
-	destroyStore() {
-		getStore(null)
-	}
-
-	setData(data) {
-		if (!Array.isArray(data)) {
-			markNodeData(this, data);
-		}
-
-		this.data = data;
-		this.childNodesId = [];
-
-		let children;
-		if (this.level === 0 && Array.isArray(this.data)) {
-			children = this.data;
-		} else {
-			children = getPropertyFromData(this, 'children') || [];
-		}
-
-		for (let i = 0, j = children.length; i < j; i++) {
-			this.insertChild({
-				data: children[i]
-			});
-		}
-	}
-
-	contains(target, deep = true) {
-		const walk = function(parent) {
-			const children = parent.getChildNodes(parent.childNodesId) || [];
-			let result = false;
-			for (let i = 0, j = children.length; i < j; i++) {
-				const child = children[i];
-				if (child === target || (deep && walk(child))) {
-					result = true;
-					break;
-				}
-			}
-			return result;
-		};
-
-		return walk(this);
-	}
-
-	remove() {
-		if (this.parentId !== null) {
-			const parent = this.getParent(this.parentId);
-			parent.removeChild(this);
-		}
-	}
-
-	insertChild(child, index, batch) {
-		if (!child) throw new Error('insertChild error: child is required.');
-
-		if (!(child instanceof Node)) {
-			if (!batch) {
-				const children = this.getChildren(true);
-				if (children.indexOf(child.data) === -1) {
-					if (typeof index === 'undefined' || index < 0) {
-						children.push(child.data);
-					} else {
-						children.splice(index, 0, child.data);
-					}
-				}
-			}
-			
-			objectAssign(child, {
-				parentId: isNull(this.key) ? '' : this.key,
-				store: this.store()
-			});
-			child = new Node(child);
-		}
-
-		child.level = this.level + 1;
-
-		if (typeof index === 'undefined' || index < 0) {
-			this.childNodesId.push(child.key);
-		} else {
-			this.childNodesId.splice(index, 0, child.key);
-		}
-
-		this.updateLeafState();
-	}
-
-	insertBefore(child, ref) {
-		let index;
-		if (ref) {
-			index = this.childNodesId.indexOf(ref.id);
-		}
-		this.insertChild(child, index);
-	}
-
-	insertAfter(child, ref) {
-		let index;
-		if (ref) {
-			index = this.childNodesId.indexOf(ref.id);
-			if (index !== -1) index += 1;
-		}
-		this.insertChild(child, index);
-	}
-
-	removeChild(child) {
-		const children = this.getChildren() || [];
-		const dataIndex = children.indexOf(child.data);
-		if (dataIndex > -1) {
-			children.splice(dataIndex, 1);
-		}
-		
-		const index = this.childNodesId.indexOf(child.key);
-		
-		if (index > -1) {
-			this.store() && this.store().deregisterNode(child);
-			child.parentId = null;
-			this.childNodesId.splice(index, 1);
-		}
-		
-		this.updateLeafState();
-	}
-
-	removeChildByData(data) {
-		let targetNode = null;
-
-		for (let i = 0; i < this.childNodesId.length; i++) {
-			let node = this.getChildNodes(this.childNodesId);
-			if (node[i].data === data) {
-				targetNode = node[i];
-				break;
-			}
-		}
-
-		if (targetNode) {
-			this.removeChild(targetNode);
-		}
-	}
-
-	// 为了避免APP端parent嵌套结构导致报错,这里parent需要从nodesMap中获取
-	getParent(parentId) {
-		try {
-			if (!parentId.toString()) return null;
-			return this.store().nodesMap[parentId];
-		} catch (error) {
-			return null;
-		}
-	}
-
-	// 为了避免APP端childNodes嵌套结构导致报错,这里childNodes需要从nodesMap中获取
-	getChildNodes(childNodesId) {
-		let childNodes = [];
-		if (childNodesId.length === 0) return childNodes;
-		childNodesId.forEach((key) => {
-			childNodes.push(this.store().nodesMap[key]);
-		})
-		return childNodes;
-	}
-
-	expand(callback, expandparent) {
-		const done = () => {
-			if (expandparent) {
-				let parent = this.getParent(this.parentId);
-				while (parent && parent.level > 0) {
-					parent.expanded = true;
-					parent = this.getParent(parent.parentId);
-				}
-			}
-			this.expanded = true;
-			if (callback) callback();
-		};
-
-		if (this.shouldLoadData()) {
-			this.loadData(function(data) {
-				if (Array.isArray(data)) {
-					if (this.checked) {
-						this.setChecked(true, true);
-					} else if (!this.store().checkStrictly) {
-						reInitChecked(this);
-					}
-					done();
-				}
-			});
-		} else {
-			done();
-		}
-	}
-
-	doCreateChildren(array, defaultProps = {}) {
-		array.forEach((item) => {
-			this.insertChild(objectAssign({
-				data: item
-			}, defaultProps), undefined, true);
-		});
-	}
-
-	collapse() {
-		this.expanded = false;
-	}
-
-	shouldLoadData() {
-		return this.store().lazy === true && this.store().load && !this.loaded;
-	}
-
-	updateLeafState() {
-		if (this.store().lazy === true && this.loaded !== true && typeof this.isLeafByUser !== 'undefined') {
-			this.isLeaf = this.isLeafByUser;
-			return;
-		}
-		const childNodesId = this.childNodesId;
-		if (!this.store().lazy || (this.store().lazy === true && this.loaded === true)) {
-			this.isLeaf = !childNodesId || childNodesId.length === 0;
-			return;
-		}
-		this.isLeaf = false;
-	}
-
-	setChecked(value, deep, recursion, passValue) {
-		this.indeterminate = value === 'half';
-		this.checked = value === true;
-		
-		if (this.checked && this.store().expandOnCheckNode) {
-			this.expand(null, true)
-		}
-		
-		if (this.store().checkStrictly) return;
-		if (this.store().showRadio) return;
-
-		if (!(this.shouldLoadData() && !this.store().checkDescendants)) {
-			let childNodes = this.getChildNodes(this.childNodesId);
-			let {
-				all,
-				allWithoutDisable
-			} = getChildState(childNodes);
-
-			if (!this.isLeaf && (!all && allWithoutDisable)) {
-				this.checked = false;
-				value = false;
-			}
-
-			const handleDescendants = () => {
-				if (deep) {
-					let childNodes = this.getChildNodes(this.childNodesId)
-					for (let i = 0, j = childNodes.length; i < j; i++) {
-						const child = childNodes[i];
-						passValue = passValue || value !== false;
-						const isCheck = child.disabled ? child.checked : passValue;
-						child.setChecked(isCheck, deep, true, passValue);
-					}
-					const {
-						half,
-						all
-					} = getChildState(childNodes);
-					
-					if (!all) {
-						this.checked = all;
-						this.indeterminate = half;
-					}
-				}
-			};
-
-			if (this.shouldLoadData()) {
-				this.loadData(() => {
-					handleDescendants();
-					reInitChecked(this);
-				}, {
-					checked: value !== false
-				});
-				return;
-			} else {
-				handleDescendants();
-			}
-		}
-
-		if (!this.parentId) return;
-
-		let parent = this.getParent(this.parentId);
-		if (parent && parent.level === 0) return;
-
-		if (!recursion) {
-			reInitChecked(parent);
-		}
-	}
-
-	setRadioChecked(value) {
-		const allNodes = this.store()._getAllNodes().sort((a, b) => b.level - a.level);
-		allNodes.forEach(node => node.setChecked(false, false));
-		this.checked = value === true;
-	}
-
-	getChildren(forceInit = false) {
-		if (this.level === 0) return this.data;
-		const data = this.data;
-		if (!data) return null;
-
-		const props = this.store().props;
-		let children = 'children';
-		if (props) {
-			children = props.children || 'children';
-		}
-
-		if (data[children] === undefined) {
-			data[children] = null;
-		}
-
-		if (forceInit && !data[children]) {
-			data[children] = [];
-		}
-
-		return data[children];
-	}
-
-	updateChildren() {
-		let childNodes = this.getChildNodes(this.childNodesId);
-		const newData = this.getChildren() || [];
-		const oldData = childNodes.map((node) => node.data);
-
-		const newDataMap = {};
-		const newNodes = [];
-
-		newData.forEach((item, index) => {
-			const key = item[NODE_KEY];
-			const isNodeExists = !!key && arrayFindIndex(oldData, data => data[NODE_KEY] === key) >= 0;
-			if (isNodeExists) {
-				newDataMap[key] = {
-					index,
-					data: item
-				};
-			} else {
-				newNodes.push({
-					index,
-					data: item
-				});
-			}
-		});
-
-		if (!this.store().lazy) {
-			oldData.forEach((item) => {
-				if (!newDataMap[item[NODE_KEY]]) this.removeChildByData(item);
-			});
-		}
-
-		newNodes.forEach(({
-			index,
-			data
-		}) => {
-			this.insertChild({
-				data
-			}, index);
-		});
-
-		this.updateLeafState();
-	}
-
-	loadData(callback, defaultProps = {}) {
-		if (this.store().lazy === true && 
-			this.store().load && !this.loaded && 
-			(!this.loading || Object.keys(defaultProps).length)
-		) {
-			this.loading = true;
-
-			const resolve = (children) => {
-				this.loaded = true;
-				this.loading = false;
-				this.childNodesId = [];
-				this.doCreateChildren(children, defaultProps);
-				this.updateLeafState();
-				
-				callback && callback.call(this,children);
-			};
-
-			this.store().load(this, resolve);
-		} else {
-			callback && callback.call(this);
-		}
-	}
-}

+ 0 - 419
components/ly-tree/model/tree-store.js

@@ -1,419 +0,0 @@
-import Node from './node';
-import {
-	getNodeKey,
-	getPropertyFromData
-} from '../tool/util';
-
-export default class TreeStore {
-	constructor(options) {
-		this.ready = false;
-		this.currentNode = null;
-		this.currentNodeKey = null;
-
-		Object.assign(this, options);
-
-		if (!this.key) {
-			throw new Error('[Tree] nodeKey is required');
-		}
-
-		this.nodesMap = {};
-		this.root = new Node({
-			data: this.data,
-			store: this
-		});
-
-		if (this.lazy && this.load) {
-			const loadFn = this.load;
-			loadFn(this.root, (data) => {
-				this.root.doCreateChildren(data);
-				this._initDefaultCheckedNodes();
-				this.ready = true;
-			});
-		} else {
-			this._initDefaultCheckedNodes();
-			this.ready = true;
-		}
-	}
-
-	filter(value, data) {
-		const filterNodeMethod = this.filterNodeMethod;
-		const lazy = this.lazy;
-		const _self = this;
-		const traverse = function(node) {
-			const childNodes = node.root ? node.root.getChildNodes(node.root.childNodesId) : node.getChildNodes(node.childNodesId);
-
-			childNodes.forEach((child) => {
-				if (data && typeof data === 'object') {
-					let nodePath = _self.getNodePath(child.data);
-					if (!nodePath.some(pathItem => pathItem[_self.key] === data[_self.key])) {
-						child.visible = false;
-						traverse(child);
-						return;
-					}
-				}
-				
-				if (_self.childVisibleForFilterNode) {
-					let parent = child.getParent(child.parentId);
-					child.visible = filterNodeMethod.call(child, value, child.data, child) || (parent && parent.visible);
-				} else {
-					child.visible = filterNodeMethod.call(child, value, child.data, child);
-				}
-				
-				traverse(child);
-			});
-
-			if (!node.visible && childNodes.length) {
-				let allHidden = true;
-				allHidden = !childNodes.some(child => child.visible);
-
-				if (node.root) {
-					node.root.visible = allHidden === false;
-				} else {
-					node.visible = allHidden === false;
-				}
-			}
-			
-			if (!value) return;
-
-			if (node.visible && !node.isLeaf && !lazy) node.expand();
-		};
-
-		traverse(this);
-	}
-
-	setData(newVal) {
-		const instanceChanged = newVal !== this.root.data;
-		if (instanceChanged) {
-			this.root.setData(newVal);
-			this._initDefaultCheckedNodes();
-		} else {
-			this.root.updateChildren();
-		}
-	}
-
-	getNode(data) {
-		if (data instanceof Node) return data;
-		const key = typeof data !== 'object' ? data : getNodeKey(this.key, data);
-		if (!key) return null;
-		return this.nodesMap[key] || null;
-	}
-
-	insertBefore(data, refData) {
-		const refNode = this.getNode(refData);
-		let parent = refNode.getParent(refNode.parentId);
-		parent.insertBefore({
-			data
-		}, refNode);
-	}
-
-	insertAfter(data, refData) {
-		const refNode = this.getNode(refData);
-		let parent = refNode.getParent(refNode.parentId);
-		parent.insertAfter({
-			data
-		}, refNode);
-	}
-
-	remove(data) {
-		const node = this.getNode(data);
-
-		if (node && node.parentId !== null) {
-			let parent = node.getParent(node.parentId);
-			if (node === this.currentNode) {
-				this.currentNode = null;
-			}
-			parent.removeChild(node);
-		}
-	}
-
-	append(data, parentData) {
-		const parentNode = parentData ? this.getNode(parentData) : this.root;
-
-		if (parentNode) {
-			parentNode.insertChild({
-				data
-			});
-		}
-	}
-
-	_initDefaultCheckedNodes() {
-		const defaultCheckedKeys = this.defaultCheckedKeys || [];
-		const nodesMap = this.nodesMap;
-		let checkedKeyfromData = [];
-		let totalCheckedKeys = []
-		
-		for (let key in nodesMap) {
-			let checked = getPropertyFromData(nodesMap[key], 'checked') || false;
-			checked && checkedKeyfromData.push(key);
-		}
-		
-		totalCheckedKeys = Array.from(new Set([...defaultCheckedKeys, ...checkedKeyfromData]));
-		totalCheckedKeys.forEach((checkedKey) => {
-			const node = nodesMap[checkedKey];
-			
-			if (node) {
-				node.setChecked(true, !this.checkStrictly);
-			}
-		});
-	}
-
-	_initDefaultCheckedNode(node) {
-		const defaultCheckedKeys = this.defaultCheckedKeys || [];
-
-		if (defaultCheckedKeys.indexOf(node.key) !== -1) {
-			node.setChecked(true, !this.checkStrictly);
-		}
-	}
-	
-	toggleExpendAll(isExpandAll) {
-		const allNodes = this._getAllNodes();
-		
-		allNodes.forEach(item => {
-			const node = this.getNode(item.key); 
-			
-			if (node) isExpandAll ? node.expand() : node.collapse();
-		});
-	}
-	
-	setCheckAll(isCkeckAll) {
-		const allNodes = this._getAllNodes();
-		
-		allNodes.forEach(item => {
-			item.setChecked(isCkeckAll, false);
-		}); 
-	}
-
-	setDefaultCheckedKey(newVal) {
-		if (newVal !== this.defaultCheckedKeys) {
-			this.defaultCheckedKeys = newVal;
-			this._initDefaultCheckedNodes();
-		}
-	}
-
-	registerNode(node) {
-
-		const key = this.key;
-		if (!key || !node || !node.data) return;
-
-		const nodeKey = node.key;
-		if (nodeKey !== undefined) this.nodesMap[node.key] = node;
-	}
-
-	deregisterNode(node) {
-		const key = this.key;
-		if (!key || !node || !node.data) return;
-
-		let childNodes = node.getChildNodes(node.childNodesId);
-		childNodes.forEach(child => {
-			this.deregisterNode(child);
-		});
-
-		delete this.nodesMap[node.key];
-	}
-	
-	getNodePath(data) {
-		if (!this.key) throw new Error('[Tree] nodeKey is required in getNodePath');
-		const node = this.getNode(data);
-		if (!node) return [];
-		
-		const path = [node.data];
-		let parent = node.getParent(node.parentId);
-		while (parent && parent !== this.root) {
-			path.push(parent.data);
-			parent = parent.getParent(parent.parentId);
-		}
-		return path.reverse();
-	}
-
-	getCheckedNodes(leafOnly = false, includeHalfChecked = false) {
-		const checkedNodes = [];
-		const traverse = function(node) {
-			const childNodes = node.root ? node.root.getChildNodes(node.root.childNodesId) : node.getChildNodes(node.childNodesId);
-
-			childNodes.forEach((child) => {
-				if ((child.checked || (includeHalfChecked && child.indeterminate)) && (!leafOnly || (leafOnly && child.isLeaf))) {
-					checkedNodes.push(child.data);
-				}
-
-				traverse(child);
-			});
-		};
-
-		traverse(this);
-
-		return checkedNodes;
-	}
-
-	getCheckedKeys(leafOnly = false, includeHalfChecked = false) {
-		return this.getCheckedNodes(leafOnly, includeHalfChecked).map((data) => (data || {})[this.key]);
-	}
-
-	getHalfCheckedNodes() {
-		const nodes = [];
-		const traverse = function(node) {
-			const childNodes = node.root ? node.root.getChildNodes(node.root.childNodesId) : node.getChildNodes(node.childNodesId);
-
-			childNodes.forEach((child) => {
-				if (child.indeterminate) {
-					nodes.push(child.data);
-				}
-
-				traverse(child);
-			});
-		};
-
-		traverse(this);
-
-		return nodes;
-	}
-
-	getHalfCheckedKeys() {
-		return this.getHalfCheckedNodes().map((data) => (data || {})[this.key]);
-	}
-
-	_getAllNodes() {
-		const allNodes = [];
-		const nodesMap = this.nodesMap;
-		for (let nodeKey in nodesMap) {
-			if (nodesMap.hasOwnProperty(nodeKey)) {
-				allNodes.push(nodesMap[nodeKey]);
-			}
-		}
-
-		return allNodes;
-	}
-
-	updateChildren(key, data) {
-		const node = this.nodesMap[key];
-		if (!node) return;
-		const childNodes = node.getChildNodes(node.childNodesId);
-		for (let i = childNodes.length - 1; i >= 0; i--) {
-			const child = childNodes[i];
-			this.remove(child.data);
-		}
-		for (let i = 0, j = data.length; i < j; i++) {
-			const child = data[i];
-			this.append(child, node.data);
-		}
-	}
-
-	_setCheckedKeys(key, leafOnly = false, checkedKeys) {
-		const allNodes = this._getAllNodes().sort((a, b) => b.level - a.level);
-		const cache = Object.create(null);
-		const keys = Object.keys(checkedKeys);
-		allNodes.forEach(node => node.setChecked(false, false));
-		for (let i = 0, j = allNodes.length; i < j; i++) {
-			const node = allNodes[i];
-			let nodeKey = node.data[key];
-			
-			if (typeof nodeKey === 'undefined') continue;
-			
-			nodeKey = nodeKey.toString();
-			let checked = keys.indexOf(nodeKey) > -1;
-			if (!checked) {
-				if (node.checked && !cache[nodeKey]) {
-					node.setChecked(false, false);
-				}
-				continue;
-			}
-
-			let parent = node.getParent(node.parentId);
-			while (parent && parent.level > 0) {
-				cache[parent.data[key]] = true;
-				parent = parent.getParent(parent.parentId);
-			}
-
-			if (node.isLeaf || this.checkStrictly) {
-				node.setChecked(true, false);
-				continue;
-			}
-			node.setChecked(true, true);
-
-			if (leafOnly) {
-				node.setChecked(false, false);
-				const traverse = function(node) {
-					const childNodes = node.getChildNodes(node.childNodesId);
-					childNodes.forEach((child) => {
-						if (!child.isLeaf) {
-							child.setChecked(false, false);
-						}
-						traverse(child);
-					});
-				};
-				traverse(node);
-			}
-		}
-	}
-
-	setCheckedNodes(array, leafOnly = false) {
-		const key = this.key;
-		const checkedKeys = {};
-		array.forEach((item) => {
-			checkedKeys[(item || {})[key]] = true;
-		});
-
-		this._setCheckedKeys(key, leafOnly, checkedKeys);
-	}
-
-	setCheckedKeys(keys, leafOnly = false) {
-		this.defaultCheckedKeys = keys;
-		const key = this.key;
-		const checkedKeys = {};
-		keys.forEach((key) => {
-			checkedKeys[key] = true;
-		});
-
-		this._setCheckedKeys(key, leafOnly, checkedKeys);
-	}
-
-	setDefaultExpandedKeys(keys) {
-		keys = keys || [];
-		this.defaultExpandedKeys = keys;
-
-		keys.forEach((key) => {
-			const node = this.getNode(key);
-			if (node) node.expand(null, this.autoExpandParent);
-		});
-	}
-
-	setChecked(data, checked, deep) {
-		const node = this.getNode(data);
-
-		if (node) {
-			node.setChecked(!!checked, deep);
-		}
-	}
-
-	getCurrentNode() {
-		return this.currentNode;
-	}
-
-	setCurrentNode(currentNode) {
-		const prevCurrentNode = this.currentNode;
-		if (prevCurrentNode) {
-			prevCurrentNode.isCurrent = false;
-		}
-		this.currentNode = currentNode;
-		this.currentNode.isCurrent = true;
-		
-		this.expandCurrentNodeParent && this.currentNode.expand(null, true)
-	}
-
-	setUserCurrentNode(node) {
-		const key = node[this.key];
-		const currNode = this.nodesMap[key];
-		this.setCurrentNode(currNode);
-	}
-
-	setCurrentNodeKey(key) {
-		if (key === null || key === undefined) {
-			this.currentNode && (this.currentNode.isCurrent = false);
-			this.currentNode = null;
-			return;
-		}
-		const node = this.getNode(key);
-		if (node) {
-			this.setCurrentNode(node);
-		}
-	}
-};

+ 0 - 115
components/ly-tree/tool/util.js

@@ -1,115 +0,0 @@
-export const NODE_KEY = '$treeNodeId';
-
-export const markNodeData = function(node, data) {
-	if (!data || data[NODE_KEY]) return;
-	Object.defineProperty(data, NODE_KEY, {
-		value: node.id,
-		enumerable: false,
-		configurable: false,
-		writable: false
-	});
-};
-
-export const getNodeKey = function(key, data) {
-	if (!data) return null;
-	if (!key) return data[NODE_KEY];
-	return data[key];
-};
-
-export const objectAssign = function(target) {
-	for (let i = 1, j = arguments.length; i < j; i++) {
-		let source = arguments[i] || {};
-		for (let prop in source) {
-			if (source.hasOwnProperty(prop)) {
-				let value = source[prop];
-				if (value !== undefined) {
-					target[prop] = value;
-				}
-			}
-		}
-	}
-
-	return target;
-};
-
-// TODO: use native Array.find, Array.findIndex when IE support is dropped
-export const arrayFindIndex = function(arr, pred) {
-	for (let i = 0; i !== arr.length; ++i) {
-		if (pred(arr[i])) {
-			return i;
-		}
-	}
-	return -1;
-};
-
-export const getChildState = function(node) {
-	let all = true;
-	let none = true;
-	let allWithoutDisable = true;
-	for (let i = 0, j = node.length; i < j; i++) {
-		const n = node[i];
-		if (n.checked !== true || n.indeterminate) {
-			all = false;
-			if (!n.disabled) {
-				allWithoutDisable = false;
-			}
-		}
-		if (n.checked !== false || n.indeterminate) {
-			none = false;
-		}
-	}
-
-	return {
-		all,
-		none,
-		allWithoutDisable,
-		half: !all && !none
-	};
-};
-
-export const reInitChecked = function(node) {
-	if (!node || node.childNodesId.length === 0) return;
-
-	let childNodes = node.getChildNodes(node.childNodesId);
-	const {
-		all,
-		none,
-		half
-	} = getChildState(childNodes);
-	if (all) {
-		node.checked = true;
-		node.indeterminate = false;
-	} else if (half) {
-		node.checked = false;
-		node.indeterminate = true;
-	} else if (none) {
-		node.checked = false;
-		node.indeterminate = false;
-	}
-
-	let parent = node.getParent(node.parentId);
-	if (!parent || parent.level === 0) return;
-
-	if (!node.store().checkStrictly) {
-		reInitChecked(parent);
-	}
-};
-
-export const getPropertyFromData = function(node, prop) {
-	const props = node.store().props;
-	const data = node.data || {};
-	const config = props[prop];
-
-	if (typeof config === 'function') {
-		return config(data, node);
-	} else if (typeof config === 'string') {
-		return data[config];
-	} else if (typeof config === 'undefined') {
-		const dataProp = data[prop];
-		return dataProp === undefined ? '' : dataProp;
-	}
-};
-
-export const isNull = function(v) {
-	return v === undefined || v === null || v === '';
-}

BIN
components/t-c-contacts/icon/ICE.png


BIN
components/t-c-contacts/icon/you.png


+ 0 - 150
components/t-c-contacts/t-c-contacts.vue

@@ -1,150 +0,0 @@
-<template>
-	<view class="box">
-		<view class="ul">
-			<view class="li" @click="tankuang()">
-				<image src="./icon/bangong.png" mode=""></image>
-				<text>办公品领用</text>
-			</view>
-			<view class="li" @click="tankuang()">
-				<image src="./icon/yongyin.png" mode=""></image>
-				<text>用印申请</text>
-			</view>
-			<view class="li" @click="tankuang()">
-				<image src="./icon/qingjia.png" mode=""></image>
-				<text>请假</text>
-			</view>
-			<view class="li" @click="tankuang()">
-				<image src="./icon/qita.png" mode=""></image>
-				<text>其他申请</text>
-			</view>
-		</view>
-
-		<view class="box_info">
-			<view class="box_info_nengyuan">
-				<image src="./icon/ICE.png" mode=""></image>
-				<text>国家能源集团枣泉煤矿</text>
-			</view>
-			<view class="box_info_item">
-				<view class="box_info_item_li" @click="dianji()">
-					<image src="./icon/jiagou.png" mode=""></image>
-					<text class="box_info_item_li_text">组织架构</text>
-					<uni-icons type="arrowright" class="icons"></uni-icons>
-				</view>
-				<view class="box_info_item_li">
-					<image src="./icon/bumen.png" mode=""></image>
-					<text class="box_info_item_li_text">我的部门</text>
-					<uni-icons type="arrowright"></uni-icons>
-				</view>
-			</view>
-		</view>
-	</view>
-</template>
-
-<script>
-	export default {
-		data() {
-			return {
-
-			};
-		},
-		methods: {
-			dianji(){
-				uni.navigateTo({
-					url:"../../origanization/t-c-c-contacts-info/t-c-c-contacts-info"
-				})
-			},
-			tankuang(){
-				uni.showToast({
-					icon:"none",
-					title:"暂未开通"
-				})
-			}
-		},
-		onLoad() {
-
-		}
-	}
-</script>
-
-<style>
-	.ul {
-		width: 100%;
-		display: flex;
-		justify-content: space-around;
-		background-color: #fff;
-		padding: 30rpx 0px;
-	}
-
-	.li {
-		width: 20%;
-		text-align: center;
-	}
-
-	.li>image {
-		width: 90rpx;
-		height: 90rpx;
-		display: block;
-		margin: 0 auto;
-	}
-
-	.li>text {
-		font-size: 28rpx;
-	}
-
-	.box_info {
-		width: 100%;
-		background-color: #fff;
-		margin-top: 10px;
-	}
-
-	.box_info_nengyuan {
-		width: 95%;
-		height: 70px;
-		line-height: 80px;
-		margin: auto;
-		display: flex;
-		border-bottom: 1px solid #f5f5f5;
-	}
-
-	.box_info_nengyuan>image {
-		margin-top: 20px;
-		width: 80rpx;
-		height: 80rpx;
-	}
-
-	.box_info_nengyuan>text {
-		font-size: 18px;
-		font-weight: 800;
-		margin-left: 10px;
-	}
-
-	.box_info_item {
-		width: 90%;
-		margin: auto;
-	}
-
-	.box_info_item_li {
-		display: flex;
-		height: 60px;
-		line-height: 64px;
-		border-bottom: 1px solid #f5f5f5;
-	}
-
-	.box_info_item_li>image {
-		width: 50rpx;
-		height: 50rpx;
-		margin-top: 20px;
-	}
-
-	.box_info_item_li>.box_info_item_li_text {
-		width: 80%;
-		font-size: 16px;
-		margin-left: 10px;
-	}
-
-	.box_info_item_li>.box_info_item_li_img {
-		width: 25rpx;
-		height: 25rpx;
-		margin-top: 25px;
-	}
-</style>

+ 1 - 1
components/t-i-common/t-i-common.vue

@@ -2,7 +2,7 @@
 	<view class="content">
 		<view class="title">常用功能</view>
 		<view class="list">
-			<view class="item" v-for="item in 7">
+			<view class="item" v-for="(item,index) in 7" :key="index">
 				<view class="icon">
 					<image src="./icon/icon.png" mode=""></image>
 				</view>

+ 27 - 3
components/t-i-navbar/t-i-navbar.vue

@@ -29,8 +29,14 @@
 					<view class="icon">
 						<image src="./icon/day.png" mode=""></image>
 					</view>
-					<view class="num">21℃</view>
+					<view class="num">{{temperature_curr}}</view>
 				</view>
+				<!-- <view class="right" v-show="show">
+					<view class="icon" style="margin-right: 4rpx;">
+						积分
+					</view>
+					<view class="num">999分</view>
+				</view> -->
 			</view>
 		</view>
 		
@@ -44,12 +50,26 @@
 		name: "t-i-navbar",
 		data() {
 			return {
-				mine_code:""
+				mine_code:"",
+				
+				// 当前温度
+				temperature_curr:"",
 			};
 		},
 		created() {
 			// 初始化当前煤矿编码
 			this.mine_code = uni.getStorageSync('mine_code')
+			
+			// 当前温度
+			uni.request({
+				url:"http://api.k780.com/?app=weather.today&weaId=286&appkey=10003&sign=b59bc3ef6191eb9f747dd4e83c99f2a4&format=json",
+				method:"GET",
+				success:(res)=> {
+					console.log(res.data.result.temperature_curr)
+					this.temperature_curr = res.data.result.temperature_curr
+				}
+			})
+			
 		},
 		methods:{
 			switch_kuang(){
@@ -140,6 +160,10 @@
 			}
 		}
 		.right{
+			white-space: nowrap;
+			color: #FFFFFF;
+			font-size: 24rpx;
+			width: 124rpx;
 			margin-left: 20rpx;
 			border-left: 2rpx solid #FFFFFF;
 			box-sizing: border-box;
@@ -147,7 +171,7 @@
 			
 			display: flex;
 			align-items: center;
-			justify-content: space-between;
+			justify-content: space-around;
 			height: 40rpx;
 			
 			.icon{

components/t-c-contacts/icon/bangong.png → components/t-o-zaoquan/icon/bangong.png


components/t-c-contacts/icon/bumen.png → components/t-o-zaoquan/icon/bumen.png


components/t-c-contacts/icon/jiagou.png → components/t-o-zaoquan/icon/jiagou.png


components/t-c-contacts/icon/qingjia.png → components/t-o-zaoquan/icon/qingjia.png


components/t-c-contacts/icon/qita.png → components/t-o-zaoquan/icon/qita.png


BIN
components/t-o-zaoquan/icon/title_icon.png


components/t-c-contacts/icon/yongyin.png → components/t-o-zaoquan/icon/yongyin.png


+ 146 - 0
components/t-o-zaoquan/t-o-zaoquan.vue

@@ -0,0 +1,146 @@
+<template>
+	<view>
+		<view class="list">
+			<view class="item">
+				<view class="icon">
+					<image src="./icon/bangong.png" mode=""></image>
+				</view>
+				<view class="text">办公品领用</view>
+			</view>
+			<view class="item">
+				<view class="icon">
+					<image src="./icon/yongyin.png" mode=""></image>
+				</view>
+				<view class="text">用印申请</view>
+			</view>
+			<view class="item">
+				<view class="icon">
+					<image src="./icon/qingjia.png" mode=""></image>
+				</view>
+				<view class="text">请假</view>
+			</view>
+			<view class="item">
+				<view class="icon">
+					<image src="./icon/qita.png" mode=""></image>
+				</view>
+				<view class="text">其他申请</view>
+			</view>
+		</view>
+		
+		<view class="content">
+			<view class="title">
+				<view class="icon">
+					<image src="./icon/title_icon.png" mode=""></image>
+				</view>
+				<view class="text">国家能源集团枣泉煤矿</view>
+			</view>
+			<view class="box">
+				<view class="item" @click="go_zaoquan_origanization()">
+					<view class="icon">
+						<image src="./icon/jiagou.png" mode=""></image>
+					</view>
+					<view class="text">组织架构</view>
+				</view>
+				<view class="item">
+					<view class="icon">
+						<image src="./icon/bumen.png" mode=""></image>
+					</view>
+					<view class="text">我的部门</view>
+				</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		name:"t-o-zaoquan",
+		data() {
+			return {
+				
+			};
+		},
+		methods:{
+			go_zaoquan_origanization(){
+				uni.navigateTo({
+					url:"../../origanization/zaoquan/origanization/origanization"
+				})
+			}
+		}
+	}
+</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;
+		.title{
+			height: 110rpx;
+			display: flex;
+			align-items: center;
+			
+			box-sizing: border-box;
+			padding: 0 36rpx;
+			border-bottom: 1rpx solid #F3F8F7;
+			.icon{
+				image{
+					width: 48rpx;
+					height: 36rpx;
+				}
+			}
+			.text{
+				margin-left: 20rpx;
+				font-size: 38rpx;
+				font-weight: 700;
+			}
+		}
+		.box{
+			box-sizing: border-box;
+			padding: 0 50rpx;
+			.item{
+				height: 110rpx;
+				
+				display: flex;
+				align-items: center;
+				
+				border-bottom: 1rpx solid #F3F8F7;
+				
+				.icon{
+					image{
+						width: 36rpx;
+						height: 36rpx;
+					}
+				}
+				.text{
+					margin-left: 20rpx;
+					font-size: 32rpx;
+				}
+			}
+		}
+	}
+</style>

+ 36 - 4
components/t-p-zaoquan/t-p-zaoquan.vue

@@ -24,7 +24,7 @@
 			</view>
 			<view class="text">
 				<view class="name">安全监测</view>
-				<!-- <view class="tip">6268监测点</view> -->
+				<view class="tip"></view>
 			</view>
 		</view>
 		<view class="item_box" style="background-color: #FBB47B;" @click="go_video_monitor()">
@@ -36,10 +36,30 @@
 				<view class="tip">工业视频</view>
 			</view>
 		</view>
+		<view class="item_box" style="background-color: #D3D5D8;"
+			@click="go_power_monitoring()">
+			<view class="img">
+				<image src="../t-p-icon/icon_7.png" mode=""></image>
+			</view>
+			<view class="text">
+				<view class="name">电力监控</view>
+				<view class="tip"></view>
+			</view>
+		</view>
+		<view class="item_box" style="background-color: #31B3F7;"
+			@click="go_mine_water_treatment()">
+			<view class="img">
+				<image src="../t-p-icon/icon_11.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/zaoquan/djtf/#/')">
 			<view class="img">
-				<image src="../t-p-icon/icon_10.png" mode=""></image>
+				<image src="../t-p-icon/icon_5.png" mode=""></image>
 			</view>
 			<view class="text">
 				<view class="name">通风管理</view>
@@ -49,7 +69,7 @@
 		<view class="item_box" style="background-color: #9CE2A6;"
 			@click="go_zdhxt('http://webdevelop.nxjiewei.com/assets/html/zaoquan/xjtf/#/')">
 			<view class="img">
-				<image src="../t-p-icon/icon_10.png" mode=""></image>
+				<image src="../t-p-icon/icon_5.png" mode=""></image>
 			</view>
 			<view class="text">
 				<view class="name">通风管理</view>
@@ -169,6 +189,18 @@
 				uni.navigateTo({
 					url: "../../production/video_monitor/video_monitor?mine_code=" + this.mine_code
 				})
+			},
+			// 电力监控
+			go_power_monitoring(){
+				uni.navigateTo({
+					url: "../../production/zaoquan/power_monitoring/power_monitoring"
+				})
+			},
+			// 矿井水处理
+			go_mine_water_treatment(){
+				uni.navigateTo({
+					url: "../../production/zaoquan/mine_water_treatment/mine_water_treatment"
+				})
 			}
 		}
 	}
@@ -196,7 +228,7 @@
 				box-sizing: border-box;
 				padding-top: 40rpx;
 				text-align: center;
-
+				
 				image {
 					width: 140rpx;
 					height: 140rpx;

+ 0 - 100
components/t-w-application1/t-w-application1.vue

@@ -1,100 +0,0 @@
-<template>
-	<view class="headers">
-		<view class="headers_list" v-for="(item,index) in infos" :key="index">
-			<view class="headers_title">
-				<text class="headers_title_h1">
-					{{item.title}}				
-				</text>	
-				<!-- <text class="headers_title_h2">
-					{{item.titles}}				
-				</text>	 -->
-			</view>	
-			<view class="headers_ul" >
-				<view class="headers_li" v-for="(items,index) in item.lists" :key="index">
-					<view class="headers_li_img">
-						<image :src="items.imgs" mode=""></image>
-					</view>
-					<view class="headers_li_text">  
-						{{items.texts}}
-					</view>
-				</view>
-			</view>
-		</view>	
-	</view>
-</template>
-
-<script>
-	export default {
-		data() {
-			return {
-				infos:[
-					{title:"我的常用",
-					titles:"(长按图标可添加删除)",
-					lists:[
-						{imgs:"/../static/img/tongzhi.png",texts:"通知公告"},
-						{imgs:"/../static/img/daiban.png",texts:"待办工作"},
-						{imgs:"/../static/img/zhiban.png",texts:"值班信息"},
-						{imgs:"/../static/img/banzu.png",texts:"班组信息"},
-					]},
-					{title:"我的常用",
-					titles:"(长按图标可添加删除)",
-					lists:[
-						{imgs:"/../static/img/tongzhi.png",texts:"通知公告"},
-						{imgs:"/../static/img/daiban.png",texts:"待办工作"},
-						{imgs:"/../static/img/zhiban.png",texts:"值班信息"},
-						{imgs:"/../static/img/banzu.png",texts:"班组信息"},
-					]},
-					{title:"我的常用",
-					titles:"(长按图标可添加删除)",
-					lists:[
-						{imgs:"/../static/img/tongzhi.png",texts:"通知公告"},
-						{imgs:"/../static/img/daiban.png",texts:"待办工作"},
-						{imgs:"/../static/img/zhiban.png",texts:"值班信息"},
-						{imgs:"/../static/img/banzu.png",texts:"班组信息"},
-					]},
-				]
-			};
-		}
-	}
-</script>
-
-<style >
-	.headers{
-		width: 95%;
-		margin: 15rpx auto;
-		/* background-color: #fff; */
-		/* border-radius: 40rpx; */
-	}
-	.headers_ul{
-		display: flex;
-		flex-direction: row;
-		justify-content: space-around;
-		margin-top: 10rpx;
-	}
-	.headers_title{
-		margin-left: 40rpx;
-		padding-top: 10rpx;
-		padding-bottom: 5rpx;
-	}
-	.headers_li{
-		text-align: center;
-		margin-bottom: 10rpx;
-	}
-	.headers_li_img>image{
-		width: 100rpx;
-		height: 100rpx;
-	}
-	.headers_li_text{
-		font-size: 14px;
-	}
-	.headers_title_h2{
-		font-size: 12rpx;
-		color: #8F939C;
-	}
-	.headers_list{
-		background-color: #FFFFFF;
-		margin-bottom: 20rpx;
-		margin-top: 20rpx;
-		border-radius: 40rpx;
-	}
-</style>

BIN
components/t-w-icon/banzu.png


BIN
components/t-w-icon/daiban.png


BIN
components/t-w-icon/tongzhi.png


BIN
components/t-w-icon/zhiban.png


+ 28 - 3
components/t-w-application/t-w-application.vue

@@ -22,9 +22,6 @@
 				<text class="headers_title_h1">
 					{{item.title}}				
 				</text>	
-				<!-- <text class="headers_title_h2">
-					{{item.titles}}				
-				</text>	 -->
 			</view>
 			<view class="headers_ul" >
 				<view class="headers_li" v-for="(items,index) in item.children" :key="index" @click="getmodule(items.link)">
@@ -61,6 +58,7 @@
 				this.$api.workbench_index({
 		
 				}).then((res)=>{
+					console.log(res)
 					this.header=res.data.data.header
 					this.nav=res.data.data.nav
 					this.module=res.data.data.module
@@ -98,6 +96,12 @@
 				// 原生
 				if(link.indexOf("pageId") == -1 && link.indexOf("app:") != -1){
 					console.log("原生")
+					
+					console.log(link)
+					// 发票助手
+					if(link.indexOf("/workBench/invoice") != -1){
+						console.log("发票助手")
+					}
 				}
 			},
 			getmodule(link){
@@ -133,6 +137,27 @@
 				// 原生
 				if(link.indexOf("pageId") == -1 && link.indexOf("app:") != -1){
 					console.log("原生")
+					
+					console.log(link)
+					// 发票助手
+					if(link.indexOf("/workBench/invoice") != -1){
+						console.log("发票助手")
+						uni.navigateTo({
+							url:"../../workbench/invoice_assistant/invoice_assistant"
+						})
+					}
+					// 下井记录
+					if(link.indexOf("/productionData/logging") != -1){
+						console.log("下井记录")
+						// uni.navigateTo({
+						// 	url:"../../production/personnel_orientation/downhole_statistics/downhole_statistics?people_num="+people_num+"&depart_name="+depart_name+"&name="+name+"&mine="+this.mine
+						// })
+						
+						// people_num 特殊值
+						uni.navigateTo({
+							url:"../../production/personnel_orientation/downhole_statistics/downhole_statistics"
+						})
+					}
 				}
 				
 			}

+ 3 - 1
manifest.json

@@ -54,7 +54,9 @@
             /* ios打包配置 */
             "ios" : {},
             /* SDK配置 */
-            "sdkConfigs" : {},
+            "sdkConfigs" : {
+                "ad" : {}
+            },
             "icons" : {
                 "android" : {
                     "hdpi" : "unpackage/res/icons/72x72.png",

+ 34 - 11
pages.json

@@ -244,22 +244,45 @@
 				"navigationStyle": "custom"
 			}
 
-		},{
-			"path": "pages/origanization/t-c-c-contacts-info/t-c-c-contacts-info",
+		}, {
+			"path": "pages/workbench/h5/h5",
+			"style": {
+				// "navigationStyle": "custom"
+				"navigationBarTitleText": " "
+			}
+
+		}, {
+			"path": "pages/production/zaoquan/power_monitoring/power_monitoring",
+			"style": {
+				"navigationBarTitleText": "电力监控"
+			}
+
+		}, {
+			"path": "pages/production/zaoquan/mine_water_treatment/mine_water_treatment",
+			"style": {
+				"navigationBarTitleText": "矿井水处理"
+			}
+
+		}, {
+			"path": "pages/index/record/h5/h5",
+			"style": {
+				"navigationBarTitleText": " "
+			}
+
+		}, {
+			"path": "pages/origanization/zaoquan/origanization/origanization",
 			"style": {
 				"navigationBarTitleText": "组织架构"
 			}
 
+		}, {
+			"path": "pages/workbench/invoice_assistant/invoice_assistant",
+			"style": {
+				"navigationBarTitleText": "发票助手"
+			}
+
 		}
-	    ,{
-            "path" : "pages/workbench/h5/h5",
-            "style" :                                                                                    
-            {
-				"navigationStyle":"custom"
-            }
-            
-        }
-    ],
+	],
 	"globalStyle": {
 		"navigationBarTextStyle": "white",
 		"navigationBarTitleText": " ",

+ 22 - 0
pages/index/record/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>

+ 1 - 1
pages/ningdongyunying/personnel_orientation/personnel_orientation.vue

@@ -6,7 +6,7 @@
 		</view>
 
 		<view class="list">
-			<view class="item" v-for="item in 3">
+			<view class="item" v-for="(item,index) in 3" :key="index">
 				<view class="title">红柳煤矿</view>
 				<view class="inner">
 					<view class="box">

+ 1 - 1
pages/ningdongyunying/risk_precontrol/detail/detail.vue

@@ -1,6 +1,6 @@
 <template>
 	<view class="content">
-		<view class="item" v-for="item in 3">
+		<view class="item" v-for="(item,index) in 3" :key="index">
 			<view class="title">
 				<view class="left">队部</view>
 				<view class="right">扣分:0.03</view>

+ 2 - 2
pages/ningdongyunying/risk_precontrol/risk_precontrol.vue

@@ -1,7 +1,7 @@
 <template>
 	<view class="content">
 		<view class="list">
-			<view class="item" v-for="item in 6" @click="open_draw()">
+			<view class="item" v-for="(item,index) in 6" :key="index" @click="open_draw()">
 				<view class="inner">
 					<view class="left">
 						<view class="name">汝其沟无烟煤分公司</view>
@@ -23,7 +23,7 @@
 			<view class="drawer">
 				<view class="title">汝其沟无烟煤分公司</view>
 				<view class="container">
-					<view class="item" v-for="item in 4" @click="go_detail()">
+					<view class="item" v-for="(item,index) in 4" :key="index" @click="go_detail()">
 						<view class="inner">
 							<view class="left">
 								<view class="name">白芨沟矿山救护队</view>

BIN
pages/origanization/t-c-c-contacts-info/icon/ICE.png


BIN
pages/origanization/t-c-c-contacts-info/icon/searc1.png


+ 0 - 160
pages/origanization/t-c-c-contacts-info/t-c-c-contacts-info.vue

@@ -1,160 +0,0 @@
-<template>
-	<view class="box">
-		<view class="headers">
-			<view class="height"></view>
-			<view class="headers_input">
-				<image src="./icon/searc1.png" mode=""></image>
-				<input type="filter" placeholder="搜索" v-model="filterText" />
-			</view>
-		</view>
-		<view class="box_info_nengyuan">
-			<image src="./icon/ICE.png" mode=""></image>
-			<text>国家能源集团枣泉煤矿</text>
-		</view>
-		<ly-tree :tree-data="treeData" :ready="ready" node-key="id" ref="tree" :filter-node-method="filterNodeMethod">
-		</ly-tree>
-	</view>
-</template>
-
-<script>
-	import LyTree from '@/components/ly-tree/ly-tree.vue'
-	export default {
-		components: {
-			LyTree
-		},
-		data() {
-			return {
-				ready: false,
-				treeData: [
-
-				],
-				searchVal: "",
-				filterText: ""
-			};
-		},
-		created() {
-			this.ready = true;
-			this.getcontactsinfo()
-		},
-		watch: {
-			filterText(val) {
-				this.$refs.tree.filter(val);
-			}
-		},
-		methods: {
-			getcontactsinfo() {
-				this.$api.section_getlisttree({
-					txl: "txl"
-				}).then((res) => {
-					this.treeData = res.data.data
-				})
-			},
-			filterNodeMethod(value, data) {
-				if (!value) return true;
-				return data.label.indexOf(value) !== -1;
-			},
-		},
-	}
-</script>
-
-<style>
-	page {
-		background-color: #f5f5f5;
-	}
-
-	.box_info_nengyuan {
-		width: 100%;
-		height: 60px;
-		line-height: 60px;
-		margin: auto;
-		display: flex;
-		border-bottom: 1px solid #f5f5f5;
-		background-color: #fff;
-		/* margin-top: 10px; */
-	}
-
-	.box_info_nengyuan>image {
-		margin-top: 10px;
-		margin-left: 15px;
-		width: 40px;
-		height: 40px;
-	}
-
-	.box_info_nengyuan>text {
-		font-size: 18px;
-		font-weight: 500;
-		margin-left: 10px;
-	}
-
-	.headers {
-		width: 100%;
-		height: 120rpx;
-		background-color: #FFF;
-		margin-bottom: 20rpx;
-	}
-
-	.headers_input {
-		width: 80%;
-		background-color: #f5f5f5;
-		margin: 0 auto;
-		border-radius: 40rpx;
-		position: relative;
-		margin-top: 30rpx;
-	}
-
-	.headers_input>input {
-		width: 80%;
-		margin-left: 50rpx;
-		height: 60rpx;
-	}
-
-	.headers_input>image {
-		width: 40rpx;
-		height: 40rpx;
-		position: absolute;
-		z-index: 99999;
-		left: 1%;
-		top: 16%;
-	}
-
-	.height {
-		height: 1rpx;
-	}
-
-	/deep/.ly-tree-node__label {
-		color: #000000;
-		font-size: 34rpx;
-	}
-
-	>>>.ly-icon-caret-right:before {
-		background: url("./icon/zk1.png") no-repeat 0 0px;
-		content: '';
-		display: block;
-		width: 16px;
-		height: 16px;
-		font-size: 16px;
-		background-size: 16px;
-	}
-	>>>.ly-tree-node__expand-icon.expanded{
-		    transform: rotate(0deg);
-	}
-	>>>.ly-tree-node__expand-icon.expanded:before {
-		background: url("./icon/zk2.png") no-repeat 0 0px;
-		content: '';
-		display: block;
-		width: 16px;
-		height: 16px;
-		font-size: 16px;
-		background-size: 16px;
-	}
-
-	>>>.ly-tree-node__expand-icon.is-leaf::before {
-		background: url("") no-repeat 0 0px;
-		content: '';
-		display: block;
-		width: 16px;
-		height: 16px;
-		font-size: 16px;
-		background-size: 16px;
-	}
-</style>

pages/origanization/t-c-c-contacts-info/icon/zk2.png → pages/origanization/zaoquan/origanization/icon/close.png


pages/origanization/t-c-c-contacts-info/icon/zk1.png → pages/origanization/zaoquan/origanization/icon/open.png


BIN
pages/origanization/zaoquan/origanization/icon/title_icon.png


+ 188 - 0
pages/origanization/zaoquan/origanization/origanization.vue

@@ -0,0 +1,188 @@
+<template>
+	<view>
+		<view class="search">
+			<view class="box">
+				<view class="icon">
+					<uni-icons type="search" size="14" color="#BBBBBB"></uni-icons>
+				</view>
+				<view class="text">搜索</view>
+			</view>
+		</view>
+		
+		<view class="content">
+			<view class="title">
+				<view class="icon">
+					<image src="./icon/title_icon.png" mode=""></image>
+				</view>
+				<view class="text">国家能源集团枣泉煤矿</view>
+			</view>
+			<view class="section">
+				<view class="box">
+					<view class="item">
+						<view class="left">
+							<view class="icon">
+								<image src="./icon/open.png" mode=""></image>
+							</view>
+							<view class="text">党群工作部 (9)</view>
+						</view>
+						<view class="right">
+							<uni-icons type="eye"></uni-icons>
+						</view>
+					</view>
+				</view>
+			</view>
+			<view class="section">
+				<view class="box">
+					<view class="item">
+						<view class="left">
+							<view class="icon">
+								<image src="./icon/close.png" mode=""></image>
+							</view>
+							<view class="text">生产技术部 (10)</view>
+						</view>
+						<view class="right">
+							<uni-icons type="eye"></uni-icons>
+						</view>
+					</view>
+				</view>
+				<view class="inner_list">
+					<view class="item" v-for="item in 6">
+						<view class="icon">杨</view>
+						<view class="text">杨名一 部长</view>
+					</view>
+				</view>
+			</view>
+			
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				
+			};
+		}
+	}
+</script>
+
+<style lang="scss">
+	page{
+		background-color: #F3F8F7;
+	}
+	.search{
+		margin-bottom: 20rpx;
+		background-color: #FFFFFF;
+		box-sizing: border-box;
+		padding: 25rpx 30rpx;
+		
+		.box{
+			height: 60rpx;
+			background-color: #F4F4F4;
+			border-radius: 50rpx;
+			
+			display: flex;
+			align-items: center;
+			
+			box-sizing: border-box;
+			padding: 0 25rpx;
+			.icon{
+				margin-right: 10rpx;
+			}
+			.text{
+				font-size: 24rpx;
+				color: #BBBBBB;
+			}
+		}
+	}
+	
+	.content{
+		background-color: #FFFFFF;
+		.title{
+			height: 95rpx;
+			display: flex;
+			align-items: center;
+			
+			box-sizing: border-box;
+			padding: 0 36rpx;
+			border-bottom: 1rpx solid #F3F8F7;
+			.icon{
+				image{
+					width: 48rpx;
+					height: 36rpx;
+				}
+			}
+			.text{
+				margin-left: 20rpx;
+				font-size: 36rpx;
+				font-weight: 700;
+			}
+		}
+		.section{
+			box-sizing: border-box;
+			padding: 0 20rpx;
+			
+			.box{
+				
+				.item{
+					height: 95rpx;
+					display: flex;
+					align-items: center;
+					justify-content: space-between;
+					
+					margin-left: 20rpx;
+					border-bottom: 1rpx solid #F3F8F7;
+					
+					.left{
+						display: flex;
+						align-items: center;
+						.icon{
+							line-height: 95rpx;
+							width: 90rpx;
+							text-align: center;
+							image{
+								width: 24rpx;
+								height: 24rpx;
+							}
+						}
+						.text{
+							font-size: 28rpx;
+						}
+					}
+					.right{
+						line-height: 95rpx;
+						width: 90rpx;
+						text-align: center;
+					}
+				}
+			}
+			.inner_list{
+				.item{
+					height: 95rpx;
+					
+					display: flex;
+					align-items: center;
+					
+					margin-left: 108rpx;
+					border-bottom: 1rpx solid #F3F8F7;
+					.icon{
+						width: 35rpx;
+						text-align: center;
+						line-height: 35rpx;
+						border-radius: 50%;
+						border: 1rpx solid #00A1E9;
+						
+						font-size: 24rpx;
+						color: #00A1E9;
+					}
+					.text{
+						margin-left: 18rpx;
+						font-size: 28rpx;
+						
+					}
+				}
+			}
+		}
+	}
+</style>

+ 1 - 0
pages/production/personnel_orientation/depart-people-2/depart-people-2.vue

@@ -55,6 +55,7 @@
 			},
 			
 			go_downhole_statistics(people_num,depart_name,name){
+				// console.log(people_num,depart_name,name)
 				uni.navigateTo({
 					url:"../downhole_statistics/downhole_statistics?people_num="+people_num+"&depart_name="+depart_name+"&name="+name+"&mine="+this.mine
 				})

BIN
pages/production/zaoquan/mine_water_treatment/icon/icon_1.png


BIN
pages/production/zaoquan/mine_water_treatment/icon/icon_2.png


BIN
pages/production/zaoquan/mine_water_treatment/icon/well.png


+ 206 - 0
pages/production/zaoquan/mine_water_treatment/mine_water_treatment.vue

@@ -0,0 +1,206 @@
+<template>
+	<view>
+		<view class="top">
+			<image src="./icon/well.png" mode=""></image>
+			<view class="time">
+				<!-- 2019-10-22 星期二 11:01:32 -->
+			</view>
+		</view>
+		<!-- 高密沉淀 -->
+		<view class="section">
+			<view class="title">
+				<view class="icon"></view>
+				<view class="name">高密沉淀</view>
+			</view>
+			<view class="content">
+				<view class="box">
+					<view class="box_title">矸石山调节池液位</view>
+					<view class="box_list">
+						<view class="item">
+							<view class="text name">矸石山调节池A</view>
+							<view class="text num">
+								<view class="num_box">0.74</view>
+							</view>
+							<view class="text company">m</view>
+						</view>
+						<view class="item">
+							<view class="text name">矸石山调节池B</view>
+							<view class="text num">
+								<view class="num_box">0.74</view>
+							</view>
+							<view class="text company">m</view>
+						</view>
+					</view>
+				</view>
+				<view class="box">
+					<view class="box_title">外排水池液位</view>
+					<view class="box_list">
+						<view class="item">
+							<view class="text name">外排水池A液位</view>
+							<view class="text num">
+								<view class="num_box">1.98</view>
+							</view>
+							<view class="text company">m</view>
+						</view>
+						<view class="item">
+							<view class="text name">外排水池B液位</view>
+							<view class="text num">
+								<view class="num_box">1.98</view>
+							</view>
+							<view class="text company">m</view>
+						</view>
+					</view>
+				</view>
+			</view>
+		</view>
+		
+		<!-- 快滤池 -->
+		<view class="section section_2">
+			<view class="title">
+				<view class="icon"></view>
+				<view class="name">快滤池</view>
+			</view>
+			<view class="content">
+				<view class="box">
+					<view class="box_list">
+						<view class="item">
+							<view class="text name">滤池出水流量</view>
+							<view class="text num">
+								<view class="num_box">0.833</view>
+							</view>
+							<view class="text company">m3/h</view>
+						</view>
+						<view class="item">
+							<view class="text name">滤池出水流量累积</view>
+							<view class="text num">
+								<view class="num_box">933759</view>
+							</view>
+							<view class="text company">m3</view>
+						</view>
+					</view>
+				</view>
+
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				
+			};
+		}
+	}
+</script>
+
+<style lang="scss">
+	page{
+		background: #009FE8;
+	}
+	.top{
+		position: relative;
+		image{
+			width: 750rpx;
+			height: 302rpx;
+		}
+		.time{
+			position: absolute;
+			right: 20rpx;
+			bottom: 20rpx;
+			
+			font-size: 34rpx;
+			font-weight: 500;
+			color: #FFFFFF;
+		}
+	}
+	
+	.section{
+		margin: 10rpx 15rpx 0;
+		background: #FFFFFF;
+		box-shadow: 0px 3rpx 30rpx 0px rgba(59, 74, 116, 0.14);
+		border-radius: 21rpx;
+
+		.title{
+			height: 103rpx;
+			display: flex;
+			justify-content: center;
+			align-items: center;
+			
+			border-bottom: 2rpx solid #f3f3f3;
+			.icon{
+				width: 68rpx;
+				height: 71rpx;
+				background-image: url(icon/icon_1.png);
+				background-size: cover;
+				background-repeat: no-repeat;
+			}
+			.name{
+				margin-left: 30rpx;
+				font-size: 31rpx;
+				font-weight: 500;
+				color: #232627;
+
+			}
+		}
+		.content{
+			padding-bottom: 20rpx;
+			.box{
+				box-sizing: border-box;
+				padding: 0 15rpx;
+				.box_title{
+					margin: 20rpx 0;
+					line-height: 60rpx;
+					
+					font-size: 34rpx;
+					font-weight: 500;
+					color: #232627;
+					
+					border-left: 8rpx solid #009fe8;
+					padding-left: 15rpx;
+
+				}
+				.box_list{
+					padding-bottom: 10rpx;
+					.item{
+						display: flex;
+						height: 110rpx;
+						align-items: center;
+						font-size: 30rpx;
+						
+						border-bottom: 1rpx solid #f3f3f3;
+						.text{
+							font-weight: 400;
+							color: #232627;
+							line-height: 83rpx;
+							text-align: center;
+						}
+						.name{
+							width: 324rpx;
+						}
+						.num{
+							margin-left: 26rpx;
+							width: 162rpx;
+							.num_box{
+								background: #8ADAFF;
+								line-height: 40rpx;
+							}
+						}
+						.company{
+							margin-left: 16rpx;
+							width: 162rpx;
+						}
+					}
+				}
+			}
+		}
+	}
+	.section_2{
+		.title{
+			.icon{
+				background-image: url(icon/icon_2.png);
+			}
+		}
+	}
+</style>

BIN
pages/production/zaoquan/power_monitoring/icon/flag.png


BIN
pages/production/zaoquan/power_monitoring/icon/top.png


+ 300 - 0
pages/production/zaoquan/power_monitoring/power_monitoring.vue

@@ -0,0 +1,300 @@
+<template>
+	<view>
+		<view class="top">
+			<view class="time">
+				<!-- <text>2019-10-22 星期二 11:01:32</text> -->
+			</view>
+		</view>
+		<view class="content">
+			<view class="content_title">
+				实时参数
+			</view>
+			<view class="content_inner">
+				<view class="inner_box" v-for="(item,index) in powerList" :key="index" :class="open == index? '':'item_box_close'">
+					<view class="item"  @click="change(index,item.dsspara_id)">
+						<view class="left">
+							<view class="line"></view>
+							<view class="name">{{item.dsspara_name}}</view>
+						</view>
+						<view class="icon">
+							<uni-icons color="#999" :type="open == index? 'arrowdown':'arrowright'"></uni-icons>
+						</view>
+					</view>
+					<view class="item_content">
+						<view class="item_content_list">
+							<view v-for="item in mdparaList" :key="item.mdpara_id" class="item_content_list_item" :class="item.mdpara_state == 0?'item_content_list_item_close':''" >
+								<view class="item_content_list_item_title">
+									<view class="item_content_list_item_title_left">
+										<view class="item_content_list_item_title_left_icon"></view>
+										<view class="item_content_list_item_title_left_name">{{item.mdpara_name}}</view>
+									</view>
+									<view class="item_content_list_item_title_left_flag">
+										<text>{{item.mdpara_state==0?'关':'开'}}</text>
+									</view>
+								</view>
+								<view class="item_content_list_item_content">
+									<view class="inner_list">
+										<view class="inner_list_item"  v-for="list in item.ycpara">{{list.name}}:{{list.val}} {{list.unit}}</view>
+									</view>
+								</view>
+							</view>
+							
+						</view>
+					</view>
+				</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				base_url:"http://zaoquan.nxjiewei.com:8011/api",
+				open:99999,
+				
+				// 列表
+				powerList:[],
+				// 详情
+				mdparaList:[]
+			};
+		},
+		onLoad() {
+			this.get_powerList()
+		},
+		methods:{
+			change(index,dsspara_id){
+				console.log(this.open,index)
+				if(this.open == index){
+					// 关闭当前项
+					this.open = 9999
+					this.mdparaList = []
+				}else{
+					// 展开当前项
+					this.open = index
+					// 填充数据
+					this.mdparaList = []
+					this.get_mdparaList(dsspara_id)
+				}
+			},
+			// 获取列表
+			get_powerList(){
+				this.mdparaList = []
+				uni.showLoading({
+					mask:true
+				})
+				uni.request({
+					url:this.base_url + "/electric/dsspara",
+					method:"GET",
+					success: (res) => {
+						uni.hideLoading()
+						console.log(res.data.data)
+						this.powerList = res.data.data
+					}
+				})
+			},
+			
+			// 获取详情
+			get_mdparaList(dsspara_id){
+				uni.showLoading({
+					mask:true
+				})
+				uni.request({
+					url:this.base_url + "/electric/mdpara",
+					method:"GET",
+					data:{
+						dsspara_id:dsspara_id
+					},
+					success: (res) => {
+						uni.hideLoading()
+						this.mdparaList = res.data.data
+					}
+				})
+			},
+		}
+	}
+</script>
+
+<style lang="scss">
+	page{
+		background: #009FE8;
+		box-sizing: border-box;
+		padding: 0 15rpx;
+
+	}
+	.top{
+		position: relative;
+		top: 0;
+		left: 0;
+		
+		height: 314rpx;
+		background-image: url(./icon/top.png);
+		background-size: cover;
+		background-repeat: no-repeat;
+		
+		.time{
+			position: absolute;
+			right: 30rpx;
+			bottom: 10rpx;
+			text{
+				height: 44rpx;
+				font-size: 31rpx;
+				font-weight: 500;
+				color: #2C3E50;
+				line-height: 44rpx;
+			}
+
+		}
+	}
+	.content{
+		margin-top: 8rpx;
+		margin-bottom: 20rpx;
+		background: #FFFFFF;
+		box-shadow: 0px 3rpx 29rpx 0px rgba(59, 74, 116, 0.14);
+		border-radius: 20rpx;
+		padding-bottom: 20rpx;
+
+		.content_title{
+			line-height: 96rpx;
+			text-align: center;
+			
+			font-size: 36rpx;
+			font-weight: 500;
+			color: #232627;
+			border-bottom: 1rpx solid #f3f3f3;
+		}
+		.content_inner{
+			.inner_box{
+				.item{
+					height: 110rpx;
+					box-sizing: border-box;
+					padding-left: 25rpx;
+					padding-right: 25rpx;
+					display: flex;
+					justify-content: space-between;
+					align-items: center;
+					
+					border-bottom: 1px solid #f3f3f3;
+					.left{
+						display: flex;
+						align-items: center;
+						.line{
+							width: 7rpx;
+							height: 64rpx;
+							background: #009FE8;
+							border-radius: 8rpx;
+
+						}
+						.name{
+							margin-left: 20rpx;
+							font-size: 34rpx;
+							font-weight: 500;
+							color: #000000;
+
+						}
+					}
+					.icon{
+						
+					}
+				}
+				.item_content{
+					box-sizing: border-box;
+					padding: 22rpx;
+					.item_content_list{
+						.item_content_list_item{
+							margin-bottom: 15rpx;
+							width: 670rpx;
+							border-radius: 10rpx;
+							border: 4rpx solid #009FE8;
+							
+							box-sizing: border-box;
+							padding: 28rpx 18rpx 0;
+							
+							.item_content_list_item_title{
+								height: 76rpx;
+								background: #E74C3C;
+								border-radius: 37rpx;
+								
+								display: flex;
+								justify-content: space-between;
+								align-items: center;
+								
+								box-sizing: border-box;
+								padding-left: 30rpx;
+								padding-right: 30rpx;
+								
+								.item_content_list_item_title_left{
+									display: flex;
+									.item_content_list_item_title_left_icon{
+										width: 40rpx;
+										height: 40rpx;
+										
+										background-image: url(./icon/flag.png);
+										background-size: cover;
+										background-repeat: no-repeat;
+									}
+									.item_content_list_item_title_left_name{
+										margin-left: 20rpx;
+										
+										font-size: 27rpx;
+										font-weight: 500;
+										color: #FFFFFF;
+
+									}
+								}
+								.item_content_list_item_title_left_flag{
+									width: 46rpx;
+									height: 46rpx;
+									background: #FFFFFF;
+									border-radius: 5rpx;
+									text-align: center;
+									text{
+										font-size: 25rpx;
+										font-weight: 500;
+										color: #E74C3C;
+										
+
+									}
+
+								}
+							}
+							.item_content_list_item_content{
+								box-sizing: border-box;
+								padding: 20rpx 10rpx;
+								.inner_list{
+									display: flex;
+									flex-wrap: wrap;
+									.inner_list_item{
+										margin-bottom: 15rpx;
+										width: 50%;
+										height: 39rpx;
+										font-size: 27rpx;
+										font-weight: 500;
+										color: #2C3E50;
+										line-height: 39rpx;
+
+									}
+								}
+							}
+												
+						}
+						.item_content_list_item_close{
+							.item_content_list_item_title{
+								background: #27AE60;
+							}
+						}
+						
+					
+					}
+				}
+				
+			}
+			.item_box_close{
+				.item_content{
+					display: none;
+				}
+			}
+		}
+	}
+</style>

+ 26 - 3
pages/tabbar/origanization/origanization.vue

@@ -1,14 +1,37 @@
 <template>
 	<view class="">
-		<t-c-contacts></t-c-contacts>
+		<!-- 枣泉 -->
+		<view v-if="mine_code == 'zaoquan'">
+			<t-o-zaoquan></t-o-zaoquan>
+		</view>
+		
 	</view>
 </template>
 
 <script>
+	export default {
+		data() {
+			return {
+				// 当前煤矿编码
+				mine_code:"",
+				
+				
+				
+			}
+		},
+		onLoad() {
+			// 初始化当前煤矿编码
+			this.mine_code = uni.getStorageSync('mine_code')
+			
+		},
+		methods: {
+
+		}
+	}
 </script>
 
-<style>
+<style lang="scss">
 	page{
-		background-color: #f5f5f5;
+		background-color: #F3F8F7;
 	}
 </style>

+ 0 - 1
pages/tabbar/production/production.vue

@@ -29,7 +29,6 @@
 			}
 		},
 		onLoad() {
-			console.log(uni.getStorageSync('mine_code'))
 			// 初始化当前煤矿编码
 			this.mine_code = uni.getStorageSync('mine_code')
 			

+ 21 - 8
pages/tabbar/workbench/workbench.vue

@@ -1,7 +1,10 @@
 <template>
-	<view class="headers">
-		<t-w-application :mine_code="mine_code"></t-w-application>
-	</view>
+	<view class="">
+		<!-- 枣泉 -->
+		<view v-if="mine_code == 'zaoquan'">
+			<!-- 有问题的组件 -->
+			<t-w-zaoquan :mine_code="mine_code"></t-w-zaoquan>
+		</view>
 		
 	</view>
 </template>
@@ -11,22 +14,32 @@
 		data() {
 			return {
 				// 当前煤矿编码
-				mine_code: "",
-			};
+				mine_code:"",
+				
+				
+				
+			}
 		},
 		onLoad() {
 			// 初始化当前煤矿编码
 			this.mine_code = uni.getStorageSync('mine_code')
-		},
-		methods:{
 			
+		},
+		methods: {
+
 		}
-		
 	}
 </script>
 
 <style lang="scss">
 	page{
+		background-color: #F3F8F7;
+	}
+</style>
+
+
+<style lang="scss">
+	page{
 		background-color: #f5f5f5;
 	}
 </style>

BIN
pages/workbench/invoice_assistant/icon/invoice.png


+ 209 - 0
pages/workbench/invoice_assistant/invoice_assistant.vue

@@ -0,0 +1,209 @@
+<template>
+	<view>
+		<view class="content">
+			<view class="info">
+				<view class="info_title">
+					<view class="info_title_icon"></view>
+					<view class="info_title_name">增值税开票信息</view>
+				</view>
+				<view class="info_inner">
+					<view class="info_inner_item">
+						<view class="item_label">
+							<text>名称:</text>
+						</view>
+						<view class="item_text">
+							<text>{{Info.name}}</text>
+						</view>
+					</view>
+					<view class="info_inner_item">
+						<view class="item_label">
+							<text>税号: </text>
+						</view>
+						<view class="item_text">
+							<text>{{Info.identification}}</text>
+						</view>
+					</view>
+					<view class="info_inner_item">
+						<view class="item_label">
+							<text>地址:</text>
+						</view>
+						<view class="item_text">
+							<text>{{Info.address}}</text>
+						</view>
+					</view>
+					<view class="info_inner_item">
+						<view class="item_label">
+							<text>电话:</text>
+						</view>
+						<view class="item_text">
+							<text>{{Info.tel}}</text>
+						</view>
+					</view>
+					<view class="info_inner_item">
+						<view class="item_label">
+							<text>开户行:</text>
+						</view>
+						<view class="item_text">
+							<text>{{Info.bank}}</text>
+						</view>
+					</view>
+					<view class="info_inner_item">
+						<view class="item_label">
+							<text>账号:</text>
+						</view>
+						<view class="item_text">
+							<text>{{Info.account}}</text>
+						</view>
+					</view>
+				</view>
+			</view>
+			
+			<view class="info">
+				<view class="info_title">
+					<view class="info_title_name">交款信息</view>
+				</view>
+				<view class="info_inner">
+					<view class="info_inner_item">
+						<view class="item_label">
+							<text>账户名称:</text>
+						</view>
+						<view class="item_text">
+							<text>{{Payment.name}}</text>
+						</view>
+					</view>
+					<view class="info_inner_item">
+						<view class="item_label">
+							<text>开户行: </text>
+						</view>
+						<view class="item_text">
+							<text>{{Payment.bank}}</text>
+						</view>
+					</view>
+					<view class="info_inner_item">
+						<view class="item_label">
+							<text>账户:</text>
+						</view>
+						<view class="item_text">
+							<text>{{Payment.account}}</text>
+						</view>
+					</view>
+					
+				</view>
+			</view>
+			
+			<view class="info">
+				<view class="info_title">
+					<view class="info_title_name">收据抬头</view>
+				</view>
+				<view class="info_inner">
+					<view class="info_inner_item">
+						<view class="item_label">
+							<text>名称:</text>
+						</view>
+						<view class="item_text">
+							<text>{{Title}}</text>
+						</view>
+					</view>
+					
+				</view>
+			</view>
+			
+			
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				Info:{},
+				Payment:{},
+				Title:""
+			};
+		},
+		onLoad() {
+			this.getInvoice()
+		},
+		methods:{
+			// 请求开票信息
+			getInvoice(){
+				this.$api.workbench_invoice_info({
+					
+				}).then((res)=>{
+					console.log(res)
+					const data = res.data.data
+					console.log(data)
+					this.Info = data.invoiceInfo
+					this.Payment = data.invoicePayment
+					this.Title = data.invoiceTitle
+				})
+				
+			},
+			
+		}
+	}
+</script>
+
+<style lang="scss">
+	page{
+		background-color: #009FE8;
+	}
+	.content{
+		background-color: #009FE8;
+		box-sizing: border-box;
+		padding: 31rpx 36rpx 0;
+		padding-bottom: 50rpx;
+		.info{
+			margin-bottom: 20rpx;
+			box-sizing: border-box;
+			padding-top: 19rpx;
+			background: #FFFFFF;
+			border-radius: 20rpx;
+			.info_title{
+				display: flex;
+				justify-content: center;
+				.info_title_icon{
+					width: 52rpx;
+					height: 52rpx;
+					background-image: url(./icon/invoice.png);
+					background-size: cover;
+					background-repeat: no-repeat;
+				}
+				.info_title_name{
+					margin-left: 12rpx;
+					font-size: 38rpx;
+					font-weight: 500;
+					color: #232627;
+					line-height: 52rpx;
+
+				}
+			}
+			.info_inner{
+				box-sizing: border-box;
+				padding-left: 46rpx;
+				padding-bottom: 40rpx;
+				.info_inner_item{
+					overflow: hidden;
+					margin-top: 40rpx;
+					
+					font-size: 27rpx;
+					font-weight: 500;
+					color: #7D7C7C;
+					line-height: 39rpx;
+
+					.item_label{
+						float: left;
+						width: 140rpx;
+					}
+					.item_text{
+						float: left;
+						width: 440rpx;
+						color: #2C3E50;
+					}
+				}
+			}
+
+		}
+	}
+</style>

BIN
static/img/banzu.png


BIN
static/img/daiban.png


BIN
static/img/tongzhi.png


BIN
static/img/zhiban.png


BIN
static/vant-uni-nvue/.DS_Store


BIN
static/vant-uni-nvue/2323.gif


BIN
static/vant-uni-nvue/Rolling-2s-200px.gif


BIN
static/vant-uni-nvue/Rolling-2s-60px.gif


BIN
static/vant-uni-nvue/loading.gif


BIN
static/vant-uni-nvue/logo.png


+ 0 - 0
unpackage/dist/build/.automator/app-plus/.automator.json


File diff suppressed because it is too large
+ 0 - 1
unpackage/dist/build/app-plus/__uniappchooselocation.js


BIN
unpackage/dist/build/app-plus/__uniapperror.png


File diff suppressed because it is too large
+ 0 - 1
unpackage/dist/build/app-plus/__uniappes6.js


File diff suppressed because it is too large
+ 0 - 1
unpackage/dist/build/app-plus/__uniappopenlocation.js


File diff suppressed because it is too large
+ 0 - 1
unpackage/dist/build/app-plus/__uniapppicker.js


File diff suppressed because it is too large
+ 0 - 8
unpackage/dist/build/app-plus/__uniappquill.js


File diff suppressed because it is too large
+ 0 - 1
unpackage/dist/build/app-plus/__uniappquillimageresize.js


File diff suppressed because it is too large
+ 0 - 1
unpackage/dist/build/app-plus/__uniappscan.js


BIN
unpackage/dist/build/app-plus/__uniappsuccess.png


+ 0 - 25
unpackage/dist/build/app-plus/__uniappview.html

@@ -1,25 +0,0 @@
-<!DOCTYPE html>
-<html lang="zh-CN">
-
-  <head>
-    <meta charset="UTF-8" />
-    <script>
-      var __UniViewStartTime__ = Date.now();
-      var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') ||
-        CSS.supports('top: constant(a)'))
-      document.write(
-        '<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' +
-        (coverSupport ? ', viewport-fit=cover' : '') + '" />')
-    </script>
-    <title>View</title>
-    <link rel="stylesheet" href="view.css" />
-  </head>
-
-  <body>
-    <div id="app"></div>
-    <script src="__uniappes6.js"></script>
-    <script src="view.umd.min.js"></script>
-    <script src="app-view.js"></script>
-  </body>
-
-</html>

File diff suppressed because it is too large
+ 0 - 8
unpackage/dist/build/app-plus/app-config-service.js


File diff suppressed because it is too large
+ 0 - 1
unpackage/dist/build/app-plus/app-config.js


File diff suppressed because it is too large
+ 0 - 8
unpackage/dist/build/app-plus/app-service.js


File diff suppressed because it is too large
+ 0 - 1
unpackage/dist/build/app-plus/app-view.js


BIN
unpackage/dist/build/app-plus/components/n-safety-monitoring-tab/icon/Co1.png


BIN
unpackage/dist/build/app-plus/components/n-safety-monitoring-tab/icon/feng.png


BIN
unpackage/dist/build/app-plus/components/n-safety-monitoring-tab/icon/wasi.png


BIN
unpackage/dist/build/app-plus/components/p-personnel-orientation-navbar/icon/search.png


BIN
unpackage/dist/build/app-plus/components/p-production-report-inner-3/icon/icon.png


BIN
unpackage/dist/build/app-plus/components/p-safety-monitoring-navbar/icon/search.png


BIN
unpackage/dist/build/app-plus/components/t-c-contacts/icon/ICE.png


+ 0 - 0
unpackage/dist/build/app-plus/components/t-c-contacts/icon/bangong.png


Some files were not shown because too many files changed in this diff