| | |
| | | <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> |
| | | <title>模板信息</title> |
| | | |
| | | <script type="text/javascript"> |
| | | var pageVue = null; |
| | |
| | | new FormVue({ |
| | | el: "#vbody", |
| | | data: { |
| | | dataname: "md_batch", |
| | | title: "添加批号", |
| | | dataname: "sys_dossier", |
| | | title: "模板信息", |
| | | |
| | | formAttr: { |
| | | istitle: false, |
| | | title: "批号信息", |
| | | title: "表单名称", |
| | | columnnumber: 2, |
| | | labelwidth: "140px", |
| | | labelwidth: "100px", |
| | | labelposition: "left",//"left",// right//top |
| | | size: "mini", |
| | | border: "10px solid #c6c6c600" |
| | | }, |
| | | |
| | | formFields: [], |
| | | default_formFields: [ |
| | | {field: "field11", name: "产品线", isshow: "T"}, |
| | | {field: "field22", name: "产品编码", isshow: "T"}, |
| | | {field: "name", name: "产品名称", isshow: "T", type:"popup"}, |
| | | {field: "batchnumber", name: "批号", isshow: "T"}, |
| | | {isshow: "T", field: "field33",name: "产品检验报告", type: "span", buttonarrayname: [{type: "isnotdatashow", buttonname:"文件上传",code:"upload", icon: "el-icon-upload", classname: "form_uploadfile"},{type:"isdata", buttonname: "查看文件", icon: "el-icon-search",code:"showfile", classname: "form_showfile"},{type: "isdatashow", buttonname: "删除附件", icon: "el-icon-delete",code:"delfile", classname: "form_delfile"}], required: true}, |
| | | ], |
| | | 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: "", |
| | | state_code: "Open", |
| | | state_name: "生效", |
| | | type: "agreement", |
| | | // creator_id: |
| | | }, |
| | | formData: {}, |
| | | |
| | |
| | | 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 |
| | | 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_; |
| | | //动态获取默认数据 |
| | | var newEntity_ = { |
| | | name: "newEntity", |
| | | url: "root/data/newEntity", |
| | | paramsobj: {dataname: "sys_dossier"}, |
| | | isnotoption: true, //true:不是选项 |
| | | } |
| | | this.dataRequest.push(newEntity_); |
| | | |
| | | this.isedit = true; |
| | | } |
| | | else if (this.popupParames.sceneCode == "browse") {//只读 |
| | |
| | | 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_; |
| | | |
| | | if (me.dataRequestObj.newEntity) { |
| | | var formData = clone(me.dataRequestObj.newEntity.data["sys_dossier"]); |
| | | // formData.product_category_name = []; |
| | | if (me.newformData) { |
| | | let formData_ = clone(formData); |
| | | |
| | | for (var k in me.newformData) { |
| | | if (!formData_[k]) { |
| | | formData_[k] = me.newformData[k]; |
| | | } |
| | | } |
| | | |
| | | me.formData = formData_; |
| | | } |
| | | |
| | | if (me.popupParames.delta) { |
| | | me.formData.category_id = clone(me.popupParames.delta.nodeKey); |
| | | } |
| | | } |
| | | |
| | | me.initData(); |
| | | }); |
| | | } |
| | |
| | | //let w_ = this.$refs.popup_body.offsetWidth + "px"; |
| | | let w_ = "900px"; |
| | | let h_ = this.$refs.popup_body.offsetHeight + "px"; |
| | | |
| | | Root.setPopupWH(w_, h_); |
| | | }) |
| | | }); |
| | |
| | | formFields_.push(clone(f)); |
| | | }) |
| | | if (!me.formFields || (me.formFields && me.formFields.length == 0)) { |
| | | me.formFields = clone(me.default_formFields); |
| | | me.formFields = clone(formFields_); |
| | | |
| | | //字段数组转字段obj,目的为了筛选时获取字段属性 |
| | | me.fieldsToFieldsObj(); |
| | |
| | | me.tableFieldClick(); |
| | | } |
| | | } |
| | | |
| | | if (me.rowData["file_index"]) { |
| | | |
| | | } |
| | | }) |
| | | }, |
| | | |
| | | tableFieldClick() { |
| | | var me = this; |
| | | //表格字段事件设置 |
| | | this.tablefieldClick = { |
| | | }; |
| | | |
| | | //表单字段事件设置 |
| | | this.formfieldClick = { |
| | | name: { |
| | | popup: { |
| | | onclick: function(obj) {//弹窗点击事件 |
| | | //打开 |
| | | me.tablePopup_productList(obj) |
| | | template_type_code: { |
| | | select: { |
| | | onchange: function(obj) { |
| | | obj.data.template_type_code = obj.selectoption.code || ""; |
| | | obj.data.template_type_name = obj.selectoption.value || ""; |
| | | } |
| | | } |
| | | }, |
| | | |
| | | template_attachment: { |
| | | buttonarray: { |
| | | onclick: function(obj) { |
| | | var filenamefield = obj.obj.field; |
| | | var fileidfield = "template_attachment_id"; |
| | | if(obj.buttonobj && obj.buttonobj.code == "showfile"){ |
| | | me.showFileImgByFileId(filenamefield, fileidfield, obj); |
| | | }else if (obj.buttonobj && obj.buttonobj.code == "upload"){ |
| | | me.onPopupByUploadFile(filenamefield, fileidfield, me.dataname); |
| | | }else if (obj.buttonobj && obj.buttonobj.code == "delfile"){ |
| | | me.deleteByFileId(filenamefield, fileidfield, obj); |
| | | } |
| | | } |
| | | }, |
| | | }, |
| | | |
| | | }; |
| | | }, |
| | | |
| | | tablePopup_productList(obj) { |
| | | var me = this; |
| | | Root.showPopup({ |
| | | url: "module/md/page/product/page/popup-new_batch_number-product.html", |
| | | width: 800, |
| | | height: 550, |
| | | data: this.oldObj, |
| | | sceneCode: "add", |
| | | dataname: "customer", |
| | | callback: function(obj, callback) { |
| | | |
| | | if (callback) { |
| | | callback(); |
| | | } |
| | | } |
| | | }); |
| | | }, |
| | | |
| | | //提交 |
| | | submitRowTable() { |
| | | this.iscommit = true; |
| | | //必填项校验 |
| | | var bo1 = this.$refs.form1.checkForm(); |
| | | if(!bo1){ |
| | | Root.message({ |
| | | type: 'error', |
| | | message: '请填写必填项' |
| | | }); |
| | | this.iscommit = false; |
| | | return; |
| | | } |
| | | this.saveRowTable(); |
| | | }, |
| | | |
| | | //保存 |
| | | saveRowTable() { |
| | | var me = this; |
| | | var operator_ = "save";//保存 |
| | | if(me.iscommit) { |
| | | operator_ = "commit";//提交 |
| | | } |
| | | |
| | | var entity_ = clone(this.formData); |
| | | |
| | | var entity_ = clone(me.formData); |
| | | var entity = {}; |
| | | for (var r in entity_) { |
| | | if (entity_[r] || entity_[r] == "" || entity_[r] == false || entity_[r] == 0) { |
| | |
| | | } |
| | | |
| | | let param = { |
| | | dataname: this.dataname, |
| | | // operator: operator_, |
| | | dataname: me.dataname, |
| | | data: {}, |
| | | } |
| | | param.data[this.dataname] = entity; |
| | | param.data[me.dataname] = entity; |
| | | |
| | | 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(); |
| | | }, function(errorresult) { |
| | | console.log("错误信息", errorresult); |
| | | if (errorresult.messages && errorresult.messages.count && errorresult.messages.count.error) { |
| | | if (errorresult.messages.list) { |
| | | me.iscommit = false; |
| | | Root.message({ |
| | | type: 'success', |
| | | message: '提交成功' |
| | | }); |
| | | me.saveAfter(); |
| | | var config = { |
| | | totab: false, |
| | | // width: "1200px", |
| | | // height: 800, |
| | | icon: "icon-product", |
| | | text: "错误信息", |
| | | url: "module/tool/page/popup_error_messages.html", |
| | | data: {}, |
| | | delta: errorresult.messages.list, |
| | | callback: function(obj, callback) { |
| | | if (callback) { |
| | | callback(); |
| | | } |
| | | } |
| | | }; |
| | | me.doPopupByPublic(config); |
| | | } |
| | | else { |
| | | Root.message({ |
| | | type: 'success', |
| | | message: '保存成功' |
| | | }); |
| | | me.saveAfter(); |
| | | } |
| | | } |
| | | else { |
| | | me.iscommit = false; |
| | | Root.message({ |
| | | type: 'error', |
| | | message: '提交失败' |
| | | }); |
| | | } |
| | | }); |
| | | }, |
| | | |
| | | onPopupByUploadFile(filenamefield, fileidfield,dataname) { |
| | | var me = this; |
| | | var analysistype_ = ""; |
| | | var formData_ = clone(me.formData); |
| | | var delta_ = {filetypelist: [], multiplelimit: 1}//".png", ".jpg", ".pdf" |
| | | var config = { |
| | | totab: false, |
| | | width: "500px", |
| | | icon: "icon-product", |
| | | text: "附件上传", |
| | | id: "popupByUploadFile", |
| | | url: "module/tool/page/popup_uploadFile.html", |
| | | data: { |
| | | dataName: dataname, |
| | | fileidfieldName: fileidfield, |
| | | id: me.formData.id, |
| | | fileNamefieldName: filenamefield, |
| | | }, |
| | | delta: delta_, |
| | | callback: function(obj, callback) { |
| | | me.$message({ |
| | | showClose: true, |
| | | message: '上传成功!', |
| | | type: 'success' |
| | | }); |
| | | |
| | | if (!formData_[filenamefield]) { |
| | | formData_[filenamefield] = {}; |
| | | } |
| | | formData_[filenamefield] = decodeURI(obj.row[0].name); |
| | | formData_[fileidfield] = obj.row[0].id; |
| | | |
| | | me.formData = formData_; |
| | | if (callback) { |
| | | callback(); |
| | | } |
| | | } |
| | | }; |
| | | this.doPopupByPublic(config); |
| | | }, |
| | | |
| | | showFileImgByFileId(filenamefield, fileidfield, obj) { |
| | | let me = this; |
| | | var file_name = obj.formdata[filenamefield]; |
| | | var file_id = obj.formdata[fileidfield]; |
| | | 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, |
| | | dataname: this.dataname |
| | | } |
| | | |
| | | 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, this.dataname); |
| | | } |
| | | } |
| | | }, |
| | | |
| | | deleteByFileId(filenamefield, fileidfield, obj){ |
| | | var me = this; |
| | | var formData_ = clone(me.formData); |
| | | Root.confirm('确定删除附件【' + formData_[filenamefield] + '】吗?', '删除提示', { |
| | | confirmButtonText: '删除', |
| | | cancelButtonText: '取消', |
| | | type: 'warning' |
| | | }).then(() => { |
| | | if (obj.formdata[fileidfield]) { |
| | | let param = { |
| | | dataname: "sys_dossier_file", |
| | | id: obj.formdata[fileidfield], |
| | | } |
| | | |
| | | Server.call("root/data/deleteEntity", param, function(result) { |
| | | console.log(result); |
| | | if (result && result.data) { |
| | | formData_[filenamefield] = ""; |
| | | formData_[fileidfield] = ""; |
| | | me.formData = clone(formData_); |
| | | Root.message({ |
| | | type: 'success', |
| | | message: '删除成功!' |
| | | }); |
| | | } |
| | | }); |
| | | } |
| | | }).catch(() => { |
| | | Root.message({ |
| | | type: 'info', |
| | | message: '已取消删除' |
| | | }); |
| | | }); |
| | | |
| | | }, |
| | | } |
| | | }); |
| | | }; |
| | |
| | | </style> |
| | | |
| | | </head> |
| | | <body style="margin: 0px;"> <div v-cloak id="vbody"> |
| | | |
| | | <body style="margin: 0px;"> |
| | | <div v-cloak id="vbody"> |
| | | <div id="page_root"> |
| | | <div ref="popup_body" style="padding: 0 20px;"> |
| | | <div class="popup_el-dialog__header"> |
| | |
| | | <span> {{title}}</span> |
| | | </div> |
| | | </div> |
| | | <div style="height: 350px; overflow-y: auto;"> |
| | | <div style="height: 300px; overflow-y: auto;"> |
| | | <div class="el-dialog__body"> |
| | | <h-form |
| | | ref="form1" |
| | |
| | | </div> |
| | | <div class="el-dialog__footer"> |
| | | <el-button size="small" type="default" @click="closeDialog">取 消</el-button> |
| | | <el-button size="small" v-if="isedit || isrefuseedit" type="primary" @click="saveRowTable":icon="buttonsconfig.save.icon">{{buttonsconfig.save.name}}</el-button> |
| | | <el-button size="small" v-if="isrefuseedit" type="success" @click="">再次提交</el-button> |
| | | |
| | | <el-button size="small" v-if="isapproval" type="success" @click="">通 过</el-button> |
| | | <el-button size="small" v-if="isapproval" type="danger" @click="">拒 绝</el-button> |
| | | <el-button size="small" v-if="isapproval" type="primary" @click="">转 办</el-button> |
| | | <el-button size="small" v-if="isapproval" type="success" @click="">退 回</el-button> |
| | | <el-button size="small" v-if="isedit" type="success" :loading="iscommit" @click="submitRowTable":icon="buttonsconfig.submit.icon">{{buttonsconfig.submit.name}}</el-button> |
| | | </div> |
| | | </div> |
| | | </div> |