You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							1 lines
						
					
					
						
							40 KiB
						
					
					
				
			
		
		
	
	
							1 lines
						
					
					
						
							40 KiB
						
					
					
				{"remainingRequest":"F:\\workspace\\gcy\\RK-archives\\ruoyi-ui\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!F:\\workspace\\gcy\\RK-archives\\ruoyi-ui\\src\\views\\workflow\\leave\\index.vue?vue&type=script&lang=js&","dependencies":[{"path":"F:\\workspace\\gcy\\RK-archives\\ruoyi-ui\\src\\views\\workflow\\leave\\index.vue","mtime":1633763900370},{"path":"F:\\workspace\\gcy\\RK-archives\\ruoyi-ui\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"F:\\workspace\\gcy\\RK-archives\\ruoyi-ui\\node_modules\\babel-loader\\lib\\index.js","mtime":315532800000},{"path":"F:\\workspace\\gcy\\RK-archives\\ruoyi-ui\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"F:\\workspace\\gcy\\RK-archives\\ruoyi-ui\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:Ly8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KCmltcG9ydCB7CiAgbGlzdExlYXZlLAogIGdldExlYXZlLAogIGRlbExlYXZlLAogIGFkZExlYXZlLAogIHVwZGF0ZUxlYXZlLAogIGV4cG9ydExlYXZlLAogIHN1Ym1pdEFwcGx5LAogIHRhc2tEb25lTGlzdCwKICB0YXNrTGlzdAp9IGZyb20gJ0AvYXBpL3dvcmtmbG93L2xlYXZlJwppbXBvcnQge2NhbmNlbEFwcGx5LCBzdXNwZW5kT3JBY3RpdmVBcHBseSwgc2hvd1ZlcmlmeURpYWxvZywgY29tcGxldGV9IGZyb20gJ0AvYXBpL2FjdGl2aXRpL3Byb2Nlc3MnCmltcG9ydCB7Y2FsY1RvdGFsU2Vjb25kLCBmb3JtYXRUb3RhbERhdGVTdWJ9IGZyb20gJ0AvdXRpbHMvZGF0ZVV0aWwnCmltcG9ydCBBcHByb3ZhbEhpc3RvcnkgZnJvbSAnQC9jb21wb25lbnRzL2FjdGl2aXRpL2FwcHJvdmFsSGlzdG9yeScKaW1wb3J0IFByb2Nlc3NJbWcgZnJvbSAnQC9jb21wb25lbnRzL2FjdGl2aXRpL3Byb2Nlc3NJbWcnCgpleHBvcnQgZGVmYXVsdCB7CiAgY29tcG9uZW50czoge0FwcHJvdmFsSGlzdG9yeSwgUHJvY2Vzc0ltZ30sCiAgbmFtZTogJ0xlYXZlJywKICBkYXRhKCkgewogICAgcmV0dXJuIHsKICAgICAgLy8g5a6h5om556Gu5a6a5oyJ6ZKuCiAgICAgIHNob3dCdXR0b246IGZhbHNlLAogICAgICAvLyDlrqHmibnkurrmjqfliLbooajljZUKICAgICAgc2hvd1ZlcmlmeTogewogICAgICAgIE1vZGlmeUFwcGx5OiBmYWxzZSwKICAgICAgICBEZXB0TGVhZGVyVmVyaWZ5OiBmYWxzZSwKICAgICAgICBIclZlcmlmeTogZmFsc2UsCiAgICAgICAgUmVwb3J0QmFjazogZmFsc2UsCiAgICAgIH0sCiAgICAgIC8vIOi3r+W+hAogICAgICBwYXRoOiAnJywKICAgICAgLy8g5p+l6K+i5pa55rOVCiAgICAgIGdldExlYXZlTGlzdDogbnVsbCwKCiAgICAgIC8v5rWB56iL5Zu+56qX5Y+j5byA5YWzCiAgICAgIHByb2Nlc3NJbWc6IGZhbHNlLAogICAgICAvL+WuoeaJueWOhuWPsueql+WPo+W8gOWFswogICAgICBkaWFsb2dUYWJsZVZpc2libGU6IGZhbHNlLAogICAgICAvL+WOhuWPsuWuoeaJueeql+WPo+WPguaVsAogICAgICBpbnN0YW5jZUlkOiAnJywKCiAgICAgIC8vIOivt+WBh+aXtumVvwogICAgICBmb3JtYXREYXRlU3ViOiAnJywKICAgICAgc3RhcnRBbmRFbmRUaW1lOiBbJycsICcnXSwKICAgICAgcmVhZG9ubHk6IGZhbHNlLAogICAgICAvLyDpga7nvanlsYIKICAgICAgbG9hZGluZzogdHJ1ZSwKICAgICAgLy8g6YCJ5Lit5pWw57uECiAgICAgIGlkczogW10sCiAgICAgIC8vIOmdnuWNleS4quemgeeUqAogICAgICBzaW5nbGU6IHRydWUsCiAgICAgIC8vIOmdnuWkmuS4quemgeeUqAogICAgICBtdWx0aXBsZTogdHJ1ZSwKICAgICAgLy8g5pi+56S65pCc57Si5p2h5Lu2CiAgICAgIHNob3dTZWFyY2g6IHRydWUsCiAgICAgIC8vIOaAu+adoeaVsAogICAgICB0b3RhbDogMCwKICAgICAgLy8g6K+35YGH5rWB56iL6KGo5qC85pWw5o2uCiAgICAgIGxlYXZlTGlzdDogW10sCiAgICAgIC8vIOW8ueWHuuWxguagh+mimAogICAgICB0aXRsZTogJycsCiAgICAgIC8vIOaYr+WQpuaYvuekuuW8ueWHuuWxggogICAgICBvcGVuOiBmYWxzZSwKICAgICAgLy8g5p+l6K+i5Y+C5pWwCiAgICAgIHF1ZXJ5UGFyYW1zOiB7CiAgICAgICAgcGFnZU51bTogMSwKICAgICAgICBwYWdlU2l6ZTogMTAsCiAgICAgICAgdHlwZTogbnVsbCwKICAgICAgICB0aXRsZTogbnVsbCwKICAgICAgICByZWFzb246IG51bGwsCiAgICAgICAgbGVhdmVTdGFydFRpbWU6IG51bGwsCiAgICAgICAgbGVhdmVFbmRUaW1lOiBudWxsLAogICAgICAgIHRvdGFsVGltZTogbnVsbCwKICAgICAgICBpbnN0YW5jZUlkOiBudWxsLAogICAgICAgIGFwcGx5VXNlcjogbnVsbCwKICAgICAgICBhcHBseVRpbWU6IG51bGwsCiAgICAgICAgcmVhbGl0eVN0YXJ0VGltZTogbnVsbCwKICAgICAgICByZWFsaXR5RW5kVGltZTogbnVsbAogICAgICB9LAogICAgICAvLyDooajljZXlj4LmlbAKICAgICAgZm9ybTogewogICAgICAgIHByb2Nlc3NQYXJhbXM6IHt9CiAgICAgIH0sCiAgICAgIC8vIOihqOWNleagoemqjAogICAgICBydWxlczogewogICAgICAgIHRpdGxlOiBbCiAgICAgICAgICB7cmVxdWlyZWQ6IHRydWUsIG1lc3NhZ2U6ICfnlKjmiLflkI3np7DkuI3og73kuLrnqbonLCB0cmlnZ2VyOiAnYmx1cid9CiAgICAgICAgXSwgdG90YWxUaW1lOiBbCiAgICAgICAgICB7cmVxdWlyZWQ6IHRydWUsIG1lc3NhZ2U6ICfor7flgYfml7bpl7TkuI3og73kuLrnqbonLCB0cmlnZ2VyOiAnYmx1cid9CiAgICAgICAgXSwgcmVhc29uOiBbCiAgICAgICAgICB7cmVxdWlyZWQ6IHRydWUsIG1lc3NhZ2U6ICfljp/lm6DkuI3og73kuLrnqbonLCB0cmlnZ2VyOiAnYmx1cid9CiAgICAgICAgXSwgcmVhbGl0eVN0YXJ0VGltZTogWwogICAgICAgICAge3JlcXVpcmVkOiB0cnVlLCBtZXNzYWdlOiAn5Y6f5Zug5LiN6IO95Li656m6JywgdHJpZ2dlcjogJ2JsdXInfQogICAgICAgIF0sIHJlYWxpdHlFbmRUaW1lOiBbCiAgICAgICAgICB7cmVxdWlyZWQ6IHRydWUsIG1lc3NhZ2U6ICfljp/lm6DkuI3og73kuLrnqbonLCB0cmlnZ2VyOiAnYmx1cid9CiAgICAgICAgXQogICAgICB9CiAgICB9CiAgfSwKICBjcmVhdGVkKCkgewogICAgY29uc3QgcGF0aCA9IHRoaXMuJHJvdXRlLnBhdGguc3BsaXQoJy8nKS5wb3AoKQogICAgdGhpcy5wYXRoID0gcGF0aAogICAgaWYgKCdsaXN0JyA9PSBwYXRoKSB7CiAgICAgIHRoaXMuZ2V0TGVhdmVMaXN0ID0gbGlzdExlYXZlCiAgICB9IGVsc2UgaWYgKCd0b2RvJyA9PSBwYXRoKSB7CiAgICAgIHRoaXMuZ2V0TGVhdmVMaXN0ID0gdGFza0xpc3QKICAgIH0gZWxzZSBpZiAoJ2RvbmUnID09IHBhdGgpIHsKICAgICAgdGhpcy5nZXRMZWF2ZUxpc3QgPSB0YXNrRG9uZUxpc3QKICAgIH0KICAgIHRoaXMuZ2V0TGlzdCgpCiAgfSwKICBtZXRob2RzOiB7CgogICAgc3VibWl0U2hvd1ZlcmlmeURpYWxvZygpIHsKICAgICAgdGhpcy4kcmVmc1snZm9ybSddLnZhbGlkYXRlKHZhbGlkID0+IHsKICAgICAgICBpZiAodmFsaWQpIHsKICAgICAgICAgIGNvbXBsZXRlKHRoaXMuZm9ybSkudGhlbihyZXNwb25zZSA9PiB7CiAgICAgICAgICAgIGlmIChyZXNwb25zZS5jb2RlID09PSAyMDApIHsKICAgICAgICAgICAgICBpZiAodGhpcy5zaG93VmVyaWZ5Lk1vZGlmeUFwcGx5KSB7CiAgICAgICAgICAgICAgICB1cGRhdGVMZWF2ZSh0aGlzLmZvcm0pLnRoZW4ocmVzcG9uc2UgPT4gewogICAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2UuY29kZSA9PT0gMjAwKSB7CiAgICAgICAgICAgICAgICAgICAgdGhpcy5tc2dTdWNjZXNzKCfkv67mlLnmiJDlip8nKQogICAgICAgICAgICAgICAgICAgIHRoaXMub3BlbiA9IGZhbHNlCiAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXRMaXN0KCkKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgdGhpcy5tc2dTdWNjZXNzKCfmk43kvZzmiJDlip8nKQogICAgICAgICAgICAgICAgdGhpcy5vcGVuID0gZmFsc2UKICAgICAgICAgICAgICAgIHRoaXMuZ2V0TGlzdCgpCiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIHRoaXMucmVzZXQoKQogICAgICAgICAgICB9CiAgICAgICAgICB9KQogICAgICAgIH0KICAgICAgfSkKICAgIH0sCiAgICAvLyDlrqHmibnoj5zljZXmjqfliLYKICAgIHNob3dWZXJpZnlEaWFsb2cocm93KSB7CiAgICAgIHRoaXMuc2hvd0J1dHRvbiA9IHRydWUKICAgICAgdGhpcy5yZXNldCgpCiAgICAgIGdldExlYXZlKHJvdy5pZCkudGhlbihyZXNwb25zZSA9PiB7CiAgICAgICAgdGhpcy5mb3JtID0gcmVzcG9uc2UuZGF0YQogICAgICAgIHRoaXMuc3RhcnRBbmRFbmRUaW1lID0gW3RoaXMuZm9ybS5sZWF2ZVN0YXJ0VGltZSwgdGhpcy5mb3JtLmxlYXZlRW5kVGltZV0KICAgICAgICBzaG93VmVyaWZ5RGlhbG9nKHJvdy50YXNrSWQpLnRoZW4ocmVzcG9uc2UgPT4gewogICAgICAgICAgY29uc29sZS5sb2cocmVzcG9uc2UubXNnKQogICAgICAgICAgaWYgKCdNb2RpZnlBcHBseScgPT09IHJlc3BvbnNlLm1zZykgewogICAgICAgICAgICB0aGlzLnJlYWRvbmx5ID0gZmFsc2UKICAgICAgICAgICAgdGhpcy5zaG93VmVyaWZ5Lk1vZGlmeUFwcGx5ID0gdHJ1ZTsKICAgICAgICAgICAgdGhpcy5mb3JtLnByb2Nlc3NQYXJhbXMuQl9yZUFwcGx5ID0gInRydWUiOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgaWYgKCdIclZlcmlmeScgPT09IHJlc3BvbnNlLm1zZykgewogICAgICAgICAgICAgIHRoaXMuc2hvd1ZlcmlmeS5IclZlcmlmeSA9IHRydWU7CiAgICAgICAgICAgICAgdGhpcy5mb3JtLnByb2Nlc3NQYXJhbXMuQl9ockFwcHJvdmVkID0gInRydWUiOwogICAgICAgICAgICB9IGVsc2UgaWYgKCdEZXB0TGVhZGVyVmVyaWZ5JyA9PT0gcmVzcG9uc2UubXNnKSB7CiAgICAgICAgICAgICAgdGhpcy5zaG93VmVyaWZ5LkRlcHRMZWFkZXJWZXJpZnkgPSB0cnVlOwogICAgICAgICAgICAgIHRoaXMuZm9ybS5wcm9jZXNzUGFyYW1zLkJfZGVwdExlYWRlckFwcHJvdmVkID0gInRydWUiOwogICAgICAgICAgICB9IGVsc2UgaWYgKCdSZXBvcnRCYWNrJyA9PT0gcmVzcG9uc2UubXNnKSB7CiAgICAgICAgICAgICAgdGhpcy5zaG93VmVyaWZ5LlJlcG9ydEJhY2sgPSB0cnVlOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHRoaXMucmVhZG9ubHkgPSB0cnVlCiAgICAgICAgICB9CiAgICAgICAgICB0aGlzLm9wZW4gPSB0cnVlCiAgICAgICAgICB0aGlzLnRpdGxlID0gcm93LnRhc2tOYW1lCiAgICAgICAgfSkKICAgICAgfSkKICAgIH0sCiAgICAvKiog5Y6G5Y+y5YiX6KGoICovCiAgICBoaXN0b3J5TGlzdChyb3cpIHsKICAgICAgdGhpcy5kaWFsb2dUYWJsZVZpc2libGUgPSB0cnVlCiAgICAgIHRoaXMuaW5zdGFuY2VJZCA9IHJvdy5pbnN0YW5jZUlkCiAgICB9LAogICAgLyoqIOafpeivouivt+WBh+a1geeoi+WIl+ihqCAqLwogICAgZ2V0TGlzdCgpIHsKICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZQogICAgICB0aGlzLmdldExlYXZlTGlzdCh0aGlzLnF1ZXJ5UGFyYW1zKS50aGVuKHJlc3BvbnNlID0+IHsKICAgICAgICB0aGlzLmxlYXZlTGlzdCA9IHJlc3BvbnNlLnJvd3MKICAgICAgICB0aGlzLnRvdGFsID0gcmVzcG9uc2UudG90YWwKICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZQogICAgICB9KQogICAgfSwKICAgIC8vIOWPlua2iOaMiemSrgogICAgY2FuY2VsKCkgewogICAgICB0aGlzLm9wZW4gPSBmYWxzZQogICAgICB0aGlzLmRpYWxvZ1RhYmxlVmlzaWJsZSA9IGZhbHNlCiAgICAgIHRoaXMucHJvY2Vzc0ltZyA9IGZhbHNlCiAgICAgIHRoaXMuc2hvd0J1dHRvbiA9IGZhbHNlCiAgICAgIHRoaXMucmVzZXQoKQoKICAgIH0sCiAgICAvLyDooajljZXph43nva4KICAgIHJlc2V0KCkgewogICAgICB0aGlzLmZvcm0gPSB7CiAgICAgICAgaWQ6IG51bGwsCiAgICAgICAgdHlwZTogbnVsbCwKICAgICAgICB0aXRsZTogbnVsbCwKICAgICAgICByZWFzb246IG51bGwsCiAgICAgICAgbGVhdmVTdGFydFRpbWU6IG51bGwsCiAgICAgICAgbGVhdmVFbmRUaW1lOiBudWxsLAogICAgICAgIHRvdGFsVGltZTogbnVsbCwKICAgICAgICBpbnN0YW5jZUlkOiBudWxsLAogICAgICAgIGNyZWF0ZUJ5OiBudWxsLAogICAgICAgIGNyZWF0ZVRpbWU6IG51bGwsCiAgICAgICAgdXBkYXRlQnk6IG51bGwsCiAgICAgICAgdXBkYXRlVGltZTogbnVsbCwKICAgICAgICBhcHBseVVzZXI6IG51bGwsCiAgICAgICAgYXBwbHlUaW1lOiBudWxsLAogICAgICAgIHJlYWxpdHlTdGFydFRpbWU6IG51bGwsCiAgICAgICAgcmVhbGl0eUVuZFRpbWU6IG51bGwsCiAgICAgICAgcHJvY2Vzc1BhcmFtczoge30KICAgICAgfQogICAgICB0aGlzLnN0YXJ0QW5kRW5kVGltZSA9IFsnJywgJyddCiAgICAgIHRoaXMuZm9ybWF0RGF0ZVN1YiA9IG51bGwKICAgICAgdGhpcy5yZXNldEZvcm0oJ2Zvcm0nKQogICAgICB0aGlzLmluc3RhbmNlSWQgPSAnJwogICAgICB0aGlzLnNob3dWZXJpZnkgPSB7CiAgICAgICAgTW9kaWZ5QXBwbHk6IGZhbHNlLAogICAgICAgIERlcHRMZWFkZXJWZXJpZnk6IGZhbHNlLAogICAgICAgIEhyVmVyaWZ5OiBmYWxzZSwKICAgICAgICBSZXBvcnRCYWNrOiBmYWxzZSwKICAgICAgfQogICAgfSwKICAgIC8qKiDmkJzntKLmjInpkq7mk43kvZwgKi8KICAgIGhhbmRsZVF1ZXJ5KCkgewogICAgICB0aGlzLnF1ZXJ5UGFyYW1zLnBhZ2VOdW0gPSAxCiAgICAgIHRoaXMuZ2V0TGlzdCgpCiAgICB9LAogICAgLyoqIOmHjee9ruaMiemSruaTjeS9nCAqLwogICAgcmVzZXRRdWVyeSgpIHsKICAgICAgdGhpcy5yZXNldEZvcm0oJ3F1ZXJ5Rm9ybScpCiAgICAgIHRoaXMuaGFuZGxlUXVlcnkoKQogICAgfSwKICAgIC8qKiDmlrDlop7mjInpkq7mk43kvZwgKi8KICAgIGhhbmRsZUFkZCgpIHsKICAgICAgdGhpcy5yZXNldCgpCiAgICAgIHRoaXMub3BlbiA9IHRydWUKICAgICAgdGhpcy5yZWFkb25seSA9IGZhbHNlCiAgICAgIHRoaXMudGl0bGUgPSAn5re75Yqg6K+35YGH5rWB56iLJwogICAgfSwKICAgIC8qKiDkv67mlLnmjInpkq7mk43kvZwgKi8KICAgIGhhbmRsZVVwZGF0ZShyb3cpIHsKICAgICAgdGhpcy5yZXNldCgpCiAgICAgIGdldExlYXZlKHJvdy5pZCkudGhlbihyZXNwb25zZSA9PiB7CiAgICAgICAgdGhpcy5mb3JtID0gcmVzcG9uc2UuZGF0YQogICAgICAgIHRoaXMuc3RhcnRBbmRFbmRUaW1lID0gW3RoaXMuZm9ybS5sZWF2ZVN0YXJ0VGltZSwgdGhpcy5mb3JtLmxlYXZlRW5kVGltZV0KICAgICAgICB0aGlzLm9wZW4gPSB0cnVlCiAgICAgICAgdGhpcy5yZWFkb25seSA9IGZhbHNlCiAgICAgICAgdGhpcy50aXRsZSA9ICfkv67mlLnor7flgYfmtYHnqIsnCiAgICAgIH0pCiAgICB9LAogICAgc3VibWl0QXBwbHkocm93KSB7CiAgICAgIHRoaXMuJGNvbmZpcm0oJ+ehruiupOimgeaPkOS6pOeUs+ivt+WQlz8nLCAn6K2m5ZGKJywgewogICAgICAgIGNvbmZpcm1CdXR0b25UZXh0OiAn56Gu5a6aJywKICAgICAgICBjYW5jZWxCdXR0b25UZXh0OiAn5Y+W5raIJywKICAgICAgICB0eXBlOiAnd2FybmluZycKICAgICAgfSkudGhlbihmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHN1Ym1pdEFwcGx5KHJvdy5pZCkKICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgdGhpcy5nZXRMaXN0KCkKICAgICAgICB0aGlzLm1zZ1N1Y2Nlc3MoJ+aPkOS6pOaIkOWKnycpCiAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uICgpIHsKICAgICAgfSkKICAgIH0sCiAgICBjYW5jZWxBcHBseShyb3cpIHsKICAgICAgdGhpcy4kY29uZmlybSgn56Gu6K6k6KaB5pKk6ZSA55Sz6K+35ZCXPycsICforablkYonLCB7CiAgICAgICAgY29uZmlybUJ1dHRvblRleHQ6ICfnoa7lrponLAogICAgICAgIGNhbmNlbEJ1dHRvblRleHQ6ICflj5bmtognLAogICAgICAgIHR5cGU6ICd3YXJuaW5nJwogICAgICB9KS50aGVuKGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4gY2FuY2VsQXBwbHkocm93Lmluc3RhbmNlSWQpCiAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgIHRoaXMuZ2V0TGlzdCgpCiAgICAgICAgdGhpcy5tc2dTdWNjZXNzKCfmkqTplIDmiJDlip8nKQogICAgICB9KS5jYXRjaChmdW5jdGlvbiAoKSB7CiAgICAgIH0pCiAgICB9LAogICAgc3VzcGVuZE9yQWN0aXZlQXBwbHkocm93KSB7CiAgICAgIHZhciBzdXNwZW5kT3JBY3RpdmUgPSByb3cuc3VzcGVuZFN0YXRlID09PSAnMicgPyAn5r+A5rS7JyA6ICfmjILotbcnCiAgICAgIHRoaXMuJGNvbmZpcm0oJ+ehruiupOimgScgKyBzdXNwZW5kT3JBY3RpdmUgKyAn55Sz6K+35ZCXPycsICforablkYonLCB7CiAgICAgICAgY29uZmlybUJ1dHRvblRleHQ6ICfnoa7lrponLAogICAgICAgIGNhbmNlbEJ1dHRvblRleHQ6ICflj5bmtognLAogICAgICAgIHR5cGU6ICd3YXJuaW5nJwogICAgICB9KS50aGVuKGZ1bmN0aW9uICgpIHsKICAgICAgICBjb25zdCBkYXRhID0geydpbnN0YW5jZUlkJzogcm93Lmluc3RhbmNlSWQsICdzdXNwZW5kU3RhdGUnOiByb3cuc3VzcGVuZFN0YXRlfQogICAgICAgIHJldHVybiBzdXNwZW5kT3JBY3RpdmVBcHBseShkYXRhKQogICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICB0aGlzLmdldExpc3QoKQogICAgICAgIHRoaXMubXNnU3VjY2Vzcygn5pKk6ZSA5oiQ5YqfJykKICAgICAgfSkuY2F0Y2goZnVuY3Rpb24gKCkgewogICAgICB9KQogICAgfSwKICAgIC8qKiDooajljZXmlbDmja7lsZXnpLogKi8KICAgIGRldGFpbChyb3cpIHsKICAgICAgdGhpcy5yZXNldCgpCiAgICAgIGdldExlYXZlKHJvdy5pZCkudGhlbihyZXNwb25zZSA9PiB7CiAgICAgICAgdGhpcy5mb3JtID0gcmVzcG9uc2UuZGF0YQogICAgICAgIHRoaXMuc3RhcnRBbmRFbmRUaW1lID0gW3RoaXMuZm9ybS5sZWF2ZVN0YXJ0VGltZSwgdGhpcy5mb3JtLmxlYXZlRW5kVGltZV0KICAgICAgICB0aGlzLm9wZW4gPSB0cnVlCiAgICAgICAgdGhpcy5yZWFkb25seSA9IHRydWUKICAgICAgICB0aGlzLnRpdGxlID0gJ+eUs+ivt+ivpuaDhScKICAgICAgfSkKICAgIH0sCiAgICAvKiog5o+Q5Lqk5oyJ6ZKuICovCiAgICBzdWJtaXRGb3JtKCkgewogICAgICB0aGlzLiRyZWZzWydmb3JtJ10udmFsaWRhdGUodmFsaWQgPT4gewogICAgICAgIGlmICh2YWxpZCkgewogICAgICAgICAgaWYgKHRoaXMuZm9ybS5pZCAhPSBudWxsKSB7CiAgICAgICAgICAgIHVwZGF0ZUxlYXZlKHRoaXMuZm9ybSkudGhlbihyZXNwb25zZSA9PiB7CiAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmNvZGUgPT09IDIwMCkgewogICAgICAgICAgICAgICAgdGhpcy5tc2dTdWNjZXNzKCfkv67mlLnmiJDlip8nKQogICAgICAgICAgICAgICAgdGhpcy5vcGVuID0gZmFsc2UKICAgICAgICAgICAgICAgIHRoaXMuZ2V0TGlzdCgpCiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KQogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgYWRkTGVhdmUodGhpcy5mb3JtKS50aGVuKHJlc3BvbnNlID0+IHsKICAgICAgICAgICAgICBpZiAocmVzcG9uc2UuY29kZSA9PT0gMjAwKSB7CiAgICAgICAgICAgICAgICB0aGlzLm1zZ1N1Y2Nlc3MoJ+aWsOWinuaIkOWKnycpCiAgICAgICAgICAgICAgICB0aGlzLm9wZW4gPSBmYWxzZQogICAgICAgICAgICAgICAgdGhpcy5nZXRMaXN0KCkKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pCiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9KQogICAgfSwKICAgIC8qKiDliKDpmaTmjInpkq7mk43kvZwgKi8KICAgIGhhbmRsZURlbGV0ZShyb3cpIHsKICAgICAgY29uc3QgaWRzID0gcm93LmlkIHx8IHRoaXMuaWRzCiAgICAgIHRoaXMuJGNvbmZpcm0oJ+aYr+WQpuehruiupOWIoOmZpOivt+WBh+a1geeoi+e8luWPt+S4uiInICsgaWRzICsgJyLnmoTmlbDmja7pobk/JywgJ+itpuWRiicsIHsKICAgICAgICBjb25maXJtQnV0dG9uVGV4dDogJ+ehruWumicsCiAgICAgICAgY2FuY2VsQnV0dG9uVGV4dDogJ+WPlua2iCcsCiAgICAgICAgdHlwZTogJ3dhcm5pbmcnCiAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKCkgewogICAgICAgIHJldHVybiBkZWxMZWF2ZShpZHMpCiAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgIHRoaXMuZ2V0TGlzdCgpCiAgICAgICAgdGhpcy5tc2dTdWNjZXNzKCfliKDpmaTmiJDlip8nKQogICAgICB9KS5jYXRjaChmdW5jdGlvbiAoKSB7CiAgICAgIH0pCiAgICB9LAogICAgLyoqIOWvvOWHuuaMiemSruaTjeS9nCAqLwogICAgaGFuZGxlRXhwb3J0KCkgewogICAgICBjb25zdCBxdWVyeVBhcmFtcyA9IHRoaXMucXVlcnlQYXJhbXMKICAgICAgdGhpcy4kY29uZmlybSgn5piv5ZCm56Gu6K6k5a+85Ye65omA5pyJ6K+35YGH5rWB56iL5pWw5o2u6aG5PycsICforablkYonLCB7CiAgICAgICAgY29uZmlybUJ1dHRvblRleHQ6ICfnoa7lrponLAogICAgICAgIGNhbmNlbEJ1dHRvblRleHQ6ICflj5bmtognLAogICAgICAgIHR5cGU6ICd3YXJuaW5nJwogICAgICB9KS50aGVuKGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4gZXhwb3J0TGVhdmUocXVlcnlQYXJhbXMpCiAgICAgIH0pLnRoZW4ocmVzcG9uc2UgPT4gewogICAgICAgIHRoaXMuZG93bmxvYWQocmVzcG9uc2UubXNnKQogICAgICB9KS5jYXRjaChmdW5jdGlvbiAoKSB7CiAgICAgIH0pCiAgICB9LAogICAgc2hvd1Byb2Nlc3NJbWdEaWFsb2cocm93KSB7CiAgICAgIHRoaXMucHJvY2Vzc0ltZyA9IHRydWUKICAgICAgdGhpcy5pbnN0YW5jZUlkID0gcm93Lmluc3RhbmNlSWQKICAgIH0sCiAgICBoYW5kbGVTZWxlY3RDaGFuZ2UodmFsKSB7CiAgICAgIGNvbnNvbGUubG9nKHRoaXMuZm9ybS5wcm9jZXNzUGFyYW1zLkJfZGVwdExlYWRlckFwcHJvdmVkKQogICAgICB0aGlzLiRmb3JjZVVwZGF0ZSgpCiAgICB9CiAgfSwKICB3YXRjaDogewogICAgc3RhcnRBbmRFbmRUaW1lOiB7CiAgICAgIGhhbmRsZXIobmV3VmFsdWUpIHsKICAgICAgICB0aGlzLmZvcm0ubGVhdmVTdGFydFRpbWUgPSBuZXdWYWx1ZVswXQogICAgICAgIHRoaXMuZm9ybS5sZWF2ZUVuZFRpbWUgPSBuZXdWYWx1ZVsxXQogICAgICAgIGlmIChuZXdWYWx1ZVswXSAmJiBuZXdWYWx1ZVsxXSkgewogICAgICAgICAgdGhpcy5mb3JtLnRvdGFsVGltZSA9IGNhbGNUb3RhbFNlY29uZChuZXdWYWx1ZVswXSwgbmV3VmFsdWVbMV0pCiAgICAgICAgICB0aGlzLmZvcm1hdERhdGVTdWIgPSBmb3JtYXRUb3RhbERhdGVTdWIodGhpcy5mb3JtLnRvdGFsVGltZSkKICAgICAgICB9CgogICAgICB9LAogICAgICBkZWVwOiB0cnVlCiAgICB9CiAgfQp9Cgo="},{"version":3,"sources":["index.vue"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+PA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA","file":"index.vue","sourceRoot":"src/views/workflow/leave","sourcesContent":["<template>\n  <div class=\"app-container\">\n    <el-form :model=\"queryParams\" ref=\"queryForm\" :inline=\"true\" v-show=\"showSearch\" label-width=\"68px\">\n      <el-form-item label=\"请假类型\" prop=\"type\">\n        <el-select v-model=\"queryParams.type\" placeholder=\"请选择请假类型\" clearable size=\"small\">\n          <el-option label=\"请选择字典生成\" value=\"\"/>\n        </el-select>\n      </el-form-item>\n      <el-form-item label=\"标题\" prop=\"title\">\n        <el-input\n          v-model=\"queryParams.title\"\n          placeholder=\"请输入标题\"\n          clearable\n          size=\"small\"\n          @keyup.enter.native=\"handleQuery\"\n        />\n      </el-form-item>\n\n      <el-form-item label=\"流程实例ID\" prop=\"instanceId\">\n        <el-input\n          v-model=\"queryParams.instanceId\"\n          placeholder=\"请输入流程实例ID\"\n          clearable\n          size=\"small\"\n          @keyup.enter.native=\"handleQuery\"\n        />\n      </el-form-item>\n      <el-form-item>\n        <el-button type=\"cyan\" icon=\"el-icon-search\" size=\"mini\" @click=\"handleQuery\">搜索</el-button>\n        <el-button icon=\"el-icon-refresh\" size=\"mini\" @click=\"resetQuery\">重置</el-button>\n      </el-form-item>\n    </el-form>\n\n    <el-row :gutter=\"10\" class=\"mb8\" v-if=\"path=='list'\">\n      <el-col :span=\"1.5\">\n        <el-button\n          type=\"primary\"\n          icon=\"el-icon-plus\"\n          size=\"mini\"\n          @click=\"handleAdd\"\n          v-hasPermi=\"['workflow:leave']\"\n        >新增\n        </el-button>\n      </el-col>\n      <right-toolbar :showSearch.sync=\"showSearch\" @queryTable=\"getList\"></right-toolbar>\n    </el-row>\n\n    <el-table v-loading=\"loading\" :data=\"leaveList\">\n      <el-table-column label=\"请假类型\" align=\"center\" prop=\"type\"/>\n      <el-table-column label=\"标题\" align=\"center\" prop=\"title\"/>\n      <el-table-column label=\"原因\" align=\"center\" prop=\"reason\"/>\n      <el-table-column label=\"开始时间\" align=\"center\" prop=\"leaveStartTime\">\n      </el-table-column>\n      <el-table-column label=\"结束时间\" align=\"center\" prop=\"leaveEndTime\">\n      </el-table-column>\n      <el-table-column label=\"请假时长\" align=\"center\" prop=\"totalTime\"/>\n      <el-table-column label=\"流程实例ID\" align=\"center\" prop=\"instanceId\"/>\n      <el-table-column label=\"申请人\" align=\"center\" prop=\"applyUserName\"/>\n      <el-table-column label=\"申请时间\" align=\"center\" prop=\"applyTime\" width=\"180\">\n        <template slot-scope=\"scope\">\n          <span>{{ parseTime(scope.row.applyTime, '{y}-{m}-{d}') }}</span>\n        </template>\n      </el-table-column>\n      <el-table-column label=\"任务名称\" align=\"center\" prop=\"taskName\"/>\n\n      <el-table-column label=\"操作\" align=\"center\" class-name=\"small-padding fixed-width\">\n        <template slot-scope=\"scope\">\n          <div v-if=\"scope.row.instanceId\">\n            <el-button\n              size=\"mini\"\n              type=\"text\"\n              icon=\"el-icon-edit\"\n              @click=\"detail(scope.row)\"\n              v-hasPermi=\"['workflow:leave']\"\n            >申请详情\n            </el-button>\n            <el-button\n              size=\"mini\"\n              type=\"text\"\n              icon=\"el-icon-edit\"\n              @click=\"historyList(scope.row)\"\n              v-hasPermi=\"['workflow:leave']\"\n            >审批历史\n            </el-button>\n            <el-button\n              size=\"mini\"\n              type=\"text\"\n              icon=\"el-icon-edit\"\n              @click=\"showProcessImgDialog(scope.row)\"\n              v-hasPermi=\"['workflow:leave']\"\n            >进度查看\n            </el-button>\n            <el-button\n              v-if=\"scope.row.taskName.indexOf('已挂起') === -1 && path=='todo'\"\n              size=\"mini\" showFormDialog\n              type=\"text\"\n              icon=\"el-icon-edit\"\n              @click=\"showVerifyDialog(scope.row)\"\n              v-hasPermi=\"['workflow:leave']\"\n            >{{scope.row.taskName.indexOf('审批') !== -1?'审批':scope.row.taskName}}\n            </el-button>\n            <div v-if=\"scope.row.taskName.indexOf('已结束') === -1 && path=='list'\">\n              <el-button\n                size=\"mini\"\n                type=\"text\"\n                icon=\"el-icon-edit\"\n                @click=\"cancelApply(scope.row)\"\n                v-hasPermi=\"['workflow:leave']\"\n              >撤销\n              </el-button>\n              <el-button\n                size=\"mini\"\n                type=\"text\"\n                icon=\"el-icon-edit\"\n                @click=\"suspendOrActiveApply(scope.row)\"\n                v-hasPermi=\"['workflow:leave']\"\n              >{{scope.row.suspendState=== '2' ? '激活' : '挂起'}}\n              </el-button>\n            </div>\n          </div>\n          <div v-else>\n            <el-button\n              size=\"mini\"\n              type=\"text\"\n              icon=\"el-icon-edit\"\n              @click=\"submitApply(scope.row)\"\n              v-hasPermi=\"['workflow:leave']\"\n            >提交申请\n            </el-button>\n            <el-button\n              size=\"mini\"\n              type=\"text\"\n              icon=\"el-icon-edit\"\n              @click=\"handleUpdate(scope.row)\"\n              v-hasPermi=\"['workflow:leave']\"\n            >修改\n            </el-button>\n            <el-button\n              size=\"mini\"\n              type=\"text\"\n              icon=\"el-icon-delete\"\n              @click=\"handleDelete(scope.row)\"\n              v-hasPermi=\"['workflow:leave']\"\n            >删除\n            </el-button>\n          </div>\n        </template>\n      </el-table-column>\n    </el-table>\n\n    <pagination\n      v-show=\"total>0\"\n      :total=\"total\"\n      :page.sync=\"queryParams.pageNum\"\n      :limit.sync=\"queryParams.pageSize\"\n      @pagination=\"getList\"\n    />\n\n    <!-- 添加或修改请假流程对话框 -->\n    <el-dialog :title=\"title\" :visible.sync=\"open\" width=\"500px\" append-to-body>\n      <el-form ref=\"form\" :model=\"form\" :rules=\"rules\" label-width=\"80px\">\n        <el-form-item label=\"标题\" prop=\"title\">\n          <el-input v-model=\"form.title\" placeholder=\"请输入标题\" :disabled=readonly></el-input>\n        </el-form-item>\n        <el-form-item label=\"原因\" prop=\"reason\">\n          <el-input v-model=\"form.reason\" type=\"textarea\" placeholder=\"请输入内容\" :disabled=readonly></el-input>\n        </el-form-item>\n\n        <el-form-item label=\"请假时间\" prop=\"startAndEndTime\">\n          <el-date-picker\n            style=\"width: 380px;height: 36px\"\n            v-model=\"startAndEndTime\"\n            type=\"datetimerange\"\n            value-format=\"yyyy-MM-dd HH:mm:ss\"\n            start-placeholder=\"开始日期\"\n            end-placeholder=\"结束日期\" :disabled=readonly>\n          </el-date-picker>\n        </el-form-item>\n        <el-form-item label=\"请假时长\" prop=\"totalTime\">\n          <el-input v-model=\"formatDateSub\" :disabled=\"true\"/>\n        </el-form-item>\n\n\n        <el-form-item label=\"实际开始时间\" prop=\"realityStartTime\" v-if=\"showVerify.ReportBack\">\n          <el-date-picker\n            v-model=\"form.processParams.DT_realityStartTime\"\n            type=\"datetime\"\n            value-format=\"yyyy-MM-dd HH:mm:ss\"\n            placeholder=\"选择日期时间\">\n\n          </el-date-picker>\n\n        </el-form-item>\n        <el-form-item label=\"实际结束时间\" prop=\"realityEndTime\" v-if=\"showVerify.ReportBack\">\n          <el-date-picker\n            v-model=\"form.processParams.DT_realityEndTime\"\n            type=\"datetime\"\n            value-format=\"yyyy-MM-dd HH:mm:ss\"\n            placeholder=\"选择日期时间\">\n\n          </el-date-picker>\n        </el-form-item>\n\n        <el-form-item label=\"从新申请\" prop=\"reApply\" v-if=\"showVerify.ModifyApply\">\n          <el-radio v-model=\"form.processParams.B_reApply\" label=\"true\" @change=\"handleSelectChange\">重新申请</el-radio>\n          <el-radio v-model=\"form.processParams.B_reApply\" label=\"false\" @change=\"handleSelectChange\">放弃申请</el-radio>\n        </el-form-item>\n\n        <el-form-item label=\"审批意见\" prop=\"deptLeaderApproved\" v-if=\"showVerify.DeptLeaderVerify\">\n          <el-radio v-model=\"form.processParams.B_deptLeaderApproved\" label=\"true\" @change=\"handleSelectChange\">同意\n          </el-radio>\n          <el-radio v-model=\"form.processParams.B_deptLeaderApproved\" label=\"false\" @change=\"handleSelectChange\">拒绝\n          </el-radio>\n        </el-form-item>\n\n        <el-form-item label=\"审批意见\" prop=\"hrApproved\" v-if=\"showVerify.HrVerify\">\n          <el-radio v-model=\"form.processParams.B_hrApproved\" label=\"true\" @change=\"handleSelectChange\">同意</el-radio>\n          <el-radio v-model=\"form.processParams.B_hrApproved\" label=\"false\" @change=\"handleSelectChange\">拒绝</el-radio>\n        </el-form-item>\n\n        <el-form-item label=\"批注\" prop=\"comment\" v-if=\"showButton&& !(showVerify.ModifyApply||showVerify.ReportBack)\">\n          <el-input\n            type=\"textarea\"\n            :rows=\"3\"\n            placeholder=\"请输入内容\"\n            v-model=\"form.processParams.COM_comment\">\n          </el-input>\n        </el-form-item>\n\n\n      </el-form>\n      <div slot=\"footer\" class=\"dialog-footer\">\n        <el-button type=\"primary\" @click=\"submitShowVerifyDialog\" v-show=\"showButton\">确 定</el-button>\n        <el-button type=\"primary\" @click=\"submitForm\" v-show=!readonly&&!showButton>确 定</el-button>\n        <el-button @click=\"cancel\">取 消</el-button>\n      </div>\n    </el-dialog>\n    <!--审批历史-->\n    <el-dialog title=\"审批历史\" :visible.sync=\"dialogTableVisible\">\n      <ApprovalHistory :instanceId=\"instanceId\"></ApprovalHistory>\n      <div slot=\"footer\" class=\"dialog-footer\">\n        <el-button @click=\"cancel\">取 消</el-button>\n      </div>\n    </el-dialog>\n\n    <el-dialog title=\"查看进度\" :visible.sync=\"processImg\">\n      <ProcessImg :instanceId=\"instanceId\"></ProcessImg>\n      <div slot=\"footer\" class=\"dialog-footer\">\n        <el-button @click=\"cancel\">取 消</el-button>\n      </div>\n    </el-dialog>\n  </div>\n</template>\n\n<script>\n  import {\n    listLeave,\n    getLeave,\n    delLeave,\n    addLeave,\n    updateLeave,\n    exportLeave,\n    submitApply,\n    taskDoneList,\n    taskList\n  } from '@/api/workflow/leave'\n  import {cancelApply, suspendOrActiveApply, showVerifyDialog, complete} from '@/api/activiti/process'\n  import {calcTotalSecond, formatTotalDateSub} from '@/utils/dateUtil'\n  import ApprovalHistory from '@/components/activiti/approvalHistory'\n  import ProcessImg from '@/components/activiti/processImg'\n\n  export default {\n    components: {ApprovalHistory, ProcessImg},\n    name: 'Leave',\n    data() {\n      return {\n        // 审批确定按钮\n        showButton: false,\n        // 审批人控制表单\n        showVerify: {\n          ModifyApply: false,\n          DeptLeaderVerify: false,\n          HrVerify: false,\n          ReportBack: false,\n        },\n        // 路径\n        path: '',\n        // 查询方法\n        getLeaveList: null,\n\n        //流程图窗口开关\n        processImg: false,\n        //审批历史窗口开关\n        dialogTableVisible: false,\n        //历史审批窗口参数\n        instanceId: '',\n\n        // 请假时长\n        formatDateSub: '',\n        startAndEndTime: ['', ''],\n        readonly: false,\n        // 遮罩层\n        loading: true,\n        // 选中数组\n        ids: [],\n        // 非单个禁用\n        single: true,\n        // 非多个禁用\n        multiple: true,\n        // 显示搜索条件\n        showSearch: true,\n        // 总条数\n        total: 0,\n        // 请假流程表格数据\n        leaveList: [],\n        // 弹出层标题\n        title: '',\n        // 是否显示弹出层\n        open: false,\n        // 查询参数\n        queryParams: {\n          pageNum: 1,\n          pageSize: 10,\n          type: null,\n          title: null,\n          reason: null,\n          leaveStartTime: null,\n          leaveEndTime: null,\n          totalTime: null,\n          instanceId: null,\n          applyUser: null,\n          applyTime: null,\n          realityStartTime: null,\n          realityEndTime: null\n        },\n        // 表单参数\n        form: {\n          processParams: {}\n        },\n        // 表单校验\n        rules: {\n          title: [\n            {required: true, message: '用户名称不能为空', trigger: 'blur'}\n          ], totalTime: [\n            {required: true, message: '请假时间不能为空', trigger: 'blur'}\n          ], reason: [\n            {required: true, message: '原因不能为空', trigger: 'blur'}\n          ], realityStartTime: [\n            {required: true, message: '原因不能为空', trigger: 'blur'}\n          ], realityEndTime: [\n            {required: true, message: '原因不能为空', trigger: 'blur'}\n          ]\n        }\n      }\n    },\n    created() {\n      const path = this.$route.path.split('/').pop()\n      this.path = path\n      if ('list' == path) {\n        this.getLeaveList = listLeave\n      } else if ('todo' == path) {\n        this.getLeaveList = taskList\n      } else if ('done' == path) {\n        this.getLeaveList = taskDoneList\n      }\n      this.getList()\n    },\n    methods: {\n\n      submitShowVerifyDialog() {\n        this.$refs['form'].validate(valid => {\n          if (valid) {\n            complete(this.form).then(response => {\n              if (response.code === 200) {\n                if (this.showVerify.ModifyApply) {\n                  updateLeave(this.form).then(response => {\n                    if (response.code === 200) {\n                      this.msgSuccess('修改成功')\n                      this.open = false\n                      this.getList()\n                    }\n                  })\n                } else {\n                  this.msgSuccess('操作成功')\n                  this.open = false\n                  this.getList()\n                }\n                this.reset()\n              }\n            })\n          }\n        })\n      },\n      // 审批菜单控制\n      showVerifyDialog(row) {\n        this.showButton = true\n        this.reset()\n        getLeave(row.id).then(response => {\n          this.form = response.data\n          this.startAndEndTime = [this.form.leaveStartTime, this.form.leaveEndTime]\n          showVerifyDialog(row.taskId).then(response => {\n            console.log(response.msg)\n            if ('ModifyApply' === response.msg) {\n              this.readonly = false\n              this.showVerify.ModifyApply = true;\n              this.form.processParams.B_reApply = \"true\";\n            } else {\n              if ('HrVerify' === response.msg) {\n                this.showVerify.HrVerify = true;\n                this.form.processParams.B_hrApproved = \"true\";\n              } else if ('DeptLeaderVerify' === response.msg) {\n                this.showVerify.DeptLeaderVerify = true;\n                this.form.processParams.B_deptLeaderApproved = \"true\";\n              } else if ('ReportBack' === response.msg) {\n                this.showVerify.ReportBack = true;\n              }\n              this.readonly = true\n            }\n            this.open = true\n            this.title = row.taskName\n          })\n        })\n      },\n      /** 历史列表 */\n      historyList(row) {\n        this.dialogTableVisible = true\n        this.instanceId = row.instanceId\n      },\n      /** 查询请假流程列表 */\n      getList() {\n        this.loading = true\n        this.getLeaveList(this.queryParams).then(response => {\n          this.leaveList = response.rows\n          this.total = response.total\n          this.loading = false\n        })\n      },\n      // 取消按钮\n      cancel() {\n        this.open = false\n        this.dialogTableVisible = false\n        this.processImg = false\n        this.showButton = false\n        this.reset()\n\n      },\n      // 表单重置\n      reset() {\n        this.form = {\n          id: null,\n          type: null,\n          title: null,\n          reason: null,\n          leaveStartTime: null,\n          leaveEndTime: null,\n          totalTime: null,\n          instanceId: null,\n          createBy: null,\n          createTime: null,\n          updateBy: null,\n          updateTime: null,\n          applyUser: null,\n          applyTime: null,\n          realityStartTime: null,\n          realityEndTime: null,\n          processParams: {}\n        }\n        this.startAndEndTime = ['', '']\n        this.formatDateSub = null\n        this.resetForm('form')\n        this.instanceId = ''\n        this.showVerify = {\n          ModifyApply: false,\n          DeptLeaderVerify: false,\n          HrVerify: false,\n          ReportBack: false,\n        }\n      },\n      /** 搜索按钮操作 */\n      handleQuery() {\n        this.queryParams.pageNum = 1\n        this.getList()\n      },\n      /** 重置按钮操作 */\n      resetQuery() {\n        this.resetForm('queryForm')\n        this.handleQuery()\n      },\n      /** 新增按钮操作 */\n      handleAdd() {\n        this.reset()\n        this.open = true\n        this.readonly = false\n        this.title = '添加请假流程'\n      },\n      /** 修改按钮操作 */\n      handleUpdate(row) {\n        this.reset()\n        getLeave(row.id).then(response => {\n          this.form = response.data\n          this.startAndEndTime = [this.form.leaveStartTime, this.form.leaveEndTime]\n          this.open = true\n          this.readonly = false\n          this.title = '修改请假流程'\n        })\n      },\n      submitApply(row) {\n        this.$confirm('确认要提交申请吗?', '警告', {\n          confirmButtonText: '确定',\n          cancelButtonText: '取消',\n          type: 'warning'\n        }).then(function () {\n          return submitApply(row.id)\n        }).then(() => {\n          this.getList()\n          this.msgSuccess('提交成功')\n        }).catch(function () {\n        })\n      },\n      cancelApply(row) {\n        this.$confirm('确认要撤销申请吗?', '警告', {\n          confirmButtonText: '确定',\n          cancelButtonText: '取消',\n          type: 'warning'\n        }).then(function () {\n          return cancelApply(row.instanceId)\n        }).then(() => {\n          this.getList()\n          this.msgSuccess('撤销成功')\n        }).catch(function () {\n        })\n      },\n      suspendOrActiveApply(row) {\n        var suspendOrActive = row.suspendState === '2' ? '激活' : '挂起'\n        this.$confirm('确认要' + suspendOrActive + '申请吗?', '警告', {\n          confirmButtonText: '确定',\n          cancelButtonText: '取消',\n          type: 'warning'\n        }).then(function () {\n          const data = {'instanceId': row.instanceId, 'suspendState': row.suspendState}\n          return suspendOrActiveApply(data)\n        }).then(() => {\n          this.getList()\n          this.msgSuccess('撤销成功')\n        }).catch(function () {\n        })\n      },\n      /** 表单数据展示 */\n      detail(row) {\n        this.reset()\n        getLeave(row.id).then(response => {\n          this.form = response.data\n          this.startAndEndTime = [this.form.leaveStartTime, this.form.leaveEndTime]\n          this.open = true\n          this.readonly = true\n          this.title = '申请详情'\n        })\n      },\n      /** 提交按钮 */\n      submitForm() {\n        this.$refs['form'].validate(valid => {\n          if (valid) {\n            if (this.form.id != null) {\n              updateLeave(this.form).then(response => {\n                if (response.code === 200) {\n                  this.msgSuccess('修改成功')\n                  this.open = false\n                  this.getList()\n                }\n              })\n            } else {\n              addLeave(this.form).then(response => {\n                if (response.code === 200) {\n                  this.msgSuccess('新增成功')\n                  this.open = false\n                  this.getList()\n                }\n              })\n            }\n          }\n        })\n      },\n      /** 删除按钮操作 */\n      handleDelete(row) {\n        const ids = row.id || this.ids\n        this.$confirm('是否确认删除请假流程编号为\"' + ids + '\"的数据项?', '警告', {\n          confirmButtonText: '确定',\n          cancelButtonText: '取消',\n          type: 'warning'\n        }).then(function () {\n          return delLeave(ids)\n        }).then(() => {\n          this.getList()\n          this.msgSuccess('删除成功')\n        }).catch(function () {\n        })\n      },\n      /** 导出按钮操作 */\n      handleExport() {\n        const queryParams = this.queryParams\n        this.$confirm('是否确认导出所有请假流程数据项?', '警告', {\n          confirmButtonText: '确定',\n          cancelButtonText: '取消',\n          type: 'warning'\n        }).then(function () {\n          return exportLeave(queryParams)\n        }).then(response => {\n          this.download(response.msg)\n        }).catch(function () {\n        })\n      },\n      showProcessImgDialog(row) {\n        this.processImg = true\n        this.instanceId = row.instanceId\n      },\n      handleSelectChange(val) {\n        console.log(this.form.processParams.B_deptLeaderApproved)\n        this.$forceUpdate()\n      }\n    },\n    watch: {\n      startAndEndTime: {\n        handler(newValue) {\n          this.form.leaveStartTime = newValue[0]\n          this.form.leaveEndTime = newValue[1]\n          if (newValue[0] && newValue[1]) {\n            this.form.totalTime = calcTotalSecond(newValue[0], newValue[1])\n            this.formatDateSub = formatTotalDateSub(this.form.totalTime)\n          }\n\n        },\n        deep: true\n      }\n    }\n  }\n\n</script>\n"]}]} |