<!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 src="../../../jsnew/elementDefault.js?v=20220425"></script>
        <script src="../../../jsnew/vue/vue.js"></script>
		<script src="../../../jsnew/vue/element-ui/element-ui_15/index.js"></script>
		<script src="../../../jsnew/myelement.js?v=20220425"></script>
		<script src="../../../jsnew/page.js?v=20220425"></script>
		<!-- <script src="../../../setting.js"></script> -->
		
		<link href="../../../jsnew/vue/element-ui/element-ui_15/theme-chalk/index.css" rel="stylesheet">
		<link href="../../../jsnew/myelement.css?v=20220426" rel="stylesheet">
		<link href="../../../jsnew/theme.css?v=20220426" rel="stylesheet">
		<link href="../../../css/iconfont.css" rel="stylesheet">
		<link href="../../../jsnew/page.css?v=20220425" rel="stylesheet">
		<link href="//at.alicdn.com/t/font_2374495_13ltsxm2eor.css" rel="stylesheet">
	</head>

	<style>
        /*  在vue.js中 v-cloak 这个指令是防止页面加载时出现 vuejs 的变量名而设计的 */
        [v-cloak] {
            display: none !important;
        }
    </style>

	<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: t_height +'px', '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>
						</div>
					</div>
					<div class="el-dialog__footer" v-if="isedit">
						<el-button size="small" type="default" @click="closeDialog">取 消</el-button>
						<el-button size="small" v-if="(isedit || isrefuseedit)" type="primary" @click="">保 存</el-button>
						<el-button size="small" v-if="isedit" type="success" @click="">提 交</el-button>
						<el-button size="small" v-if="isrefuseedit" type="success" @click="">再次提交</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>
		
		<script type="text/javascript">
			function initVue() {
				new FormVue({
					el: "#vbody",
					data: {
						dataname: "md_product_line",
						table_dataname: "md_product_line.aaa_detail",
						title: "全国集采中标价",

						formAttr: {
							istitle: false,
							title: "表单名称",
							columnnumber: 2,
							labelwidth: "200px",
							labelposition: "left",//"left",// right//top
							size: "mini",
							border: "3px solid #c6c6c600"
						},
						default_formFields: [
                            {isshow: "T", field: "program", name: "项目名称", width: "200", align: "left", type: 'popup',},
							{isshow: "T", field: "area", name: "省份", width: "150", type: 'select',},
							{isshow: "T", field: "name", name: "通用名", width: "150", type: 'popup',},
                            {isshow: "T", field: "code", name: "剂型", width: "150", type: 'span',},
                            {isshow: "T", field: "spec", name: "è§„æ ¼", width: "100", type: 'span',},
							{isshow: "T", field: "current_price", name: "中标价", width: "100", formatter: "formatter_money", align: "right", type: "input"},
							{isshow: "T", field: "qty", name: "带量数量/首年约定采购量", width: "100", type: "span", align: "right",},
							{isshow: "T", field: "time", name: "执行时间", width: "100", formatter: "formatter_date", type: "date"},
							{isshow: "T", field: "ent_time", name: "标期截止时间", width: "100", formatter: "formatter_date", type: "date"},
							{isshow: "T", field: "remark", name: "备注", width: "150", align: "left", type: "textarea", colspan: 2},
						],
						formFields: [],
						newformData: {
							//id: uuid_short(),
							// code: createCode("BA"),
							// create_time: createDatetime(),
							state_code: "Draft",
							state_name: "录入",
							// creator_name: window.top.vue.userinfo.name,
							type_code: "",
							type_name: "",
						},
						formData: {},
						
						//字段设置
						tablefieldClick: {},
						formfieldClick: {},

						//按键权限设置
						isedit: false,//提交前编辑,保存/提交
						isrefuseedit: false,//拒绝后编辑,保存/再次提交
						isapproval: false,//审批,同意/拒绝/转办/退回
						isend: false,
						
						iscommit: false,//提交标记
						
						//弹窗参数
						popupParames: {},

						t_height:null,
						isRefresh: true,
					},
					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_;
								}
								
								if (this.newTableData) {
									this.tableData.push(clone(this.newTableData));
								}
								
								this.isedit = true;
							}
							else if (this.popupParames.sceneCode == "browse") {//只读
								this.formAttr.disabled = true;
								this.formAttr2.disabled = true;
							}
							else if (this.popupParames.sceneCode == "edit") {//编辑
								this.isedit = true;
							}
							else if (this.popupParames.sceneCode == "approval") {//审批
								this.formAttr.disabled = true;
								this.formAttr2.disabled = true;
								this.isapproval = true;
							}
							else if (this.popupParames.sceneCode == "refuseedit") {//拒绝后的编辑
								this.isrefuseedit = true;
							}
						}
					},
					
					mounted() {
						var me = this;
						me.t_height = document.documentElement.clientHeight*1 - 91;

						//预加载数据
						if (this.dataRequest && this.dataRequest.length) {
							var result = {};
							this.loadRequestData(this.dataRequest, result, function(data) {
								me.dataRequestObj = data;
								//预加载数据后给哪些字段设置options或formatterjson
								
								me.initData();
							});
						}
						else {
							this.initData();
						}
						
						// 以服务的方式调用的 Loading 需要异步关闭
						this.$nextTick(() => { 
							hideLoading();
							
							//重新设置弹窗宽高
							this.$nextTick(function(){
								let w_ = this.$refs.popup_body.offsetWidth + "px";
								// let w_ = "900px";
								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 (!me.formFields || (me.formFields && me.formFields.length == 0)) {
                                me.formFields = clone(me.default_formFields);

                                //字段数组转字段obj
                                me.fieldsToFieldsObj();
                                
                                //设置字段事件
                                me.tableFieldClick();
                            }

							// if (this.formData.id) {
							// 	id_ = this.formData.id;
							// }
							// this.getRowDataById(id_, function(result) {//查询后的回调,用于获取字段的
							// 	if (result.meta && result.meta[me.dataname] && result.meta[me.dataname].fields) {
							// 		var metas = clone(result.meta[me.dataname].fields);
							// 		var table_dataname_ = "";
							// 		for (var dataname_ in result.meta) {
							// 			if (dataname_ != me.dataname && !table_dataname_) {
							// 				table_dataname_ = dataname_;
							// 			}
							// 		}
							// 		var table_metas = [];
							// 		if (table_dataname_) {
							// 			me.table_dataname = table_dataname_;
							// 			table_metas = clone(result.meta[table_dataname_].fields);

							// 		}
									
							// 		var formFields_ = [];
							// 		var tableFields_ = [];
							// 		metas.map(f=>{
							// 			f.isshow = "T";
							// 			formFields_.push(clone(f));
							// 		})
							// 		table_metas.map(f=>{
							// 			f.isshow = "T";
							// 			tableFields_.push(clone(f));
							// 		})
									
							// 		if (!me.formFields || (me.formFields && me.formFields.length == 0)) {
							// 			me.formFields = clone(formFields_);
							// 			me.tableFields = clone(tableFields_);
										
							// 			//字段数组转字段obj
							// 			me.fieldsToFieldsObj();
										
							// 			//设置字段事件
							// 			me.tableFieldClick();
							// 		}
							// 	}
								
							// 	if (me.rowData[me.dataname]) {
							// 		me.formData = me.rowData[me.dataname];
							// 	}
							// 	if (me.rowData[me.table_dataname]) {
							// 		me.tableData = me.rowData[me.table_dataname];
							// 	}
							// })
						},

						newEndDeatil() {
							var me = this;
							
							var config = {
								totab: false, //true: 以Tab导航的方式打开
								width: "900px",
								height: "900px",
								icon: "icon-product",
								text: "请选择要终止的全国集采中标价明细数据",
								id: "popup_terminal_policy_info_list",//totab: true时需设置,用于判断是否已打开此页面
								url: "../agreement/policy/popup_terminal_policy_info_list.html",
								data: {},
								delta: {},
								sceneCode: "add",//"refuseedit",//"approval", //"add"//"browse",
								callback: function(obj, callback) {
									if (callback) {
										callback();
									}
								}
							};
							me.doPopupByPublic(config);
						},
						
						tableFieldClick() {
							var me = this;
							//表单字段事件设置
							this.formfieldClick = {
								files: {
									buttonarray: {
										onclick: function(obj) {
											var filenamefield = obj.obj.field;
											var fileidfield = "files";
											if(obj.buttonobj && obj.buttonobj.code == "showfilebyfile"){
												me.showFileImgByFileId(obj.buttonobj.fileobj);
											}else if (obj.buttonobj && obj.buttonobj.code == "uploadlist"){
												me.onPopupByUploadFile(filenamefield, fileidfield, me.dataname);
											}else if (obj.buttonobj && obj.buttonobj.code == "delfilebyfile"){
												me.deleteByFileId(filenamefield, obj.buttonobj.fileobj);
											}
										}
									}
								},

								oa_code: {
									val: {
										onclick: function(obj) {

										}
									}
								}
							};
							
							//表格字段事件设置
							this.tablefieldClick = {
							};
						
						},

						onPopupByUploadFile(filenamefield, fileidfield,dataname) {
							var me = this;
							var analysistype_ = "";
							var formData_ = clone(me.formData);
							var delta_ = {filetypelist: []}//".png", ".jpg", ".pdf"
							var config = {
								totab: false,
								width: "500px",
								icon: "icon-product",
								text: "附件上传",
								id: "popupByUploadFile",
								url: "../tool/popup_uploadFile.html",
								data: {
									dataName: dataname,
									fileidfieldName: fileidfield,
									id: me.formData.id,
									fileNamefieldName: filenamefield,
									max_size: "100MB",
								},
								delta: delta_,
								callback: function(obj, callback) {
									me.$message({
										showClose: true,
										message: '上传成功!',
										type: 'success'
									});
									
									var file_ = {
										id: obj.row[0].id,
										file_name: decodeURI(obj.row[0].name)
									}
									if (!formData_[filenamefield]) {
										formData_[filenamefield] = []
									}
									formData_[filenamefield].push(file_);
									
									me.formData = formData_;
									if (callback) {
										callback();
									}
								}
							};
							this.doPopupByPublic(config);
						},

						deleteByFileId(filenamefield, fileobj){
							var me = this;
							var formData_ = clone(me.formData);
							Root.confirm('确定删除附件【' + fileobj.file_name + '】吗?', '删除提示', {
							  confirmButtonText: '删除',
							  cancelButtonText: '取消',
							  type: 'warning'
							}).then(() => {
								if (fileobj.id) {
									let param = {
										dataname: "file_index",
										id: fileobj.id
									}
									
									Server.call("root/data/deleteEntity", param, function(result) {
										console.log(result);
										if (result && result.data) {
											me.formData[filenamefield].remove(fileobj);
											// me.formData = formData_;
											Root.message({
												type: 'success',
												message: '删除成功!'
											});
										}
									});
								}
							}).catch(() => {
								Root.message({
									type: 'info',
									message: '已取消删除'
								});          
							});
							
						},
						
						showFileImgByFileId(fileobj) {
							let me = this;
							var file_id = fileobj.id;
							var file_name = fileobj.file_name;
							
							this.zzimg = {};
							this.zzimgList = [];
							this.file_txt = false;
							if(file_id) {
								var fileid = file_id;
								let fileName = clone(file_name);
								let index1 = fileName.lastIndexOf(".");
								let index2 = fileName.length;
								let suffix = fileName.substring(index1, index2).toLowerCase(); //后缀名
								if (suffix == ".png" || suffix == ".jpg" || suffix == ".pdf") {
									var row = {
										fileid: fileid,
										filename: fileName
									}
						
									var config = {
										totab: false,
										width: "1200px",
										height: 800,
										icon: "icon-product",
										text: "附件预览",
										id: "pdf_" + fileid,
										url: "module/tool/page/popup_file_pdf.html",
										data: row,
										delta: {},
										callback: function(obj, callback) {
											if (callback) {
												callback();
											}
										}
									};
									this.doPopupByPublic(config);
						
								}
								else {//只可下载,不可预览
									// handleDownloadUrl(fileid,false);
									handleDownload(fileid);
								}
							}
						},
						
						
						
						addTableData() {
							var table_row = clone(this.newTableData);
							this.rowChange(table_row, "add", this.table_dataname);
						},
						
						delData(scope) {
							let me = this;
							let row = scope.row;
							let index_ = scope.$index;
							
							Root.confirm('确定删除数据【' + JSON.stringify(row) + '】吗?', '删除提示', {
							  confirmButtonText: '删除',
							  cancelButtonText: '取消',
							  type: 'warning'
							}).then(() => {
								me.rowChange(row, "del", me.table_dataname);
							}).catch(() => {
								Root.message({
									type: 'info',
									message: '已取消删除'
								});          
							});
						},
						
						rowChange(row, type, tablename) {
							var me = this;
							if (type == "add") {
								this.tableData.unshift(row);
							}
							else if (type == "del") {
								if (row.id) {
									let param = {
										dataname: tablename,
										id: row.id
									}
									
									Server.call("root/data/deleteEntity", param, function(result) {
										console.log(result);
										if (result && result.data) {
											me.tableData.remove(row);
											
											Root.message({
												type: 'success',
												message: '删除成功!'
											});
										}
									});
								}
								else {
									this.tableData.remove(row);
								}
							}
							else {
							
							}
						},
						
						//提交
						submitRowTable() {
							this.iscommit = true;
							this.saveRowTable();
						},
						
						//保存
						saveRowTable() {
							var me = this;
							var operator_ = "save";//保存
							if(me.iscommit) {
								operator_ = "commit";//提交
							}
							
							var entity_ = clone(this.formData);
							var entity = {};
							for (var r in entity_) {
								if (entity_[r]) {
									entity[r] = entity_[r];
								}
							}
							
							var tableData_ = [];
							this.tableData.map(r=>{
								var row_ = {};
								for (var k in r) {
									if (r[k]) {
										row_[k] = r[k];
									}
								}
								tableData_.push(row_);
							})
							
							if (tableData_.length == 0) {
								Root.message({
									type: 'warning',
									message: '请先添加明细数据'
								});
								return
							}
							
							let param = {
								dataname: this.dataname,
								operator: operator_,
								data: {},
							}
							param.data[this.dataname] = entity;
							param.data[this.table_dataname] = tableData_;
							
							Server.call("root/data/saveEntity", param, function(result) {
								console.log(result);
								if (result.success) {
									if(me.iscommit){
										me.iscommit = false;
										Root.message({
											type: 'success',
											message: '提交成功'
										}); 
										me.saveAfter();
									}
									else {
										Root.message({
											type: 'success',
											message: '保存成功'
										}); 
										me.saveAfter();
									}
								}
							});
						},
						
					}
				});
			};

            initVue();
        </script>
		
		<style>
			.a:hover{
				background-color: #FFFFFF;
			}
			.el-input__inner{
				padding: 0 2px;
			}
			.header {
				height: 21px;
			}
			.el-dialog_header {
				padding: 10px 20px;
				border-bottom: 1px solid #ccc;
				right: 10px;
				left: 10px;
				top: 0px;
				position: fixed;
			}
			.el-dialog_body{
				padding: 20px;
				
				overflow-y: auto;
				right: 10px;
				left: 10px;
				top: 42px;
				bottom: 50px;	
				position: fixed;
			}
			.el-dialog_footer {
				padding: 10px 20px;
				border-top: 1px solid #ccc;
				right: 10px;
				left: 10px;
				bottom: 0px;
				position: fixed;
				background-color: #fff;
				z-index: 10;
				text-align: right;
			}
			html{
				overflow-y: hidden;
			}

			/* .el-button--mini {
				color: #FFF;
				background-color: #2984e2;
				border-color: #409EFF;
			} */
		</style>
		
	</body>
</html>