<!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="../../../js/vue/vue.js"></script> <script src="../../../js/vue/element-ui/lib/index.js"></script> <script src="../../../js/vue/axios/dist/axios.min.js"></script> <script src="../../../js/myelement.js?v=20220612"></script> <script src="../../../js/vue/page.js?v=20220612"></script> <link href="../../../js/vue/element-ui/lib/theme-chalk/index.css" rel="stylesheet"> <link href="../../../css/myelement.css?v=20220422" rel="stylesheet"> <link href="../../../css/iconfont.css" rel="stylesheet"> <link href="../../../css/page.css?v=20220425" rel="stylesheet"> <link href="//at.alicdn.com/t/font_2374495_13ltsxm2eor.css" rel="stylesheet"> </head> <style> </style> <body> <div id="vbody"> <div id="page_root"> <div class="topbar" v-loading.fullscreen.lock="tableloading"> <span>{{title}}</span> <!-- 工具æ --> <div style="float: right; margin-right: 24px;"> <el-button-group style="margin-left: 3px;"> <el-button v-if="(activeName=='tabAll' || activeName == 'tabInput') && buttons.append" :disabled="buttons.append.disabled" icon="el-icon-plus" @click="addData">æ·»åŠ </el-button> <el-button v-if="(activeName=='tabAll' || activeName == 'tabInput') && buttons.batchappend" :disabled="buttons.batchappend.disabled"@click="addCombineData">批é‡åˆ›å»º</el-button> <el-button v-if="(activeName=='tabAll' || activeName == 'tabInput' || activeName == 'tabRefuse' || activeName == 'tabU8') && buttons.edit" @click="setEditTableData">{{isEditTableData ? 'å–æ¶ˆç¼–辑' : '在线编辑'}}</el-button> <!-- <el-button v-if="activeName=='tabOpen' && buttons.deliver" :disabled="buttons.deliver.disabled" icon="" @click="delivery" >å‘è´§</el-button> --> </el-button-group> <el-button-group style="margin-left: 3px;"> <el-button v-if="(activeName=='tabAll' || activeName == 'tabWorking' || activeName == 'tabRefuse') && buttons.submit" :disabled="!(selectedrow.status == 'working' || selectedrow.status == 'refuse')" :loading="isLoading" @click="createContact()">釿–°ç”ŸæˆåˆåŒ</el-button> <el-button v-if="(activeName=='tabAll' || activeName == 'tabInput' || activeName == 'tabRefuse') && buttons.submit" :disabled="!((selectedrow.status == 'input' || selectedrow.status == 'refuse') && isClick)" :loading="isLoading" @click="flow_Submit('status','code','sales')">æäº¤</el-button> <!-- <el-button v-if="(activeName=='tabAll' || activeName == 'tabInput') && buttons.approve" :disabled="buttons.approve.disabled" @click="approvalData('data_state')">审批</el-button> --><!-- h_procedure('statecode', 'input', 'submit', 'doccode', 'æäº¤å®¡æ‰¹', 'ç‰å¾…审批ä¸', 'sales', 'sales_order') --> <el-button v-if="(activeName=='tabAll' || activeName == 'tabInput' || activeName == 'tabRefuse') && buttons.cancel" :disabled="!(selectedrow.id && (selectedrow.status == 'input' || selectedrow.status == 'refuse' ) && isClick)" @click="flow_Cancel('status','code','sales')">作废</el-button> <el-button v-if="(activeName == 'tabU8' || activeName == 'tabOpen' || activeName == 'tabAll') && buttons.uploadContract" :disabled="!(selectedrow.id && canUploadContract)" @click="uploadContract">åˆåŒä¸Šä¼ </el-button> <el-button v-if="(activeName == 'tabU8' || activeName == 'tabOpen' || activeName == 'tabAll') && buttons.confirmContract" :disabled="!(selectedrow.id && selectedrow.contract_file_id && canUploadContract)" @click="confirmContract">åˆåŒç¡®è®¤</el-button> <el-button v-if="activeName == 'tabOpen' && buttons.deliver" :disabled="!(selectedrow.delivery_status == '0' && selectedrow.status == 'open' && isClick)" @click="close_Sorder()">撤回å‘è´§</el-button> </el-button-group> <el-button-group style="margin-left: 3px;"> <el-button v-if="activeName == 'tabDelivery' || activeName == 'tabAllDelivery' || activeName == 'tabAll'" :disabled="!(selectedrow.id)" @click="openRelatedDocuments">ç›¸å…³å•æ®</el-button> <el-button @click="showInventoryQuery">åº“å˜æŸ¥è¯¢</el-button> </el-button-group> <el-button-group style="margin-left: 3px;"> <!-- <el-button v-if="activeName != 'tabU8'" @click="onShowApproval()">审批记录</el-button> --> <el-button v-if="activeName == 'tabU8'" :disabled="!(selectedrow.id && isClick)" @click="pushU8">推é€è®¢å•æ•°æ®</el-button> </el-button-group> <el-button v-if="activeName == 'tabDelivery'" :disabled="!(selectedrow.id && isClick)" @click="closeOrder">å…³ é—</el-button> </div> </div> <div> <template> <el-tabs v-model="activeName" @tab-click="handleClick"> <el-tab-pane label="全部" name="tabAll"></el-tab-pane> <el-tab-pane label="å¾…æäº¤" name="tabInput"></el-tab-pane> <el-tab-pane label="待修改" name="tabRefuse"></el-tab-pane> <el-tab-pane label="审批ä¸" name="tabWorking"></el-tab-pane> <el-tab-pane label="å¾…å‘è´§" name="tabOpen"></el-tab-pane> <el-tab-pane label="已撤回/å…³é—" name="tabClose"></el-tab-pane> <el-tab-pane label="æœªæŽ¨é€æ•°æ®" name="tabU8"><span slot="label">æœªæŽ¨é€æ•°æ®<el-badge v-if="TabU8count>0" :value="TabU8count" /></span></el-tab-pane> <el-tab-pane label="部分å‘è´§" name="tabDelivery"></el-tab-pane> <el-tab-pane label="全部å‘è´§" name="tabAllDelivery"></el-tab-pane> </el-tabs> </template> </div> <!-- 查询æ¡ä»¶ --> <div class="topbar-line"> <div class="query-icon"> <i class="iconfont icon-query"></i> </div> <div class="query-bar"> <h-form-filter ref="form1" :form-attr="filterAttr" :table-fields="filterFields" :form-data="filterObj" :isbuttonquery="true" :is-reduce="true" :is-form-open="false" v-on:on-formlayout-after="tableDataAfter" v-on:on-formchange="onQuery" v-on:show-popup="showFilterPopup" v-on:on-query="onQuery" v-on:on-init-query="onInitFilter" v-on:on-edit-query="onEditFilter" > </h-form-filter> </div> </div> <div class="versionNo"> <h-table v-if="isRefresh" ref="table1" :table-fields="tableFields" :table-data="tableData" :tableloading="tableloading" :is-edit-table-data="isEditTableData" :pagesize="pagesize" :pagenum="pagenum" :total="total" :table-height="tableHeight" :is-highlight-row="true" v-on:get-data="getData" v-on:edit-data="editData" v-on:del-data="delData" v-on:row-click="rowClick" v-on:cell-click="cellClick" > </h-table> </div> </div> <div id="page_loading" style="position: absolute; top:0px; width: 100vw; height: 100vh;z-index:9999"> <div class="spinner"> <div class="cube1"></div> <div class="cube2"></div> </div> </div> <el-dialog title="åº“å˜æŸ¥è¯¢" :visible.sync="InventoryQuery" :show-close="false"> <div> <h-form-filter ref="form2" :form-attr="filterAttr_t" :table-fields="filterFields_" :form-data="filterObjInventory" :isbuttonquery="false" v-on:show-popup="showFilterPopupInventory" v-on:on-init-query="onInitFilterInventory" > </h-form-filter> <div style="height: 40px;"> <span >åº“å˜æŸ¥è¯¢ç»“果:</span> <div v-if="inventoryresult" style="padding-left: 10%;"> <span v-if="inventorycount > 0">åº“å˜æ•°é‡ï¼š</span> <span style="color: red;">{{inventorycount > 0 ? inventorycount : 'æ— åº“å˜'}}</span> </div> </div> </div> <div slot="footer" class="dialog-footer"> <el-button type="default" plain @click="hideInventoryQuery">å– æ¶ˆ</el-button> <el-button type=primary @click="onQueryInventory">查 询</el-button> </div> </el-dialog> </div> <script type="text/javascript"> var setting = getSetting("sorder_list"); var initlized = false; new ListVue({ el: "#vbody", data: { userId: "", pageAttr: { heightType: "page" }, dataname: "getSalesOrderAndHasgsp", tabaleFieldsName: "order_", filterFieldsName: "order_", dataRequest: [ "doctype", "docstatus" ], title: "销售订å•", tabs:{}, orderby: "biz_date desc,code desc",// "update_time desc,biz_date desc,code desc", isLoading:false, isClick:false, provinces: [], doctype: [], canUploadContract : false, docstatus: [], activeName: 'tabAll', emp_id:window.top.userinfo.employee.id, emp_code:window.top.userinfo.employee.code, dataRequest: [ { isClientMode: false, code: "code", label: "name", name: "delivery_part_code", dataname: "deliveryOrganization", }, ], dataRequestObj: {}, isQGXD:false, isDistributor: false, TabU8count:0, InventoryQuery: false, filterAttr_t: { columnnumber: 1, labelwidth: "100px", labelposition: "right", size: "medium", border: "3px solid #c6c6c600" }, test_filter:"1=1", filterFields_:[ {isshow: "T", field: "delivery_part_code", name: "å‘货主体", fieldname:"", type: "select", options: [], props: {value: "code", label: "name", checkStrictly: true}}, {isshow: "T", field: "product_name", name: "è¯å“åç§°", fieldname:"", fieldtype: "like",type:"popup"}, ], filterObjInventory: {}, inventoryresult: false, inventorycount: 0, }, created() { var aa = window.top.isdistributor; var bb = window.top.distributorObj; this.isDistributor = localStorage.getItem("isdistributor") ? true : false; this.pageCode = "A0-3"; this.getResoures(); this.getMeResoures(); let roleList = window.top.userinfo.user.roleList; roleList.map(e=>{ if(e.code == 'qgdj') { this.isQGXD = true; } }) }, mounted() { let me = this; // me.filterFields_ = dataRootFields.filterFields.order__; if(me.filterFields_.length > 0) { for(var i=0; i < me.filterFields_.length; i++) { let fieldObj_ = me.filterFields_[i]; me.filterFieldsObj[fieldObj_.field] = fieldObj_; } } this.getTabU8count(); if (this.dataRequest.length) { var result = {}; this.loadRequestData(this.dataRequest, result, function(data) { me.dataRequestObj = data; if (me.filterFields.length) { var formFields_part_ = clone(me.filterFields); formFields_part_.map(e=>{ if(e.field == "delivery_part_code") { e.options = me.dataRequestObj.delivery_part_code; } }); me.filterFields = formFields_part_; } if(me.filterFields_.length){ var formFields_part_ = clone(me.filterFields_); formFields_part_.map(e=>{ if(e.field == "delivery_part_code") { e.options = me.dataRequestObj.delivery_part_code; } }); me.filterFields_ = formFields_part_; } me.initData(); }); this.$nextTick(() => { // 以æœåŠ¡çš„æ–¹å¼è°ƒç”¨çš„ Loading 需è¦å¼‚æ¥å…³é— hideLoading(); }); } }, methods:{ getTabU8count(){ var me = this; var filter_ = "proxy_order = 0 and sales_order.create_operate_code not like 'CT%' and (sync = 0 or sync is null) and status = 'open'"; let roleList = window.top.userinfo.user.roleList; let isadmin = false; roleList.map(e=>{ if(e.code == 'admin') { isadmin = true; } }) if(isadmin) { filter_ += " and 1=1"; } else { filter_ += " and sales_order.create_operate_code = '" + window.top.userinfo.employee.code + "'"; } let param_ = { isClientMode: false, dataname: this.dataname, filterList: this.filterList, filter: filter_, orderby: this.orderby, page: { no: this.pagenum, pagesize: this.pagesize }, } Server.call("root/data/getEntitySet", param_, function(result) { console.log(result); me.TabU8count = 0; if (result && result.data) { me.TabU8count = result.data.page.recordcount; } }); }, initData() { if (initlized) { return; } initlized = true; this.onQuery(); }, getMeResoures() { let me = this; //tab var params = { dataname: "tab", isClientMode: false, userId: this.userId } Server.call("root/data/getEntitySet", params, function(result) { console.log(result); if (result && result.data.entityset) { result.data.entityset.map(e=>{ me.tabs[e.id_name] = e; }); me.$forceUpdate(); } }); }, handleClick(tab, event) { let me = this; this.pagenum = 1; this.pagesize = 10; this.tabStatus = tab.name; this.selectedrow = {}; this.onQuery(); return; /* let filter_ = "create_operate_code not like 'CT%' and create_operate_code = '"+ this.emp_code + "' and proxy_order = 0" if (tab.name == 'tabAll'){ } else if (tab.name == 'tabInput'){ filter_ += " and status = 'input'"; } else if (tab.name == 'tabWorking'){ filter_ += " and status = 'working'"; } else if (tab.name == 'tabOpen'){ filter_ += " and status = 'open' and sync <> 0 and delivery_status = '0'"; } else if (tab.name == 'tabClose'){ filter_ += " and status = 'close' and sync <> 0 and delivery_status = '0'"; } else if (tab.name == 'tabRefuse'){ filter_ += " and status = 'refuse'"; }else if (tab.name == 'tabDelivery'){ filter_ += " and delivery_status = '1'"; }else if (tab.name == 'tabAllDelivery'){ filter_ += " and delivery_status = '2'"; } if (tab.name == 'tabU8'){ filter_ += " and sync = 0 and status = 'open'"; var tableFields_ = clone(me.tableFields); tableFields_[1].isshow = "T"; me.tableFields = tableFields_; }else { var tableFields_ = clone(me.tableFields); tableFields_[1].isshow = "F"; me.tableFields = tableFields_; } for(var k in this.filterObj) { let k_val = this.filterObj[k]; let fieldObj_ = this.filterFieldsObj[k]; let type_ = fieldObj_.type; let field_ = fieldObj_.field; let fieldtype_ = "equal"; if (fieldObj_.fieldname) { field_ = fieldObj_.fieldname } if (fieldObj_.fieldtype) { fieldtype_ = fieldObj_.fieldtype } //ä¼ æ¡ä»¶æ•°æ®æœ‰å‰ç«¯æ‹¼æŽ¥ if (type_ == "daterange" && k_val.length) {//期间ç›é€‰ // var k_val_a = k_val[0]; var k_val_b = k_val[1]; if (fieldtype_ == "inScopeInclude") {//期间之内,包å«ä¸¤ç«¯ filter_ += " and ((" + field_ + ">'" + k_val_a + "' and " + field_ + "<'" + k_val_b + "') or (" + field_ + "='" + k_val_a + "' or " + field_ + "='" + k_val_b + "'))"; } } else if (type_ != "daterange") { if (fieldtype_ == "like") { filter_ += " and " + field_ + " like '%" + k_val +"%'"; } else { filter_ += " and " + field_ + " = '" + k_val +"'"; } } } let param_ = { isClientMode: false, dataname: this.dataname, filterList: this.filterList, filter: filter_, orderby: this.orderby, page: { no: this.pagenum, pagesize: this.pagesize }, //attachmeta: true } Server.call("root/data/getEntitySet", param_, function(result) { console.log(result); me.total = 0; me.tableData = []; if (result && result.data) { var data_ = result.data.entityset; me.total = result.data.page.recordcount; me.tableData = data_; } }); */ }, rowClick: function(obj) { this.selectedrow = obj.row; let userCode = window.top.userinfo.employee.code if(obj.row.is_offline && (obj.row.create_operate_code == userCode || obj.row.business_depart_code == userCode)) { this.canUploadContract = true }else { this.canUploadContract = false } if (obj.row.create_operate_code != localStorage.emp_code && obj.row.operate_emp_code != localStorage.emp_code) { this.isClick = false; if (localStorage.emp_code == '041037' ){ this.isClick = true; } }else { this.isClick = true; } }, onServerInitData(data) { var me = this.data; me.tableFields = data.tableFields; me.filterFields = data.filterFields; me.doctype = data.doctype; me.docstatus = data.docstatus; if(me.filterFields.length > 0) { for(var i=0; i < me.filterFields.length; i++) { let fieldObj_ = me.filterFields[i]; me.filterFieldsObj[fieldObj_.field] = fieldObj_; } } if(me.tableFields.length > 0) { for(var i=0; i < me.tableFields.length; i++) { let fieldObj_ = me.tableFields[i]; if (window.top.isdistributor) { if (fieldObj_.field == "business_depart_name" || fieldObj_.field == "sales_business_type" || fieldObj_.field == "emp_position_name" || fieldObj_.field == "order_source") { fieldObj_.isshow = "F" } } me.tableFieldsObj[fieldObj_.field] = fieldObj_; } } }, createContact() { let me = this; var row = this.selectedrow; Root.confirm('ç¡®å®šé‡æ–°ç”Ÿæˆ-' + row.code + '-çš„åˆåŒå—?', '生æˆåˆåŒæç¤º', { confirmButtonText: '确定', cancelButtonText: 'å–æ¶ˆ', type: 'warning' }).then(() => { var params = { isClientMode: false, id: row.id } Server.call("root/order/recCreateContact", params, function(result) { if(result.success) { Root.message({ type: 'success', message: '釿–°ç”ŸæˆæˆåŠŸ' }); } },function(result){ Root.message({ type: 'warning', message: result.message }); }); }).catch(() => { Root.message({ type: 'info', message: '已喿¶ˆ' }); }) }, flow_Submit: function(status_,code_,dataType_) { //status_ï¼šå®¡æ‰¹çš„å—æ®µ code_:æç¤ºè¯ let me = this; var row = this.selectedrow; if(row.status == "close" && row.recall) { Root.message({ type: 'warning', message: '请修改并ä¿å˜åŽæäº¤' }); return false; } if (!row || !row.id) { Root.message({ type: 'warning', message: 'è¯·å…ˆé€‰æ‹©ä¸€æ¡æ•°æ®' }); return false; } else if (!(row[status_] == "input" || row[status_] == "refuse") ) { //å¾…è°ƒæ•´åªæœ‰åˆ›å»ºäººæ‰å¯æäº¤ Root.message({ type: 'warning', message: '当å‰çжæ€ä¸å¯æäº¤' }); return false; } var parames = { totab: true, icon: "icon-product", text: "æäº¤è®¢å•", id: "sorder_edit" + row.id, url: "../order/sorder/sorder_edit.html", sceneCode: "edit", data: row, delta: me.dataname, }; this.doPopupByPublic(parames); // if(row.is_offline&&!row.contract_no) { // Root.message({ // type: 'warning', // message: '请填写åˆåŒå·' // }); // return; // } /* if(!row.is_offline) { row.contract_no = row.code; } */ // if (!row.manager_part_code || !row.delivery_part_name || // !row.customer_name || !row.customer_consignee_address || !row.customer_consignee_user_name || // !row.customer_consignee_phone || !row.sales_type) { // Root.message({ // type: 'warning', // message: '请填写必填项' // }); // return; // } // let url = window.top.RootSetting.url_stock + "order/checkLicence" // let expiredLicense = false; // axios.post(url, { // customerId: row.customer_id || "", // bookNo: row.book_no ? row.book_no : "", // deliveryPartCode: row.delivery_part_code // }) // .then(data => { // console.log(data); // if (data.data.success) { // if(data.data.data.status != "0") { // if(data.data.data.licenceList && data.data.data.licenceList.length > 0){ // let licenceList_ = data.data.data.licenceList; // for (var i = 0; i < licenceList_.length; i++) { // if(licenceList_[i].term) { // if(new Date(licenceList_[i].term) < new Date()) { // expiredLicense =true; // break; // } // }else{ // expiredLicense =true; // break; // } // } // }else{ // expiredLicense =true; // } // } // if(row.has_gsp && expiredLicense) { // Root.message({ // type: 'warning', // message: "资质è¯ç…§è¿‡æœŸ,æ— æ³•æäº¤" // }); // return; // } // if(row.control_type == "1" && !row.attachment_file_id) { // me.checkConcat(status_,code_,dataType_,"æœªä¸Šä¼ ä»˜æ¬¾å‡è¯,") // }else { // me.checkConcat(status_,code_,dataType_,"") // } // }else{ // Root.message({ // type: 'warning', // message: data.data.message // }); // } // }) // .catch((error) => { // console.log(error); // }); }, checkConcat(status_,code_,dataType_,message) { let me = this; let param = { dataname:'customer_contact_status', filter : "customer_code = '" + this.selectedrow.customer_code + "' and contact_status = 1" } Server.call("root/data/getEntitySet",param,function(result) { if(result.data && result.data.entityset && result.data.entityset.length) { if(message.length > 0) message += "并且您选择的商业有订å•在期é™å†…æœªä¸Šä¼ åˆåŒé™„ä»¶," else { message += "您选择的商业有订å•在期é™å†…æœªä¸Šä¼ åˆåŒé™„ä»¶," } me.submitRow(status_,code_,dataType_,message); }else { me.submitRow(status_,code_,dataType_,message); } }) }, submitRow(status_,code_,dataType_,message) { let me = this; var row = this.selectedrow; let param_1 = { isClientMode: false, dataname: "v_remit_customer", filter: "customer_code = '"+ row.customer_code + "'", } Server.call("root/data/getEntitySet", param_1, function(result) { if(result.success){ if (result.data.entityset.length > 0) { row.isOverDue = true; } else{ row.isOverDue = false; } Root.confirm(message + '确定æäº¤-' + row.code + '-å—?', 'æç¤º', { confirmButtonText: "æäº¤", cancelButtonText: 'å–æ¶ˆ', type: 'warning' }).then(() => { me.isLoading = true; document.getElementById('page_loading').style.display = "block"; let param = { orderId:row.id, eventType:"commit", dataType:dataType_, extra:{ variableMap:{ businessType:row.business_type, businessDepartType:row.depart_sales_type, controlType:row.control_type, managerPartCode:row.manager_part_code, isOverDue:row.isOverDue, agreementRecordId:row.o_agreement_record_id, flowId:row.flow_id || "" }, }, isClientMode: false, } Server.call("root/order/onEvent", param, function(result) { console.log(result); if (result.success){ Root.message({ type: 'success', message: 'æäº¤æˆåŠŸ' }); me.isLoading = false; document.getElementById('page_loading').style.display = "none"; } me.onQuery(); }, function(result){ document.getElementById('page_loading').style.display = "none"; Root.confirm(result.data.message + ',确定直接æäº¤-' + row.code + '-å—?', 'æç¤º', { confirmButtonText: "æäº¤", cancelButtonText: 'å–æ¶ˆ', type: 'warning' }).then(() => { me.isLoading = true; document.getElementById('page_loading').style.display = "block"; let param = { orderId:row.id, eventType:"commit", dataType:dataType_, isClientMode: false, extra:{ mandatory:true, variableMap:{ businessType:row.business_type, businessDepartType:row.depart_sales_type, controlType:row.control_type, managerPartCode:row.manager_part_code, isOverDue:row.isOverDue, }, }, } Server.call("root/order/onEvent", param, function(result) { console.log(result); if (result.success){ Root.message({ type: 'success', message: 'æäº¤æˆåŠŸ' }); me.isLoading = false; document.getElementById('page_loading').style.display = "none"; } me.onQuery(); }, function(result) { Root.message({ type: 'warning', message: 'æäº¤å¤±è´¥' }); me.isLoading = false; document.getElementById('page_loading').style.display = "none"; }); }).catch(() => { me.isLoading = false; Root.message({ type: 'info', message: '已喿¶ˆ' }); }); }); }).catch(() => { me.isLoading = false; Root.message({ type: 'info', message: '已喿¶ˆ' }); }); } }); }, addCombineData: function() { var me = this; //1. this.operationtype = "add"; //this.selectedrow = {}; //2. get config and go var config = new Config(), go = true; if (this.onAddCombineData) { go = this.onAddCombineData.call(this, config); } //3. popup if (go) { if (config.totab) { if (config.url) { if (config.text.length > 4) { config.text = config.text.substr(0, 4) + "..."; } } var parames = { url: config.url, sceneCode: config.sceneCode, data: config.data, delta: config.delta, disabled: config.disabled, disabledone: config.disabledone, operationtype: "add", parentOption: window.top.tab.selected.option }; Root.popupParames = parames; window.top.tab.open(config); } else { this.doPopup(config); } } }, doQuery: function() { let me = this; let filter_ = "proxy_order = 0 and sales_order.create_operate_code not like 'CT%'"; if(!this.isQGXD) { filter_ += " and (sales_order.create_operate_code = '"+ this.emp_code + "' or operate_emp_code = '" + this.emp_code + "')" } if (this.isDistributor) { var code = window.top.distributorObj.md_code; var name = window.top.distributorObj.md_description; filter_ = " (sales_order.customer_code='"+code+"' or sales_order.customer_name='"+name+"')"; } this.filterList = []; for(var k in this.filterObj) { let k_val = this.filterObj[k]; let fieldObj_ = this.filterFieldsObj[k]; let type_ = fieldObj_.type; let field_ = fieldObj_.field; let fieldtype_ = "equal"; if (fieldObj_.fieldname) { field_ = fieldObj_.fieldname } if (fieldObj_.fieldtype) { fieldtype_ = fieldObj_.fieldtype } //ä¼ æ¡ä»¶æ•°æ®æœ‰å‰ç«¯æ‹¼æŽ¥ if (type_ == "daterange" && k_val.length) {//期间ç›é€‰ // var k_val_a = k_val[0]; var k_val_b = k_val[1]; if (fieldtype_ == "inScopeInclude") {//期间之内,包å«ä¸¤ç«¯ filter_ += " and ((" + field_ + ">'" + k_val_a + "' and " + field_ + "<'" + k_val_b + "') or (" + field_ + "='" + k_val_a + "' or " + field_ + "='" + k_val_b + "'))"; } } else if (type_ != "daterange") { //注释:type: equal(ç‰äºŽï¼‰/in(在多个数æ®ä¸ï¼‰/like(模糊)/minval(最å°å€¼ï¼‰/maxval(最大值)/mininclude(最å°ä¸”包å«è¯¥å€¼ï¼‰/maxinclude(最大且包å«è¯¥å€¼ï¼‰ if(field_ == "status" && k_val == "return") { filter_ += " and " + field_ + " = 'close' and recall = 1 and (delivery_status = 0 or delivery_status is null)"; }else if(field_ == "status" && k_val == "close") { filter_ += " and " + field_ + " = 'close' and (recall = 0 or recall is null)"; }else if(field_ == "status" && k_val == "delivery_close") { filter_ += " and " + field_ + " = 'close' and recall = 1 and delivery_status = 1"; }else { if (fieldtype_ == "like") { filter_ += " and " + field_ + " like '%" + k_val +"%'"; } else if (typeof(k_val) != "string") { filter_ += " and " + field_ + " = " + k_val ; } else { filter_ += " and " + field_ + " = '" + k_val +"'"; } } } } if (this.tabStatus){ if (this.tabStatus == 'tabAll'){ //filter_ += " and create_operate_code = '"+ this.emp_code + "'" } else if (this.tabStatus == 'tabInput'){ filter_ += " and status = 'input'"; } else if (this.tabStatus == 'tabWorking'){ filter_ += " and status = 'working'"; } else if (this.tabStatus == 'tabOpen'){ filter_ += " and status = 'open' and sync <> 0 and delivery_status = '0'"; }else if (this.tabStatus == 'tabClose'){ filter_ += " and status = 'close' and recall = 1"; } else if (this.tabStatus == 'tabRefuse'){ filter_ += " and status = 'refuse'"; }else if (this.tabStatus == 'tabDelivery'){ filter_ += " and delivery_status = '1'"; }else if (this.tabStatus == 'tabAllDelivery'){ filter_ += " and delivery_status = '2'"; } if (this.tabStatus == 'tabU8'){ filter_ += " and (sync = 0 or sync is null) and status = 'open'"; //var tableFields_ = clone(me.tableFields); //tableFields_[1].isshow = "T"; //me.tableFields = tableFields_; }else { // var tableFields_ = clone(me.tableFields); // tableFields_[1].isshow = "F"; // me.tableFields = tableFields_; } } let param_ = { isClientMode: false, dataname: this.dataname, filterList: this.filterList, filter: filter_, orderby: this.orderby, page: { no: this.pagenum, pagesize: this.pagesize }, //attachmeta: true } me.tableloading = true; this.test_filter = filter_; Server.call("root/data/getEntitySet", param_, function(result) { console.log(result); me.total = 0; me.tableData = []; if (result && result.data) { var data_ = result.data.entityset; me.total = result.data.page.recordcount; for(var i = 0;i < data_.length; i++){ if( (data_[i].sync == 0 || data_[i].sync == null ) && data_[i].status == "open"){ data_[i].h_classname = "changecolor" } } me.tableData = data_; } me.tableloading = false; me.tableDataAfter(); },function(result) { me.tableloading = false; }); }, onAddCombineData(config) { var me = this; config.combine({ totab: true, icon: "icon-product", text: "批é‡åˆ›å»º", id: "sorder_addcombine", url: "../order/sorder/sorder_editcombine.html", sceneCode: "add", data: {}, delta: me.dataname, }); return true; }, onApproveData(config, code) { var me = this; var row = this.selectedrow; //1. empty row if (!row || !row.id) { Root.message({ type: 'warning', message: '请选择è¦å®¡æ‰¹çš„æ•°æ®' }); return false; } if ("working" != row.status) { Root.message({ type: 'warning', message: '当å‰çжæ€ä¸å¯å®¡æ‰¹' }); return false; } //2 check state var field_, url_; if (code == "data_state") { field_ = "statecode"; url_ = "../order/sorder/sorder_edit.html"; } var statecode = row[field_]; //3. popup config.combine({ totab: true, icon: "icon-product", text: "审批订å•", id: "sorder_edit", url: "../order/sorder/sorder_edit.html",//sorder_edit signature sceneCode: "approval", data: row, delta: me.dataname, }); return true; }, delivery: function() { var row = this.selectedrow; if (!row || !row.id) { Root.message({ type: 'warning', message: 'è¯·å…ˆé€‰æ‹©ä¸€æ¡æ•°æ®' }); return false; } if ("open" != row.status) { Root.message({ type: 'warning', message: "当å‰çжæ€ä¸å¯å‘è´§" }) return false; } var me = this; //1. this.operationtype = "add"; //this.selectedrow = {}; //2. get config and go var config = new Config(), go = true; if (this.ondelivery) { go = this.ondelivery.call(this, config); } //3. popup if (go) { if (config.totab) { if (config.url) { if (config.text.length > 4) { config.text = config.text.substr(0, 4) + "..."; } } var parames = { url: config.url, sceneCode: config.sceneCode, data: row, delta: config.delta, disabled: config.disabled, disabledone: config.disabledone, operationtype: "add", }; Root.popupParames = parames; window.top.tab.open(config); } else { this.doPopup(config); } } }, ondelivery(config) { var me = this; config.combine({ totab: true, icon: "icon-product", text: "新增å‘è´§å•", id: "delivery_edit", url: "../logistics/delivery/delivery_edit.html", sceneCode: "add", data: me.selectrow, delta: me.dataname, }); return true; }, onAddData(config) { var me = this; config.combine({ totab: true, icon: "icon-product", text: "新增订å•", id: "sorder_add", url: "../order/sorder/sorder_edit.html", sceneCode: "add", delta: me.dataname, }); return true; }, fileUpload() { document.getElementById("btn_file").click() }, onEditData(config, scope) { var me = this; var row = scope.row; //1. empty row if (!row || !row.id) { Root.message({ type: 'warning', message: '请选择è¦ç¼–辑的数æ®' }); return false; } //2. not input if ("input" != row.status && "refuse" != row.status) { Root.message({ type: 'warning', message: "当剿•°æ®ä¸æ˜¯è¾“入状æ€" }) return false; } if (row.create_operate_code != localStorage.emp_code && row.operate_emp_code != localStorage.emp_code) { Root.message({ type: 'warning', message: "æ— è¯¥å•æ®çš„编辑æƒé™" }) return false; } //3. popup config.combine({ totab: true, icon: "icon-product", text: "修改订å•", id: "sorder_edit", url: "../order/sorder/sorder_edit.html", sceneCode: "edit", data: row, delta: me.dataname, }); return true; }, onShowRelated() { var me = this; var row = this.selectedrow; if (!row || !row.id) { Root.message({ type: 'warning', message: 'è¯·å…ˆé€‰æ‹©ä¸€æ¡æ•°æ®' }); return false; } else { Root.popupParames = { width: "900px", url: "../tool/popup_docNumber.html", }; Root.popupParames.data = row; Root.showPopup(Root.popupParames); } }, delData: function(scope) { let me = this; if (this.onDelData) { this.onDelData.call(this, scope); return } let row = scope.row; let index_ = scope.$index; let name_ = "该数æ®"; if (!this.dataname) { Root.message({ type: 'warning', message: '该事件需指定数æ®å¯¹è±¡' }); return } if (!row.id) { Root.message({ type: 'warning', message: '该事件需å˜åœ¨æ•°æ®ID' }); return } if (row.status == "open") { if(row.sync_result && !(row.sync_result =="获å–ä¿¡æ¯æˆåŠŸ" || row.sync_result =="新增æˆåŠŸï¼")){ } else { Root.message({ type: 'warning', message: '审批完æˆè®¢å•ä¸å¯åˆ 除' }); return } } if (row.status == "refuse") { Root.message({ type: 'warning', message: '待修改订å•ä¸å¯åˆ 除' }); return } if (row.status == "working") { Root.message({ type: 'warning', message: '审批ä¸è®¢å•ä¸å¯åˆ 除' }); return } if (row.status == "close" && row.recall && row.delivery_status) { Root.message({ type: 'warning', message: '已关é—状æ€ä¸å¯åˆ 除' }); return } if (row.create_operate_code != localStorage.emp_code && row.operate_emp_code != localStorage.emp_code) { Root.message({ type: 'warning', message: "æ— è¯¥å•æ®çš„åˆ é™¤æƒé™" }) return false; } /* if (row.create_operate_id != this.userId) { Root.message({ type: 'warning', message: 'åªæœ‰ä¸‹å•人å¯åˆ 除' }); return } */ if (row.code) { name_ = "_" + row.code + "_"; } Root.confirm('ç¡®å®šåˆ é™¤' + name_ + 'å—?', 'åˆ é™¤æç¤º', { confirmButtonText: 'åˆ é™¤', cancelButtonText: 'å–æ¶ˆ', type: 'warning' }).then(() => { let param1 = { filter:{ parent_id: row.id }, isClientMode: false, dataname: 'salesOrderDetail', } Server.call("root/data/deleteEntitySet", param1, function(result) { }); let param = { id: row.id, isClientMode: false, dataname: this.dataname, } Server.call("root/data/deleteEntity", param, function(result) { console.log(result); Root.message({ type: 'success', message: 'åˆ é™¤æˆåŠŸ!' }); me.doQuery(); }); }).catch(() => { Root.message({ type: 'info', message: '已喿¶ˆåˆ 除' }); }); }, uploadContract() { let me = this; if(this.selectedrow.contract_file_id) { let param = { dataname: "fileLog", filter: "id ='" + this.selectedrow.contract_file_id + "'", } Server.call("root/data/getEntity", param, function(result1) { console.log(result1); if (result1 && result1.data.entity) { me.doPopup({ totab: false, width: "1100px", icon: "icon-product", text: "åˆåŒä¸Šä¼ ", id: "uploadContract", url: "../order/sorder/popup/popup_file_pdf.html", data: { fileid:me.selectedrow.contract_file_id, filename:result1.data.entity.name, type:"uploadContract" }, callback: function(obj, callback) { let param = { dataname:"salesOrder", id:me.selectedrow.id, contract_file_id: obj.fileid } Server.call("root/data/updateEntity", param, function(resultUp) { if(resultUp && resultUp.success) { Root.message({ type:"success", message:"åˆåŒä¸Šä¼ æˆåŠŸ" }) me.onQuery() if(callback) { callback() } }else { Root.message({ type:"warning", message:"åˆåŒä¸Šä¼ 失败" }) if(callback) { callback() } } }) } }); } }); }else { this.doPopup({ totab: false, width: "1500px", icon: "icon-product", text: "åˆåŒä¸Šä¼ ", id: "uploadContract", url: "../tool/popup_uploadFile.html", data: {}, delta: { filetypelist: [".png", ".jpg", ".pdf"] }, callback: function(obj, callback) { let param = { dataname:"salesOrder", id:me.selectedrow.id, contract_file_id: obj.row[0].id } Server.call("root/data/updateEntity", param, function(resultUp) { if(resultUp && resultUp.success) { Root.message({ type:"success", message:"åˆåŒä¸Šä¼ æˆåŠŸ" }) me.onQuery() if(callback) { callback() } }else { Root.message({ type:"warning", message:"åˆåŒä¸Šä¼ 失败" }) } }) } }); } }, confirmContract() { let me = this; if(this.selectedrow.contract_file_id) { let confirmContract_ = this.selectedrow.contract_checked if(!confirmContract_) { confirmContract_ = false; } let param = { dataname: "fileLog", filter: "id ='" + this.selectedrow.contract_file_id + "'", } Server.call("root/data/getEntity", param, function(result1) { console.log(result1); if (result1 && result1.data.entity) { me.doPopup({ totab: false, width: "1100px", icon: "icon-product", text: "åˆåŒç¡®è®¤", id: "confirmContract", url: "../order/sorder/popup/popup_file_pdf.html", data: { fileid:me.selectedrow.contract_file_id, filename:result1.data.entity.name, confirmContract:confirmContract_, type:"confirmContract" }, callback: function(obj, callback) { let message_ = 'å–æ¶ˆç¡®è®¤æˆåŠŸ'; let contract_checked_ = true; if(!me.selectedrow.contract_checked) { message_ = 'åˆåŒç¡®è®¤æˆåŠŸ' contract_checked_ = false; } let param = { dataname:"salesOrder", id:me.selectedrow.id, contract_checked: !confirmContract_ } Server.call("root/data/updateEntity", param, function(resultUp) { if(resultUp && resultUp.success) { Root.message({ type:"success", message:message_ }) me.onQuery() if(callback) { callback() } }else { Root.message({ type:"warning", message:"åˆåŒç¡®è®¤å¤±è´¥" }) if(callback) { callback() } } }) } }); } }); }else { Root.message({ type:"warning", message:"æ²¡æœ‰ä¸Šä¼ åˆåŒ" }) } }, close_Sorder () { var me = this; var row = this.selectedrow; if (!row || !row.id) { Root.message({ type: 'warning', message: 'è¯·å…ˆé€‰æ‹©ä¸€æ¡æ•°æ®' }); return false; } if (row.delivery_status == "0" && row.status == 'open') { Root.confirm('确定撤回订å•-' + row.code + '-å—?', '撤回æç¤º', { confirmButtonText: '确定', cancelButtonText: 'å–æ¶ˆ', type: 'warning' }).then(() => { let param = { id: row.id, } Server.call("root/order/reCallSalesOrder/", param, function(result) { /* if(result && result.success) { } */ if(result.success) { Root.message({ type: 'success', message: '撤回æˆåŠŸ' }); } console.log(result); me.doQuery(); },function(result){ Root.message({ type: 'warning', message: result.message }); }); }).catch(() => { Root.message({ type: 'info', message: '已喿¶ˆæ’¤å›ž' }); }); }else{ Root.message({ type: 'warning', message: "该数æ®ä¸å¯å…³é—" }); } }, openRelatedDocuments() { Root.showPopup({ totab: false, width: "1200px", icon: "icon-product", text: "ç›¸å…³å•æ®", id: "related_documents", url: "../order/sorder/popup/sorder_related_documents.html", data: this.selectedrow, callback: function(obj, callback) { if (callback) { callback(); } } }); }, hideInventoryQuery() { this.InventoryQuery = false; this.filterObjInventory = {}; }, showInventoryQuery() { this.InventoryQuery = true; }, onInitFilterInventory() { this.inventoryresult = false; this.filterObjInventory = {}; }, onQueryInventory(){ var me = this; let formData_ = clone(me.filterObjInventory); let url = window.top.RootSetting.url_stock + "order/getInventoryByVo"; this.inventoryresult = false; axios.post(url, { deliveryPartCode:formData_.delivery_part_code, productCodeList:[formData_.product_code], }).then(data => { this.inventoryresult = true; if (data.data.data) { if(data.data.data.length == 0|| data.data.data[0].count === null || data.data.data[0].count === undefined) me.inventorycount = 0; /* Root.message({ type: 'warning', message: "æ— åº“å˜" }); */ else me.inventorycount = data.data.data[0].count; //me.$set(me.tableData2[item],"stock",data.data.data[0].count); } else if (data.data.message == "success") { me.inventorycount = 0; /* Root.message({ type: 'warning', message: "æ— åº“å˜" }); */ } }).catch((error) => { console.log(error); }); }, pushU8(){ var me = this; var row = this.selectedrow; if (!row || !row.id) { Root.message({ type: 'warning', message: 'è¯·å…ˆé€‰æ‹©ä¸€æ¡æ•°æ®' }); return false; } let url = window.top.RootSetting.url_stock + "order/sales/" + row.id; this.$confirm('å³å°†æŽ¨é€è®¢å•至工厂, 是å¦ç»§ç»?', 'æç¤º', { confirmButtonText: '确定', cancelButtonText: 'å–æ¶ˆ', type: 'warning' }).then(() => { axios.get(url, { }) .then(data => {   Root.message({ type: 'success', message: data.data.message }); me.doQuery(); }) .catch( (error) => { Root.message({ type: 'warning', message: "推é€å¤±è´¥" }); return false; }); }).catch(() => { this.$message({ type: 'info', message: '已喿¶ˆåˆ 除' }); }); }, closeOrder() { var me = this; var row = this.selectedrow; if (!row || !row.id) { Root.message({ type: 'warning', message: 'è¯·å…ˆé€‰æ‹©ä¸€æ¡æ•°æ®' }); return false; } Root.confirm('确定关é—订å•-' + row.code + '-å—?', '撤回æç¤º', { confirmButtonText: '确定', cancelButtonText: 'å–æ¶ˆ', type: 'warning' }).then(() => { let param = { id: row.id, } Server.call("root/order/reCallSalesOrder/", param, function(result) { /* if(result && result.success) { } */ if(result.success) { Root.message({ type: 'success', message: '关闿ˆåŠŸ' }); } console.log(result); me.doQuery(); },function(result){ Root.message({ type: 'warning', message: result.message }); }); }).catch(() => { Root.message({ type: 'info', message: '已喿¶ˆ' }); }); }, /* onShowApproval () { var me = this; var row = this.selectedrow; if (!row || !row.id) { Root.message({ type: 'warning', message: 'è¯·å…ˆé€‰æ‹©ä¸€æ¡æ•°æ®' }); return false; } else { let param = { isClientMode: false, flowId:row.flow_id } Server.call("root/order/getHistoryTask/", param, function(result) { console.log(result); if (result && result.data) { Root.popupParames = { width: "900px", height:"700px", url: "../approval/ApprovalList.html", data: result.data, }; // GET /act/historyNode/{flowId} // "../approval/ApprovalList.html", Root.popupParames.disabled = true; Root.showPopup(Root.popupParames); } }); } }, */ onCellClick(config, obj) { let me = this; var clickContext = this.selectCellField.clickContext; if(this.selectCellField.field == "status" && obj.row.flow_id && obj.row.status != "input" ){ clickContext.url = "../approval/ApprovalList.html"; clickContext.delta = { flow_id: obj.row.flow_id, } clickContext.width = "75vw"; clickContext.height = "65vh"; clickContext.hide_close = true; if (clickContext && clickContext.type == "popup" && clickContext.url != "") { config.combine({ hide_close: clickContext.hide_close, url: clickContext.url, width: clickContext.width, height: clickContext.height, sceneCode: clickContext.sceneCode, data: obj.row, delta: clickContext.delta ? clickContext.delta : {}, }) return true; } else { return false; } } if(this.selectCellField.field == "code"){ clickContext.url = "../order/sorder/sorder_edit.html"; config.combine({ //hide_close: clickContext.hide_close, totab:true, url: clickContext.url, text:"è®¢å•æŸ¥çœ‹", //title:"é”€å”®è®¢å•æŸ¥çœ‹", //width: clickContext.width, //height: clickContext.height, sceneCode: clickContext.sceneCode, data: obj.row, delta: clickContext.delta ? clickContext.delta : {}, }) return true; } if (this.selectCellField.field == "contract_file_id" && obj.row.contract_file_id) {//åˆåŒä¸‹è½½ handleDownload(obj.row.contract_file_id); } else if(this.selectCellField.field == "attachment_file_id" && obj.row.attachment_file_id) {//附件下载 handleDownload(obj.row.attachment_file_id); } return false; }, onshowFilterPopup(filter) { var me = this; var fieldObj_ = filter.obj; var filterValue = clone(me.filterObj); var field_ = fieldObj_.field; if ("customer_name" == field_) { Root.showPopup({ url: "../md/customer/popup/customer_list.html", width: 800, height: 550, callback: function(result, callback) { filterValue[field_] = result.row.md_description; me.filterObj = filterValue; me.onQuery(); if (callback) { callback(); } } }); } else if("product_name" == field_){ Root.showPopup({ url: "../md/product/popup/product_list.html", width: 800, height: 550, type: "onlySimple", callback: function(result, callback) { filterValue[field_] = result.row.product_name; me.filterObj = filterValue; me.onQuery(); if (callback) { callback(); } } }); } }, showFilterPopupInventory(filter) { var me = this; var fieldObj_ = filter.obj; var filterValue = clone(me.filterObjInventory); var field_ = fieldObj_.field; if("product_name" == field_){ Root.showPopup({ url: "../md/product/popup/product_list.html", width: 800, height: 550, type: "onlySimple", callback: function(result, callback) { filterValue[field_] = result.row.product_name; filterValue.product_code = result.row.product_code; me.filterObjInventory = filterValue; if (callback) { callback(); } } }); } }, } }); </script> <style type="text/css"> .el-tabs__nav-scroll { overflow: hidden; margin-bottom: -1px; position: relative; padding-left: 70px; } .changecolor{ color:red !important; } </style> </body> </html>