<!doctype html>
<html>
	<head>
		<meta charset="utf-8"><meta http-equiv="Expires" content="0"><meta http-equiv="Pragma" content="no-cache"><meta http-equiv="Cache-control" content="no-cache"><meta http-equiv="Cache" content="no-cache">
		<title>任务计算器</title>
		
		<script type="text/javascript">
			var pageVue = null;
			function loadJsCss(callback) {
				var jscss_urls = [
					{id: "js51211", type: "js", url: "root/js/config.js"},
				];
				window.top.initJsCss(document, jscss_urls, callback);
			};
			
			function initVue() {
				new FormVue({
					el: "#vbody",
					data: {
						dataname: "",
						title: "任务计算器",
						formAttr: {
							istitle: false,
							title: "表单名称",
							columnnumber: 1,
							labelwidth: "260px",
							labelposition: "left",//"left",// right//top
							size: "mini",
							border: "10px solid #c6c6c600"
						},
						
						default_formFields: [
							{isshow: "T", field: "field1", name: "1. 获取员工、架构、客户、指标主数据", type: "span", align: "right"},
							{isshow: "T", field: "field2", name: "2. 获取业务数据", type: "span", align: "right"},
							{isshow: "T", field: "field3", name: "3. 获取奖金方案参数", type: "span", align: "right"},
							{isshow: "T", field: "field4", name: "4. 匹配员工、考勤、业务数据", type: "span", align: "right"},
							{isshow: "T", field: "field5", name: "5. 计算完成,生成折扣列表", type: "span", align: "right"},
						],
						formFields: [],
						
						newformData: {
							//id: uuid_short(),
							// code: createCode("BA"),
							create_time: createDatetime(),
							status: "input",
							state_name: "草稿",
							creator_name: window.top.vue.userinfo.name,
							type_code: "",
							type_name: "",
						},
						formData: {},
						
						tableFields: [{isshow: "T", field: "value", name: "试算进度", align: "left"}],
						tableData: [],
						
						//按键权限设置
						isedit: false,//提交前编辑,保存/提交
						isrefuseedit: false,//拒绝后编辑,保存/再次提交
						isapproval: false,//审批,同意/拒绝/转办/退回
						
						iscommit: false,//提交标记
						
						//弹窗参数
						popupParames: {},
						//字段设置
						tablefieldClick: {},
						formfieldClick: {},
					},
					created() {
						this.popupParames = clone(Root.popupParames);
						this.title = this.popupParames.title || this.popupParames.text
						if (this.popupParames.data) {
							this.formData = clone(this.popupParames.data);
						}
						
						if (this.popupParames.sceneCode) {
							if (this.popupParames.sceneCode == "add") {//新增
								if (this.newformData) {
									let formData_ = clone(this.formData);
									
									for (var k in this.newformData) {
										formData_[k] = this.newformData[k];
									}
									this.formData = formData_;
								}
								this.isedit = true;
							}
							else if (this.popupParames.sceneCode == "browse") {//只读
								this.formAttr.disabled = true;
							}
							else if (this.popupParames.sceneCode == "edit") {//编辑
								this.isedit = true;
							}
							else if (this.popupParames.sceneCode == "approval") {//审批
								this.formAttr.disabled = true;
								this.isapproval = true;
							}
							else if (this.popupParames.sceneCode == "refuseedit") {//拒绝后的编辑
								this.isrefuseedit = true;
							}
						}
					},
					
					mounted() {
						var me = this;
						//预加载数据
						if (this.dataRequest && this.dataRequest.length) {
							var result = {};
							this.loadRequestData(this.dataRequest, result, function(data) {
								me.dataRequestObj = data;
								//预加载数据后给哪些字段设置options或formatterjson
								
								data.agm_template.map(c=>{
									me.options_templateobj[c[me.props_template.value]] = c;
								})
								
								let agm_template_ = ArrayToTree(clone(data.agm_template), "name", "parent_id");
								me.options_category = agm_template_;
								
								me.initData();
							});
						}
						else {
							this.initData();
						}
						
						// 以服务的方式调用的 Loading 需要异步关闭
						this.$nextTick(() => { 
							hideLoading();
							
							//重新设置弹窗宽高
							this.$nextTick(function(){
								//let w_ = this.$refs.popup_body.offsetWidth + "px";
								let w_ = "440px";
								let h_ = this.$refs.popup_body.offsetHeight + "px";
								Root.setPopupWH(w_, h_);
							})
						});
					},
					
					methods:{
						//关闭弹窗
						closeDialog() {
							var me = this;
							if (me.popupParames.totab){
								Root.tab.removeItem(Root.tab.selected);
								Root.tab.open(me.popupParames.parentOption, false); 
							}
							else {
								Root.hidePopup();
							}
						},
						//关闭前调回调
						saveAfter() {
							var me = this;
							if(this.popupParames.callback) {
								let obj = {
									//row: this.formData
								}
								this.popupParames.callback(obj, function() {
									me.closeDialog();
								});
							}
							else {
								me.closeDialog();
							}
						},
						
						initData() {
							let me = this;
							var id_ = null;
							if (this.formData.id) {
								id_ = this.formData.id;
							}
							
							me.formFields = clone(me.default_formFields)
							
							me.formData.field1 = "0%"
							me.formData.field2 = "0%"
							me.formData.field3 = "0%"
							me.formData.field4 = "0%"
							me.formData.field5 = "0%"
							
							//字段数组转字段obj,目的为了筛选时获取字段属性
							me.fieldsToFieldsObj();
							
							//设置字段事件
							me.tableFieldClick();
						},
						
						tableFieldClick() {
							var me = this;
						},
						
						run() {
							let me = this
							
							let param = {
								id: this.popupParames.data.id
							}
							
							Server.call("root/fee/runTask", param, function(result) {
								console.log(result);
							});
							
							let remark = false
							
							for (let i = 0; i <= 2; i++) {
								setTimeout(() => {
									let param = {
										taskId: me.popupParames.data.id
									}
									  
									Server.call("root/fee/getEngineLog", param, function(result) {
										console.log(result);
										
										if (result && result.data && result.data.info) {
											me.tableData = result.data.info
										}
										else {
											if (!remark) {
												Root.message({
													type: 'warning',
													message: '暂无运行日志',
													showClose: true
												})
											}
											
											remark = true
											
											return;
										}
									}, function(error) {
										if (!remark) {
											Root.message({
												type: 'warning',
												message: '暂无运行日志',
												showClose: true
											})
										}
										
										remark = true
										
										return;
									});
								}, 1000 * i)
							}
						}
					}
				});
			};
			
			loadJsCss(function () {
				initVue();
			});
		</script>
		<style>
			/*  在vue.js中 v-cloak 这个指令是防止页面加载时出现 vuejs 的变量名而设计的 */
			[v-cloak] {
				display: none !important;
			}
		</style>
		
	</head>
	
	<body style="margin: 0px;">
		<div v-cloak id="vbody">
			<div id="page_root">
				<div ref="popup_body" style="padding: 0 20px;">
					<div class="el-dialog__header">
						<div class="dialog-title">
						  <i class="iconfont icon-customermanagement"></i>
						  <span> {{title}}</span>
						</div>
					</div>	
					<div style="height: 500px; width: 400px; overflow-y: auto;">
						<div class="el-dialog__body">
							<!-- <h-form
								ref="form1"
								:form-attr="formAttr"
								:table-fields="formFields"
								:form-data="formData"
								:table-field-click="formfieldClick"
							>
							</h-form> -->
							<h-table
								ref="table1"
								:table-fields="tableFields" 
								:table-data="tableData"
								:table-height="400" 
								:is-pagination="false"
								emptytext="请点击运行试算"
							>
							</h-table>
						</div>
					</div>
					<div class="el-dialog__footer">
						<el-button size="small" type="default" @click="saveAfter">å…³ é—­</el-button>
						<el-button size="small" @click="run">运 行</el-button>
					</div>
				</div>
			</div>
		</div>
		
		<div id="page_loading" style="position: absolute; top:0px; width: 100vw; height: 50vh;">
			<div class="spinner">
			  <div class="cube1"></div>
			  <div class="cube2"></div>
			</div>
		</div>
	</body>
</html>