{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/shared/biz_data_helper.js","webpack:///./src/controllers/sd/SalesOrderController.js","webpack:///./src/shared/api.js","webpack:///./src/App.vue","webpack:///./src/shared/watermark.js","webpack:///src/App.vue","webpack:///./src/App.vue?8f16","webpack:///./src/App.vue?a938","webpack:///./src/mixins/MixinBase.js","webpack:///./src/router/index.js","webpack:///./src/shared/global.js","webpack:///./src/store/modules/cars.js","webpack:///./src/store/index.js","webpack:///./src/shared/directives.js","webpack:///./src/shared/privilegeCheck.js","webpack:///./src/main.js","webpack:///./src/shared/tools.js","webpack:///./src/shared/localStorageMgr.js","webpack:///./src/shared/i18n.js","webpack:///./src/controllers/commonController.js","webpack:///./src/shared/apiPath.js","webpack:///./src/App.vue?b739","webpack:///./src/shared/base_url.js"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","installedCssChunks","jsonpScriptSrc","p","exports","module","l","e","promises","cssChunks","Promise","resolve","reject","href","fullhref","existingLinkTags","document","getElementsByTagName","tag","dataHref","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","get_path","info","path","content_path","extract_oject","query_result","index","arguments","extract_list","init_biz_data","dataContainer","data_info","parent","_","biz_data","content_type","isArray","each","isPlainObject","v","k","Vue","set","add_biz_data","state","log","remove_biz_data","search_by","indexes","tools","update_biz_data","obj","get_entity_fields","vm","entity","keys","fields","map","label_text","$t","concat","isNumber","isInteger","isBoolean","match","parse","Date","value_fields","label","text","layout","editor","field","find","this","f","indexOf","props","get_field","assign","base_entity_helper","validator","_classCallCheck","_createClass","code_prefix","parameters","endpoint_code","_content_type","action","options","params","run","ref","callback","method","entryPoint","url","base_url","api","_getAction","item","handlePassed","handleErrors","validate","errors","get_endpoint","age","default","sortable","button","thStyle","width","_precise","formatter","create_by_username","update_by_username","other_type_key","state_control","context","display","tdClass","fcCheckSOApproved","SOApprovedState","is_email_send","fcCheckSOCreditControlApproved","SOCreditControlApprovedState","fcCheckSOPriceDffApproved","SOPriceDffApprovedState","detail_fields","editable","inventTable_fields","dataForm","id","SalesId","SalesName","CustAccount","InvoiceAccount","DeliveryDate","CurrencyCode","ExchRate","TaxGroup","SalesPoolId","InclTax","TEC_Remark","TEC_FinalCustAccount","dataAreaId","CreditMax","Temp_CreditMax","dispUsedCreditAmount","CustomerNotDispatchAmt","OrderAmount","OrderAmountTax","OrderAmountWOTax","DeliveryAddress","creditdataForm","AccountNum","PlantUsedCreditAmount","dispopenInvoiceBalanceMSTDue0","dispopenInvoiceBalanceMSTDue_N","dispopenInvoiceBalanceMSTDueAbove_N","dispopenInvoiceBalanceMSTDue30","dispopenInvoiceBalanceMSTDue31_60","dispopenInvoiceBalanceMSTDue60Above","orderAmount","creditMax","approved_comment","balance","dataItemForm","SalesTable_id","LineNum","ItemId","NameAlias","SalesStatus","Name","QtyOrdered","RemainSalesPhysical","RemainSalesFinancial","SalesPrice","DiscPrice","ConfirmedDlv","SalesUnit","SalesQty","TaxItemGroup","UnderDeliveryPct","OverDeliveryPct","RemainInventFinancial","TEC_CommonRemark","TEC_CustSalesID","TEC_LineAmountBak","TEC_OtherInfo","SEI_OrderDateCust","SEI_PriceUnitCust","SEI_ShippingDateCust","SEI_ProddataArea","valid_remain","RetailVariantId","VariantName","price_approved_state","SalesPriceTax","SalesPriceWOTax","DW_inventBatchIdSales","rules","required","trigger","descriptor","rule","asyncValidator","biz_data_helper","res","echo","catch","methods","copySalesOrder","_copySalesOrder","_asyncToGenerator","regeneratorRuntime","mark","_callee","_params","code_biz_data","_fields","wrap","_context","prev","next","execAction","sent","ActionResult","Result","Data","abrupt","stop","_x","getAllRoleUserName","_getAllRoleUserName","_callee2","ru_biz_data","_context2","getData","_getData","_callee3","_context3","selectAction","_x2","getDefualtCompanyTaxGroup","_getDefualtCompanyTaxGroup","_callee4","_context4","_x3","saveToSaleOrder","_saveToSaleOrder","_callee5","saleMaster","saleLines","documentCreateByUsername","_actions","_new","_p","_list","_rt","_context5","cloneDeep","date","_date","output_last_item_map","seq","insertAction","mixin_last_item_map","_data","actions","BatchResult","Actions","filter","Code","isNull","_x4","_x5","_x6","saveSalesOrder","_saveSalesOrder","_callee6","so_approve_biz_data","price_form","credit_form","order_form","_p2","_rt2","_context6","updateAction","itemId","documentType","approveType","salesOrderAmountCNY","isPriceDiff","IsCreditControlOk","_x7","_x8","deleteData","_deleteData","_callee7","items","check_del_biz_data","del_biz_data","cancel_email_biz_data","_context7","has_SalesLine","rollback_when","idx","toString","_x9","approveData","_approveData","_callee8","username","_update_status_list","update_status_biz_data","_is_ok","_result_filter","_context8","status_m","IsApproved","isApproved","ApproveBy","status_id","is_update_ok","_x10","_x11","getApproveStatus","_getApproveStatus","_callee9","get_status_biz_data","_context9","_x12","getDiscPrice","_getDiscPrice","_callee10","_context10","_x13","getItemDataBySelected","_getItemDataBySelected","_callee11","item_biz_data","_context11","remove","_x14","getDispatchedQty","_getDispatchedQty","_callee12","SOId","_context12","SalesOrderId","_x15","getItemData","_getItemData","_callee13","_context13","_x16","getItemDataNoSql","_getItemDataNoSql","_callee14","_context14","_x17","saveSalesOrderItems","_saveSalesOrderItems","_callee15","soForm","update_order_amount","add_list","update_list","check_biz_data","so_biz_data","_is_price_diff","batch_actions","_context15","SalesLineId","inputQty","allowed","salesorder_amount_cny","OrderAmountCNY","_x18","_x19","_x20","deleteItemData","_deleteItemData","_callee16","order_biz_data","_context16","deleteAction","_x21","getLocalAmountWOTaxData","_getLocalAmountWOTaxData","_callee17","_context17","_x22","getPlantCustUsedCredit","_getPlantCustUsedCredit","_callee18","gcrc_biz_data","_context18","_x23","checkUnApprove","_checkUnApprove","_callee19","rt_actions","_context19","if_can_unapprove","join","_x24","getDeliveryAddress","_getDeliveryAddress","_callee20","gcda_biz_data","_context20","_x25","vue","use","BootstrapVue","_ismsg","ls","SecureLs","encodingType","isCompression","lang_json","zhCN","localStorageMgr","locale","en","setContentTypeIfUnset","headers","utils","isUndefined","axios","defaults","common","transformResponse","JSON","transformRequest","normalizeHeaderName","isFormData","isArrayBuffer","isBuffer","isStream","isFile","isBlob","isArrayBufferView","buffer","isURLSearchParams","isObject","json","stringify","interceptors","config","access_token","pub_token","isEmpty","AccessToken","OpenDataAccessToken","plant_idx","localStorage","getItem","FormData","append","msg_data","vmMsg","response","location","new_token","new_access_token","_url","HasPrivilege","replace","NoPrivilegeCodes","findIndex","_msgDataClone","str","arr","split","$message","dangerouslyUseHTMLString","notify","showClose","duration","customClass","onClose","_msg","status","title","query_setting","req","post","query_batch","_ref","query_async","_ref2","query_settings","results","invoke_result","Array","t0","t1","t2","t3","t4","query_all_async","_ref3","requests","_i2","_query_setting","allSettled","downloadFile","_ref4","responseType","fileDownload","fileName","pub_url","apiPath","pub","get_pub_data","save_pub_data","token","pub_guest_token","render","_vm","_c","_self","staticRenderFns","watermark","setWatermark","getElementById","body","can","height","cans","getContext","rotate","Math","PI","font","fillStyle","textAlign","textBaseline","fillText","div","style","pointerEvents","top","left","position","zIndex","documentElement","clientWidth","clientHeight","background","toDataURL","setInterval","onresize","zoom","created","mounted","apiConfig","env","Watermark","component","_base_mixin","main_content_height","computed","lang","$i18n","_created","this_","msgModal","msg","h","$createElement","$bvModal","msgBoxConfirm","headerBgVariant","okVariant","okTitle","cancelTitle","footerClass","hideHeaderClose","msgToasts","_variant","_time","UseHTML","_title","_notify","$notify","formatDate","_dateTime","format_type","commonController","DefaultContainer","BaseContainer","Dashboard","ArticleDetail","UserManage","CustmerBind","PropertyManage","PropertyManageTest","RolePropertyTest","RoleManage","RolePropertyManage","LogManage","NotifyManage","SystemSetting","ApproveManage","VendTableMain","CustTableMain","SaleOrderPool","InventTableMain","PriceDiscTable","Currency","Tax","CompanyInfo","Unit","InventLocation","Worker","ForecastModel","TECProductPartsTBL","WrkCtrTable","TECRouteTypeTBL","TECColorGroupTBL","TECRouteSpoilageStdTBL","RouteOprTable","ProductPartsType","ElectricityPrices","SpoilageTypeRatio","CostItems","SOSalesQuote","VendPurchaseQuote","VendPurchaseQuoteOut","VendInitialQuote","SalesOrder","OrderForecast","SOTracking","SOImplementation","ForecastDeliveryPlan","ApprovedLog","SaleOrderDispatch","OrderForecastDispatch","ExternalUserSetting","InventBom","InventBomRoute","InventBomCost","InventBomVersion","Route","RouteVersion","QuotationTask","QuotationTaskHandle","QTHDistribution","QTHDistributionProofing","QuotationOrder","QuotationOrderProofing","InventPrice","CostCacl","QuotationOrderConfirm","NetDemandPlan","PurchaseOrder","DeliveryPlan","SaleOrderPurchaseRate","SupplierRate","PurchaseLineReturn","PurchImplementation","ConsultQuote","ConsultQuoteApplication","CustomerCredit","ProductionCapacity","InventSum","Page404","Page500","Login","Register","GuestLogin","Guest","TestSalesOrder","TestFieldSetting","TestTable3","ColorTest","Router","_router","linkActiveClass","scrollBehavior","y","routes","redirect","children","mata","meta","keepAlive","beforeEach","to","from","encodeURIComponent","global_data","local_username","products","provider","namespaced","Vuex","debug","process","Store","userInfo","last_plant_setting","plantSetting","baseData","templateData","Relation","kvData","all_fields_list","is_production","selectOrderByItems","selectColHeader","allhearder","mutations","cars","plugins","createPersistedState","storage","sessionStorage","paths","strict","MyPlugin","install","directive","el","binding","SELECTWRAP_DOM","querySelector","addEventListener","CONDITION","scrollHeight","scrollTop","checkOwnPrivileges","_checkOwnPrivileges","code_arr","privileges","_bool","store","user_roles_privileges","_index","Element","size","i18n","VueResize","BootstrapVueIcons","mixin","Print","scroll","scriptLoader","directives","event_bus","$event_bus","$date","_datejs","$global","global","$checkP","checkP","router","template","components","App","findIndexAll","array","unshift","display_number_value","numbro","format","thousandSeparated","zeroFormat","trimMantissa","mantissa","display_value","parseISO","display_options_value","option","goto","query","$router","guest_info","last_login_account","version","setItem","removeItem","clear","VueI18n","fallbackLocale","messages","zhLocale","enLocale","loadLanguageAsync","_i18n","lang_data","lang_exists","zh","getLocaleMessage","setLocaleMessage","getAloneLanguageAsync","$loadLanguageAsync","$getAloneLanguageAsync","dictionary","email_form","isDate","isString","sendOrCancelNotify","_sendOrCancelNotify","email","add_notify","cancel_notify","Success","getUserNameFromRole","rolses","fromApprover","toApprover","isShowApprover","_rn_data","_approver","role_code","getServerDateTime","_getServerDateTime","checkIsBeforeCurrentDate","_checkIsBeforeCurrentDate","_date_r","today","updateEmailSendState","_updateEmailSendState","_type","list","update_email_state_biz_data","checkIfCanModifyOrder","_this","create_by","$store","user_id","checkApprovePrivilige","_checkApprovePrivilige","_check_list","_approveStatusIdList","_roles","_at","at","roles","done","SalesOrderController","DocumentType","ApproveType","approve_type","includes","Approver","isNotCheckPrivilage","action_state","ApproveLevel","notPriviligeIdList","approveStatusIdList","checkPrivilige","p_code","p_text","user_roles_list","_role_index","user_pri_list","createAXErorrLog","_createAXErorrLog","error_actions","error_msg","getEmailDataFromSqlCode","_getEmailDataFromSqlCode","sql_code","handleEmailNotify","_handleEmailNotify","action_type","allRoleUsers","email_users","rt","e_data","order_nums","em","template_item","fn","_args8","forEach","IsHomemade","handleData_QuoteApply","subject","content","templates","notify_type","compile","groupBy","flattenDeep","handleEmailData","_handleEmailData","notify_list","made_data","_rsult","handleSalesCompanyEmail","handleMadeCompanyEmail","email_data","e_users","template_code","handleData_ConsultApply","ecodes","handleEusers","handleData_BomAndRoute","handleData_ConsultComplate","fcGetSQODApprover","approver","role_users","role_usernames","union","handleData_DistributionComplate","QuotationTaskNum","protocol","host","url_name","handleData_QuoteOrderConfirm","uniq","email_action_type","handleData_QuoteOrderApproved","excuteSendAction","group_made_data","notify_item","EmailNotifierJson_Cust","send_to","category","SendTo","email_item","email_codes","et","et1","EmailNotifierJson_Sales","DataArea","EmailNotifierJson","mt","eut","getEmailUser","isRole","made_company","e_data_item","_t","clone","CustName","CompanyName","ComplateDate","Description","create_at","fcCheckSQOApproved","SQOApprover","DemandDate","Manufacturer","ConsultQuoteApplyNum","is_valid","BomData","BomID","RouteData","RouteID","BomConfirmState","AccountName","BomId","BomName","BomVersionName","items1","RouteConfirmState","RouteId","RouteName","RouteVersionName","_lineNum","qt_group_dt","email_list","item_group_dt","data_items","main","DistributionRatio","dm","_totalCost","ToQty","FromQty","Price_WOTax","TotalCost","round","toNumber","Qty","QuotationTaskId","QuotationTaskLineNum","_base_url","baseUrl","admin","get_user_list","get_role_list","get_role_root_list","get_privilege_list","get_role_own_privilege_list","get_role_all_privilege_list","get_role_children_list","get_role_parents_list","get_role_users_list","get_user_roles_list","add_role_child","remove_role_child","update_role","add_role","get_user_privilege_list","block_user","active_user","remove_role","add_role_own_privileges","remove_role_own_privileges","update_privileges","add_role_user","remove_role_user","get_notify_types","get_notify_users","add_notify_type","update_notify_type","remove_notify_type","add_notify_users","remove_notify_user","add_user","update_user","reset_pwd","CleanRoleOwnPrivileges","axInterface","axInterface_invoke","pickand_invoke","email_send","get_email","updated","file_upload","img_upload","excel_upload","plant","base_data","get_setting","user","login","get_userinfo","profile","login_uri","get_pub_token","logs","sys_logs","language","file","upload","delete","downLoad","update","upload_file","file_list","upload_delete"],"mappings":"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","file":"js/app.f9dd510a.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t\"app\": 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({}[chunkId]||chunkId) + \".\" + {\"chunk-23cff535\":\"eeb7e891\",\"chunk-2d0c1178\":\"20760d72\",\"chunk-2d0c4303\":\"506d6918\",\"chunk-2d0c9547\":\"7789b33f\",\"chunk-2d2131a8\":\"f201937d\",\"chunk-2d22c303\":\"4f6ba1fe\",\"chunk-31996b18\":\"732fcac3\",\"chunk-5106bcb0\":\"673f9e88\",\"chunk-d7c17e5a\":\"940ed15b\",\"chunk-36cfdeb4\":\"6e219d2e\",\"chunk-076971c9\":\"fedcfe46\",\"chunk-0b9ee956\":\"7610233f\",\"chunk-0df2bd1a\":\"32707461\",\"chunk-1f43f0de\":\"45710031\",\"chunk-2059f4d6\":\"8adc9668\",\"chunk-22fd362e\":\"834dc0a3\",\"chunk-245d0d7e\":\"666d870c\",\"chunk-4cd92747\":\"97e0122b\",\"chunk-2550bc53\":\"fbc29a46\",\"chunk-263546c0\":\"f6de3ddc\",\"chunk-2b9aea97\":\"0659f11d\",\"chunk-2bd6f300\":\"84629f82\",\"chunk-2d0c7b2e\":\"a24adc23\",\"chunk-44ab37fe\":\"5d3d84ff\",\"chunk-250e53dd\":\"cb3d4a19\",\"chunk-2d0e23b0\":\"ac0abef8\",\"chunk-2d21058f\":\"a455803b\",\"chunk-1e2c454a\":\"5455939f\",\"chunk-52dba72c\":\"ab32fd1f\",\"chunk-1d8a933e\":\"ab666eef\",\"chunk-54771bc0\":\"eee9ebd9\",\"chunk-b432a732\":\"6a5f2e7d\",\"chunk-f3194678\":\"0c468b90\",\"chunk-13df95b0\":\"6f333222\",\"chunk-5da07066\":\"3105a708\",\"chunk-71e1ed09\":\"be9b68a7\",\"chunk-99dab73a\":\"dd8c80a9\",\"chunk-ca0452fe\":\"c725e526\",\"chunk-2fd63382\":\"6e1e276c\",\"chunk-3761be30\":\"8a559d81\",\"chunk-384cf3bc\":\"a6a95691\",\"chunk-3b326415\":\"c36c325b\",\"chunk-3ea5a4a5\":\"6ec2b5e3\",\"chunk-3fae11f2\":\"789d1503\",\"chunk-408f0e5a\":\"d48bb289\",\"chunk-44a94ec4\":\"eab00b9c\",\"chunk-05c98e42\":\"09bc8fc5\",\"chunk-4b62fb33\":\"63dffb52\",\"chunk-4c67ac96\":\"fd29cbe7\",\"chunk-51db8217\":\"c31b682a\",\"chunk-523f4893\":\"bb491421\",\"chunk-7e291602\":\"61f551b6\",\"chunk-5326b508\":\"6e62a56e\",\"chunk-55e82c8a\":\"2f7f83f6\",\"chunk-59064926\":\"de63634a\",\"chunk-5a1a744c\":\"78bbe7a2\",\"chunk-5e7a9b74\":\"edbe2384\",\"chunk-5f7c1808\":\"253da59f\",\"chunk-61295c74\":\"7686953f\",\"chunk-623073d0\":\"58054922\",\"chunk-6324b563\":\"c542aca2\",\"chunk-665f40b6\":\"b8b23cad\",\"chunk-6aa14762\":\"db8d4544\",\"chunk-7237aa59\":\"b059df8b\",\"chunk-76fddfab\":\"d1c0374b\",\"chunk-8c70e95a\":\"7c4e7259\",\"chunk-91a5c550\":\"c56f012e\",\"chunk-9a63199c\":\"8a412d47\",\"chunk-9eb901b8\":\"2ea4b8d3\",\"chunk-a23105c4\":\"553ef9b6\",\"chunk-aa23ffd2\":\"21a786f4\",\"chunk-b722bb78\":\"3886f499\",\"chunk-d066bf5a\":\"43283fbf\",\"chunk-d3bece7a\":\"f582b436\",\"chunk-daa9c8fa\":\"e9a9cc6c\",\"chunk-1206720b\":\"2d7eef5a\",\"chunk-73870dfe\":\"c4bfd395\",\"chunk-795e8b7c\":\"51819850\",\"chunk-59eb167e\":\"b5b118a1\",\"chunk-144bb903\":\"6ba3cb3b\",\"chunk-3651644c\":\"076da110\",\"chunk-4372afb1\":\"ba0c8e7b\",\"chunk-4b7b981f\":\"09d694b0\",\"chunk-5b42098c\":\"f642b6d7\",\"chunk-5c2583f2\":\"8df9a13f\",\"chunk-69b43a0e\":\"fa567ef9\",\"chunk-6dd1403a\":\"55e924e3\",\"chunk-76edae0a\":\"b6cd553c\",\"chunk-0b4bec55\":\"14e739c6\",\"chunk-5b02f340\":\"f4df080d\",\"chunk-ddb95940\":\"ce2b4711\",\"chunk-30676f62\":\"ce880174\",\"chunk-2cd87f73\":\"a84e4a0e\",\"chunk-2cfbe7d8\":\"dbe9bf36\",\"chunk-fce09388\":\"beefc8a7\",\"chunk-230b905b\":\"58992717\",\"chunk-facc8b76\":\"9b7db923\",\"chunk-7da7a28a\":\"453f86e5\",\"chunk-904e6db0\":\"4f0c3e0f\",\"chunk-95d97474\":\"ed54eba6\",\"chunk-b819b4b4\":\"22c5af83\",\"chunk-098ffa12\":\"66ba7a70\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"chunk-23cff535\":1,\"chunk-31996b18\":1,\"chunk-5106bcb0\":1,\"chunk-d7c17e5a\":1,\"chunk-36cfdeb4\":1,\"chunk-076971c9\":1,\"chunk-0b9ee956\":1,\"chunk-0df2bd1a\":1,\"chunk-1f43f0de\":1,\"chunk-2059f4d6\":1,\"chunk-22fd362e\":1,\"chunk-245d0d7e\":1,\"chunk-4cd92747\":1,\"chunk-2550bc53\":1,\"chunk-263546c0\":1,\"chunk-2b9aea97\":1,\"chunk-2bd6f300\":1,\"chunk-44ab37fe\":1,\"chunk-250e53dd\":1,\"chunk-1e2c454a\":1,\"chunk-52dba72c\":1,\"chunk-1d8a933e\":1,\"chunk-54771bc0\":1,\"chunk-b432a732\":1,\"chunk-f3194678\":1,\"chunk-13df95b0\":1,\"chunk-5da07066\":1,\"chunk-71e1ed09\":1,\"chunk-99dab73a\":1,\"chunk-ca0452fe\":1,\"chunk-2fd63382\":1,\"chunk-3761be30\":1,\"chunk-384cf3bc\":1,\"chunk-3b326415\":1,\"chunk-3ea5a4a5\":1,\"chunk-3fae11f2\":1,\"chunk-408f0e5a\":1,\"chunk-05c98e42\":1,\"chunk-4b62fb33\":1,\"chunk-4c67ac96\":1,\"chunk-51db8217\":1,\"chunk-523f4893\":1,\"chunk-7e291602\":1,\"chunk-5326b508\":1,\"chunk-55e82c8a\":1,\"chunk-59064926\":1,\"chunk-5a1a744c\":1,\"chunk-5e7a9b74\":1,\"chunk-5f7c1808\":1,\"chunk-61295c74\":1,\"chunk-623073d0\":1,\"chunk-6324b563\":1,\"chunk-665f40b6\":1,\"chunk-6aa14762\":1,\"chunk-7237aa59\":1,\"chunk-76fddfab\":1,\"chunk-8c70e95a\":1,\"chunk-9a63199c\":1,\"chunk-9eb901b8\":1,\"chunk-a23105c4\":1,\"chunk-aa23ffd2\":1,\"chunk-d066bf5a\":1,\"chunk-daa9c8fa\":1,\"chunk-1206720b\":1,\"chunk-73870dfe\":1,\"chunk-795e8b7c\":1,\"chunk-144bb903\":1,\"chunk-3651644c\":1,\"chunk-4372afb1\":1,\"chunk-4b7b981f\":1,\"chunk-5b42098c\":1,\"chunk-5c2583f2\":1,\"chunk-69b43a0e\":1,\"chunk-6dd1403a\":1,\"chunk-76edae0a\":1,\"chunk-0b4bec55\":1,\"chunk-5b02f340\":1,\"chunk-30676f62\":1,\"chunk-2cd87f73\":1,\"chunk-2cfbe7d8\":1,\"chunk-fce09388\":1,\"chunk-230b905b\":1,\"chunk-facc8b76\":1,\"chunk-7da7a28a\":1,\"chunk-904e6db0\":1,\"chunk-95d97474\":1,\"chunk-b819b4b4\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"css/\" + ({}[chunkId]||chunkId) + \".\" + {\"chunk-23cff535\":\"d78c44e7\",\"chunk-2d0c1178\":\"31d6cfe0\",\"chunk-2d0c4303\":\"31d6cfe0\",\"chunk-2d0c9547\":\"31d6cfe0\",\"chunk-2d2131a8\":\"31d6cfe0\",\"chunk-2d22c303\":\"31d6cfe0\",\"chunk-31996b18\":\"458b9489\",\"chunk-5106bcb0\":\"451c1554\",\"chunk-d7c17e5a\":\"1360c609\",\"chunk-36cfdeb4\":\"711bf2b2\",\"chunk-076971c9\":\"c54ae4cf\",\"chunk-0b9ee956\":\"37cfd978\",\"chunk-0df2bd1a\":\"0f97a747\",\"chunk-1f43f0de\":\"fd3c9efd\",\"chunk-2059f4d6\":\"0f97a747\",\"chunk-22fd362e\":\"0f97a747\",\"chunk-245d0d7e\":\"0f97a747\",\"chunk-4cd92747\":\"6e0f6faa\",\"chunk-2550bc53\":\"f0c8a59d\",\"chunk-263546c0\":\"c4f5667c\",\"chunk-2b9aea97\":\"0f97a747\",\"chunk-2bd6f300\":\"0f97a747\",\"chunk-2d0c7b2e\":\"31d6cfe0\",\"chunk-44ab37fe\":\"0f97a747\",\"chunk-250e53dd\":\"f97fe345\",\"chunk-2d0e23b0\":\"31d6cfe0\",\"chunk-2d21058f\":\"31d6cfe0\",\"chunk-1e2c454a\":\"3ae953be\",\"chunk-52dba72c\":\"cc077f0d\",\"chunk-1d8a933e\":\"38633927\",\"chunk-54771bc0\":\"a26bc4ca\",\"chunk-b432a732\":\"2695375b\",\"chunk-f3194678\":\"f0f3f1f0\",\"chunk-13df95b0\":\"f152b588\",\"chunk-5da07066\":\"7c1730c9\",\"chunk-71e1ed09\":\"b0d0af45\",\"chunk-99dab73a\":\"33d516d4\",\"chunk-ca0452fe\":\"72ab5123\",\"chunk-2fd63382\":\"7a479dba\",\"chunk-3761be30\":\"0f97a747\",\"chunk-384cf3bc\":\"44ee4ab1\",\"chunk-3b326415\":\"d81371bf\",\"chunk-3ea5a4a5\":\"0f97a747\",\"chunk-3fae11f2\":\"c4f5667c\",\"chunk-408f0e5a\":\"d602492c\",\"chunk-44a94ec4\":\"31d6cfe0\",\"chunk-05c98e42\":\"59e99439\",\"chunk-4b62fb33\":\"0f97a747\",\"chunk-4c67ac96\":\"0f97a747\",\"chunk-51db8217\":\"d461174e\",\"chunk-523f4893\":\"0f97a747\",\"chunk-7e291602\":\"262d3e04\",\"chunk-5326b508\":\"103d9888\",\"chunk-55e82c8a\":\"e5304e77\",\"chunk-59064926\":\"0f97a747\",\"chunk-5a1a744c\":\"d111f73b\",\"chunk-5e7a9b74\":\"0f97a747\",\"chunk-5f7c1808\":\"c9f6ec6b\",\"chunk-61295c74\":\"0f97a747\",\"chunk-623073d0\":\"9b6761cd\",\"chunk-6324b563\":\"58ec8bf4\",\"chunk-665f40b6\":\"70d0cbc2\",\"chunk-6aa14762\":\"d808c3d0\",\"chunk-7237aa59\":\"0f97a747\",\"chunk-76fddfab\":\"408423e4\",\"chunk-8c70e95a\":\"1016ab96\",\"chunk-91a5c550\":\"31d6cfe0\",\"chunk-9a63199c\":\"c4f5667c\",\"chunk-9eb901b8\":\"0f97a747\",\"chunk-a23105c4\":\"73bafd44\",\"chunk-aa23ffd2\":\"c361273a\",\"chunk-b722bb78\":\"31d6cfe0\",\"chunk-d066bf5a\":\"0f97a747\",\"chunk-d3bece7a\":\"31d6cfe0\",\"chunk-daa9c8fa\":\"4b5c2bc9\",\"chunk-1206720b\":\"b3388192\",\"chunk-73870dfe\":\"46cdd390\",\"chunk-795e8b7c\":\"1c640629\",\"chunk-59eb167e\":\"31d6cfe0\",\"chunk-144bb903\":\"82df0f05\",\"chunk-3651644c\":\"ca8d7f98\",\"chunk-4372afb1\":\"0ead5881\",\"chunk-4b7b981f\":\"ac597569\",\"chunk-5b42098c\":\"ff6be397\",\"chunk-5c2583f2\":\"23682406\",\"chunk-69b43a0e\":\"847a6ca5\",\"chunk-6dd1403a\":\"95aea0fe\",\"chunk-76edae0a\":\"edbeae67\",\"chunk-0b4bec55\":\"7707558f\",\"chunk-5b02f340\":\"c5b95df6\",\"chunk-ddb95940\":\"31d6cfe0\",\"chunk-30676f62\":\"fb6c0a97\",\"chunk-2cd87f73\":\"95a7f4b4\",\"chunk-2cfbe7d8\":\"040109f7\",\"chunk-fce09388\":\"91151920\",\"chunk-230b905b\":\"430daccf\",\"chunk-facc8b76\":\"c4f5667c\",\"chunk-7da7a28a\":\"f99141af\",\"chunk-904e6db0\":\"5c4c82ee\",\"chunk-95d97474\":\"b43dfc32\",\"chunk-b819b4b4\":\"9fa32ba5\",\"chunk-098ffa12\":\"31d6cfe0\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([1,\"vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","// -- import * as _ from \"lodash-es\"\r\nimport Vue from \"vue\"\r\nimport * as tools from \"./tools\"\r\n// import endpoints_setting from \"./endpoints_setting\";\r\nimport { parse } from \"date-fns\"\r\nimport * as api from \"./api\"\r\nimport * as base_url from \"./base_url\"\r\n\r\nconst get_path = info => {\r\n let path = info.content_path\r\n if (!path) path = \"biz_data\"\r\n return path\r\n}\r\n\r\nexport const extract_oject = function (query_result, index = 0) {\r\n return query_result[index].result.data[0]\r\n}\r\n\r\nexport const extract_list = function (query_result, index = 0) {\r\n return query_result[index].result.data\r\n}\r\n\r\nexport const init_biz_data = function (dataContainer, data_info) {\r\n let data = data_info.data\r\n let parent = _.get(dataContainer, get_path(data_info))\r\n let biz_data = parent[data_info.content_type]\r\n if (_.isArray(biz_data) && _.isArray(data)) {\r\n biz_data.splice(0)\r\n _.each(data, o => {\r\n biz_data.splice(0, 0, o)\r\n })\r\n } else if (_.isPlainObject(biz_data) && _.isPlainObject(data)) {\r\n _.each(data, (v, k) => {\r\n Vue.set(biz_data, k, v)\r\n })\r\n }\r\n}\r\n\r\nexport const add_biz_data = function (state, data_info) {\r\n let data = data_info.data\r\n console.log(state)\r\n let path = get_path(data_info)\r\n console.log(path)\r\n let biz_data = _.get(state, path)[data_info.content_type]\r\n if (!_.isArray(biz_data)) return\r\n if (_.isArray(data)) {\r\n _.each(data, o => {\r\n biz_data.push(o)\r\n })\r\n } else if (_.isPlainObject(data)) {\r\n biz_data.push(data)\r\n }\r\n}\r\n\r\nexport const remove_biz_data = function (state, data_info) {\r\n let biz_data = _.get(state, get_path(data_info))[data_info.content_type]\r\n let search_by = data_info.search_by\r\n if (!_.isArray(biz_data)) return\r\n let indexes = tools.findIndexAll(biz_data, search_by)\r\n _.each(indexes, index => {\r\n biz_data.splice(index, 1)\r\n })\r\n}\r\n\r\nexport const update_biz_data = function (state, data_info) {\r\n let data = data_info.data\r\n let biz_data = _.get(state, get_path(data_info))[data_info.content_type]\r\n let search_by = data_info.search_by\r\n if (!_.isPlainObject(data)) return\r\n if (_.isArray(biz_data)) {\r\n let indexes = tools.findIndexAll(biz_data, search_by)\r\n _.each(indexes, index => {\r\n let obj = biz_data[index]\r\n _.each(data, (v, k) => {\r\n Vue.set(obj, k, v)\r\n })\r\n })\r\n } else if (_.isPlainObject(biz_data)) {\r\n _.each(data, (v, k) => {\r\n Vue.set(biz_data, k, v)\r\n })\r\n }\r\n}\r\n\r\n// export const get_table_fields = function(\r\n// vm,\r\n// code,\r\n// content_type,\r\n// setting,\r\n// include_fields,\r\n// field_group_num = 0,\r\n// my_fields_setting = null\r\n// ) {\r\n// let sortable = false;\r\n// let filtable = false;\r\n// let editable = false;\r\n\r\n// if (setting) {\r\n// sortable = setting.sortable ? setting.sortable : false;\r\n// filtable = setting.filtable ? setting.filtable : false;\r\n// editable = setting.editable ? setting.editable : false;\r\n// }\r\n\r\n// let fields = [];\r\n// if (my_fields_setting) {\r\n// _.each(my_fields_setting, function(v, key) {\r\n// let label = vm.$t(`${content_type}.${key}`);\r\n// let thClass = [\"hb_thead_th\", \"hb_thead_th_\" + key];\r\n// let tdClass = [\"hb_tbody_td\", \"hb_tbody_td_\" + key];\r\n// fields.push({\r\n// key,\r\n// label,\r\n// sortable,\r\n// filtable,\r\n// editable,\r\n// thClass,\r\n// tdClass,\r\n// thStyle: { width: \"auto\" },\r\n// type: v.type,\r\n// primary_key: v.primary_key ? true : false\r\n// });\r\n// });\r\n// } else {\r\n// let endpoint = get_endpoint(code);\r\n\r\n// if (include_fields) {\r\n// _.each(include_fields, function(key) {\r\n// let v = endpoint.response[field_group_num][key];\r\n// if (v) {\r\n// let label = vm.$t(`${content_type}.${key}`);\r\n// let thClass = [\"hb_thead_th\", \"hb_thead_th_\" + key];\r\n// let tdClass = [\"hb_tbody_td\", \"hb_tbody_td_\" + key];\r\n// fields.push({\r\n// key,\r\n// label,\r\n// sortable,\r\n// filtable,\r\n// editable,\r\n// thClass,\r\n// tdClass,\r\n// thStyle: { width: \"auto\" },\r\n// type: v.type,\r\n// primary_key: v.primary_key ? true : false\r\n// });\r\n// }\r\n// });\r\n// } else {\r\n// _.each(endpoint.response[field_group_num], function(v, key) {\r\n// let label = vm.$t(`${content_type}.${key}`);\r\n// let thClass = [\"hb_thead_th\", \"hb_thead_th_\" + key];\r\n// let tdClass = [\"hb_tbody_td\", \"hb_tbody_td_\" + key];\r\n// fields.push({\r\n// key,\r\n// label,\r\n// sortable,\r\n// filtable,\r\n// editable,\r\n// thClass,\r\n// tdClass,\r\n// thStyle: { width: \"auto\" },\r\n// type: v.type,\r\n// primary_key: v.primary_key ? true : false\r\n// });\r\n// });\r\n// }\r\n// }\r\n\r\n// let result = { content_type, fields };\r\n// result.add_field = function(setting) {\r\n// let field = setting;\r\n// field.thClass = [\"hb_thead_th\", \"hb_thead_th_\" + field.key];\r\n// field.tdClass = [\"hb_tbody_td\", \"hb_tbody_td_\" + field.key];\r\n// this.fields.push(field);\r\n// };\r\n// result.add_last_blank_field = function() {\r\n// this.fields.push({\r\n// key: \"_blank\",\r\n// label: \"-\",\r\n// type: \"string\",\r\n// thStyle: { width: \"100%\" },\r\n// thClass: [\"hb_thead_th\", \"hb_thead_th__blank\"],\r\n// tdClass: [\"hb_tbody_td\", \"hb_tbody_td__blank\"]\r\n// });\r\n// };\r\n// result.set_field_props = function(key, props) {\r\n// let field = _.find(this.fields, { key });\r\n// if (field) {\r\n// Object.assign(field, props);\r\n// }\r\n// };\r\n\r\n// return result;\r\n// };\r\n\r\nexport const get_entity_fields = function (vm, entity, content_type) {\r\n let keys = _.keys(entity)\r\n let fields = _.map(keys, function (k) {\r\n let v = entity[k]\r\n let label_text = vm.$t(`${content_type}.${k}`)\r\n let type = \"text\"\r\n if (v !== null) {\r\n if (_.isNumber(v)) {\r\n type = _.isInteger(v) ? \"integer\" : \"number\"\r\n } else if (_.isBoolean(v) || v.match(/is_.*/)) {\r\n type = \"boolean\"\r\n } else if (\r\n parse(v, \"yyyy-MM-dd HH:mm:ss\", new Date()) ||\r\n v.match(/^.*_date$/) ||\r\n v.match(/^.*_date_.*$/)\r\n ) {\r\n type = \"datetime\"\r\n } else if (\r\n parse(v, \"yyyy-MM-dd\", new Date()) ||\r\n v.match(/^.*_datetime$/) ||\r\n v.match(/^.*_datetime_.*$/)\r\n ) {\r\n type = \"date\"\r\n }\r\n }\r\n\r\n return {\r\n value_fields: [k],\r\n type,\r\n label: { text: label_text, layout: {} },\r\n editor: { layout: {} }\r\n }\r\n })\r\n\r\n let result = { content_type, fields }\r\n result.get_field = function (key) {\r\n let field = _.find(this.fields, function (f) {\r\n return _.indexOf(f.value_fields, key) !== -1\r\n })\r\n return field\r\n }\r\n result.set_field_props = function (key, props) {\r\n let field = this.get_field(key)\r\n if (field) {\r\n Object.assign(field, props)\r\n }\r\n }\r\n return result\r\n}\r\n\r\nexport class base_entity_helper {\r\n constructor(content_type, create, validator) {\r\n this.content_type = content_type\r\n this.create = create\r\n this.validator = validator\r\n // this.get_table_fields = get_table_fields;\r\n this.get_entity_fields = get_entity_fields\r\n this.extract_list = extract_list\r\n this.extract_oject = extract_oject\r\n }\r\n\r\n _getAction(code_prefix, parameters) {\r\n\r\n let endpoint_code = code_prefix + \"/\" + this.content_type\r\n let _content_type = this.content_type\r\n return {\r\n action: function (options) {\r\n return {\r\n code: endpoint_code,\r\n params: parameters.params,\r\n fields: parameters.fields,\r\n options: options\r\n }\r\n },\r\n run: function (ref, callback, method = \"post\") {\r\n let entryPoint = {}\r\n entryPoint.url = base_url.base_url + \"/\" + endpoint_code\r\n entryPoint.content_type = _content_type\r\n entryPoint.parameters = parameters\r\n entryPoint.ref = ref\r\n entryPoint.method = method\r\n entryPoint.code = endpoint_code\r\n return api.query_async(entryPoint, callback)\r\n }\r\n }\r\n }\r\n\r\n execAction(parameters) {\r\n return this._getAction(\"data/e\", parameters)\r\n }\r\n\r\n handlerAction(parameters) {\r\n return this._getAction(\"data/h\", parameters)\r\n }\r\n //执行script\r\n handlerScriptAction(parameters) {\r\n return this._getAction(\"data/h/execute_script\", parameters)\r\n }\r\n\r\n checkAction(parameters) {\r\n return this._getAction(\"data/x\", parameters)\r\n }\r\n\r\n selectAction(parameters) {\r\n return this._getAction(\"data/s\", parameters)\r\n }\r\n\r\n insertAction(parameters) {\r\n return this._getAction(\"data/i\", parameters)\r\n }\r\n\r\n updateAction(parameters) {\r\n return this._getAction(\"data/u\", parameters)\r\n }\r\n\r\n approveAction(parameters) {\r\n return this._getAction(\"data/a\", parameters)\r\n }\r\n\r\n deleteAction(parameters) {\r\n return this._getAction(\"data/d\", parameters)\r\n }\r\n removeAction(parameters) {\r\n return this._getAction(\"data/r\", parameters)\r\n }\r\n\r\n validate(item, handlePassed, handleErrors) {\r\n this.validator.validate(item, (errors, fields) => {\r\n if (errors) {\r\n // validation failed, errors is an array of all errors\r\n // fields is an object keyed by field name with an array of\r\n // errors per field\r\n return handleErrors(errors, fields)\r\n }\r\n // validation passed\r\n return handlePassed(item)\r\n })\r\n }\r\n}\r\n\r\nexport const get_endpoint = function (code) {\r\n // let endpoint = _.find(endpoints_setting.items, { code });\r\n // if (!endpoint) {\r\n // console.log(\"entry point code not found:\" + code);\r\n // return {\r\n // url: endpoints_setting.base_url + \"/\" + code,\r\n // parameters: null,\r\n // response: null,\r\n // ref: null\r\n // };\r\n // } else {\r\n // let p = _.cloneDeep(endpoint);\r\n // p.ref = null;\r\n // return p;\r\n // }\r\n}\r\n","// -- import * as _ from \"lodash-es\"\r\nimport * as _date from \"date-fns\"\r\nimport * as api from \"../../shared/api\"\r\nimport * as biz_data_helper from \"../../shared/biz_data_helper\"\r\n\r\nconst content_type = \"SalesTable\"\r\n\r\nconst create = function () {\r\n return {\r\n content_type: \"muji\",\r\n age: 29\r\n }\r\n}\r\nconst fields = {\r\n default: [\r\n {\r\n key: \"id\",\r\n label: \"编号\",\r\n sortable: true,\r\n type: \"button\",\r\n button: {\r\n type: \"text\"\r\n },\r\n thStyle: {\r\n width: \"60px\"\r\n }\r\n },\r\n {\r\n key: \"SalesId\",\r\n label: \"平台销售订单编号\",\r\n sortable: true\r\n },\r\n {\r\n key: \"dataAreaId\",\r\n label: \"销售公司\",\r\n sortable: true,\r\n thStyle: {\r\n width: \"5rem\"\r\n }\r\n },\r\n {\r\n key: \"CompanyName\",\r\n label: \"销售公司名称\",\r\n sortable: true,\r\n thStyle: { width: \"8rem\" },\r\n type: \"short\"\r\n },\r\n {\r\n key: \"SEI_BigCustomerNumber\",\r\n label: \"TOP客户组\",\r\n sortable: true,\r\n thStyle: {\r\n width: \"10rem\"\r\n },\r\n type: \"short\"\r\n },\r\n {\r\n key: \"CustAccount\",\r\n label: \"客户帐户\",\r\n sortable: true\r\n },\r\n {\r\n key: \"SalesName\",\r\n label: \"客户名称\",\r\n sortable: true,\r\n thStyle: {\r\n width: \"15rem\"\r\n }\r\n },\r\n {\r\n key: \"DeliveryAddress\",\r\n label: \"送货地址\",\r\n sortable: true,\r\n thStyle: {\r\n width: \"15rem\"\r\n }\r\n },\r\n {\r\n key: \"InvoiceAccount\",\r\n label: \"发票帐户\",\r\n sortable: true\r\n },\r\n {\r\n key: \"DeliveryDate\",\r\n label: \"装运日期\",\r\n sortable: true,\r\n type: \"date\"\r\n },\r\n {\r\n key: \"OrderAmount\",\r\n label: \"订单金额\",\r\n sortable: true,\r\n type: \"number\",\r\n _precise: 2,\r\n thStyle: {\r\n width: \"5rem\"\r\n }\r\n },\r\n {\r\n key: \"OrderAmountWOTax\",\r\n label: \"本币不含税金额\",\r\n sortable: true,\r\n type: \"number\",\r\n _precise: 2,\r\n thStyle: { width: \"8rem\" }\r\n },\r\n {\r\n key: \"CurrencyCode\",\r\n label: \"币种\",\r\n sortable: true\r\n },\r\n {\r\n key: \"ExchRate\",\r\n label: \"汇率\",\r\n sortable: true,\r\n type: \"number\",\r\n thStyle: { width: \"80px\" },\r\n _precise: 4\r\n },\r\n {\r\n key: \"TaxGroup\",\r\n label: \"销售税组\",\r\n sortable: true\r\n },\r\n {\r\n key: \"SalesPoolId\",\r\n label: \"池\",\r\n sortable: true\r\n },\r\n {\r\n key: \"InclTax\",\r\n label: \"价格包括销售税\",\r\n sortable: true\r\n },\r\n\r\n {\r\n key: \"TEC_Remark\",\r\n label: \"备注\",\r\n sortable: true\r\n },\r\n {\r\n key: \"TEC_FinalCustAccount\",\r\n label: \"最终客户\",\r\n sortable: true\r\n },\r\n {\r\n key: \"create_by\",\r\n label: \"创建人\",\r\n sortable: true,\r\n formatter: (value, key, item) => {\r\n return item.create_by_username\r\n }\r\n },\r\n {\r\n key: \"create_at\",\r\n label: \"创建时间\",\r\n sortable: true,\r\n type: \"datetime\"\r\n },\r\n {\r\n key: \"update_by\",\r\n label: \"修改人\",\r\n sortable: true,\r\n formatter: (value, key, item) => {\r\n return item.update_by_username\r\n }\r\n },\r\n {\r\n key: \"update_at\",\r\n label: \"修改时间\",\r\n sortable: true,\r\n type: \"datetime\"\r\n },\r\n\r\n {\r\n key: \"SOApprover\",\r\n label: \"订单待审批人\",\r\n sortable: true,\r\n thStyle: {\r\n width: \"12rem\"\r\n }\r\n },\r\n\r\n {\r\n key: \"fcCheckSOApproved\",\r\n label: \"订单审批\",\r\n sortable: true,\r\n type: \"state\",\r\n other_type_key: \"is_email_send\",\r\n state_control: \"fcCheckSOApproved\",\r\n context: [\"待审批\", \"已审批\", \"审批中\"]\r\n },\r\n {\r\n key: \"SOApprovedState\",\r\n label: \"订单审批状态名称\",\r\n sortable: true,\r\n thStyle: {\r\n display: \"none\"\r\n },\r\n tdClass: \"no-shown-RetailVariantId\",\r\n formatter: (value, key, item) => {\r\n if (item.fcCheckSOApproved) {\r\n item.SOApprovedState = \"已审批\"\r\n return \"已审批\"\r\n } else if (item.is_email_send) {\r\n item.SOApprovedState = \"审批中\"\r\n return \"审批中\"\r\n } else {\r\n item.SOApprovedState = \"待审批\"\r\n return \"待审批\"\r\n }\r\n }\r\n },\r\n\r\n {\r\n key: \"SOCreditControlApprover\",\r\n label: \"信用待审批人\",\r\n sortable: true,\r\n thStyle: {\r\n width: \"12rem\"\r\n }\r\n },\r\n {\r\n key: \"approved_comment\",\r\n label: \"信用控制意见\",\r\n thStyle: {\r\n width: \"10rem\"\r\n }\r\n },\r\n {\r\n key: \"fcCheckSOCreditControlApproved\",\r\n label: \"信用控制状态\",\r\n sortable: true,\r\n type: \"state\",\r\n other_type_key: \"is_email_send\",\r\n context: [\"待审批\", \"已审批\", \"审批中\"]\r\n },\r\n {\r\n key: \"SOCreditControlApprovedState\",\r\n label: \"信用审批状态名称\",\r\n sortable: true,\r\n thStyle: {\r\n display: \"none\"\r\n },\r\n tdClass: \"no-shown-RetailVariantId\",\r\n formatter: (value, key, item) => {\r\n if (item.fcCheckSOCreditControlApproved) {\r\n item.SOCreditControlApprovedState = \"已审批\"\r\n return \"已审批\"\r\n } else if (item.is_email_send) {\r\n item.SOCreditControlApprovedState = \"审批中\"\r\n return \"审批中\"\r\n } else {\r\n item.SOCreditControlApprovedState = \"待审批\"\r\n return \"待审批\"\r\n }\r\n }\r\n },\r\n {\r\n key: \"SOPriceDiffApprover\",\r\n label: \"价格待审批人\",\r\n sortable: true,\r\n thStyle: {\r\n width: \"12rem\"\r\n }\r\n },\r\n {\r\n key: \"fcCheckSOPriceDffApproved\",\r\n label: \"价格审批\",\r\n sortable: true,\r\n type: \"state\",\r\n other_type_key: \"is_email_send\",\r\n context: [\"待审批\", \"已审批\", \"审批中\"]\r\n },\r\n {\r\n key: \"SOPriceDffApprovedState\",\r\n label: \"价格审批状态名称\",\r\n sortable: true,\r\n thStyle: {\r\n display: \"none\"\r\n },\r\n tdClass: \"no-shown-RetailVariantId\",\r\n formatter: (value, key, item) => {\r\n if (item.fcCheckSOPriceDffApproved) {\r\n item.SOPriceDffApprovedState = \"已审批\"\r\n return \"已审批\"\r\n } else if (item.is_email_send) {\r\n item.SOPriceDffApprovedState = \"审批中\"\r\n return \"审批中\"\r\n } else {\r\n item.SOPriceDffApprovedState = \"待审批\"\r\n return \"待审批\"\r\n }\r\n }\r\n }\r\n ],\r\n detail_fields: [\r\n {\r\n key: \"LineNum\",\r\n label: \"行号\",\r\n sortable: true,\r\n thStyle: {\r\n width: \"80px\"\r\n }\r\n },\r\n {\r\n key: \"ItemId\",\r\n label: \"物料编号\",\r\n sortable: true,\r\n },\r\n {\r\n key: \"NameAlias\",\r\n label: \"物料名称\",\r\n sortable: true,\r\n type: \"short\",\r\n thStyle: {\r\n width: \"12rem\"\r\n }\r\n },\r\n {\r\n key: \"VariantName\",\r\n label: \"变型名称\",\r\n sortable: true,\r\n type: \"short\",\r\n thStyle: {\r\n width: \"8rem\"\r\n }\r\n },\r\n {\r\n key: \"DeliveryAddress\",\r\n label: \"送货地址\",\r\n sortable: true,\r\n editable: true,\r\n thStyle: {\r\n width: \"8rem\"\r\n }\r\n },\r\n {\r\n key: \"SalesQty\",\r\n label: \"数量\",\r\n sortable: true,\r\n editable: true,\r\n type: \"just_number\"\r\n },\r\n {\r\n key: \"SalesPrice\",\r\n label: \"价格\",\r\n sortable: true,\r\n editable: true,\r\n type: \"just_number\",\r\n _precise: 6\r\n },\r\n {\r\n key: \"DW_inventBatchIdSales\",\r\n label: \"仓库\",\r\n sortable: true,\r\n editable: true\r\n },\r\n {\r\n key: \"DiscPrice\",\r\n label: \"协议价格\",\r\n sortable: true,\r\n type: \"number\",\r\n _precise: 6\r\n },\r\n {\r\n key: \"CurrencyCode\",\r\n label: \"币种\",\r\n sortable: true\r\n },\r\n {\r\n key: \"SalesPriceWOTax\",\r\n label: \"本币净单价\",\r\n sortable: true,\r\n type: \"number\",\r\n _precise: 6\r\n },\r\n {\r\n key: \"price_state\",\r\n label: \"价格状态\",\r\n sortable: true,\r\n type: \"icon\"\r\n },\r\n {\r\n key: \"ConfirmedDlv\",\r\n label: \"装运日期\",\r\n sortable: true,\r\n editable: true,\r\n type: \"date\"\r\n },\r\n {\r\n key: \"SEI_OrderDateCust\",\r\n label: \"客户订单日期\",\r\n sortable: true,\r\n // editable: true,\r\n type: \"date\"\r\n },\r\n {\r\n key: \"SEI_ShippingDateCust\",\r\n label: \"客户交期\",\r\n sortable: true,\r\n // editable: true,\r\n type: \"date\",\r\n thStyle: {\r\n width: \"100px\"\r\n }\r\n },\r\n {\r\n key: \"TEC_CommonRemark\",\r\n label: \"通用备注\",\r\n sortable: true,\r\n editable: true,\r\n type: \"textarea\"\r\n },\r\n {\r\n key: \"TEC_OtherInfo\",\r\n label: \"其他信息\",\r\n sortable: true,\r\n editable: true,\r\n type: \"textarea\"\r\n },\r\n {\r\n key: \"TEC_CustSalesID\",\r\n label: \"客户订单号\",\r\n sortable: true,\r\n editable: true,\r\n type: \"textarea\"\r\n },\r\n\r\n {\r\n key: \"RetailVariantId\",\r\n label: \"变型名称\",\r\n sortable: true,\r\n // editable: true,\r\n width: \"8rem\",\r\n thStyle: {\r\n display: \"none\"\r\n },\r\n tdClass: \"no-shown-RetailVariantId\"\r\n },\r\n {\r\n key: \"SEI_DimensionFG\",\r\n label: \"FG维度\",\r\n sortable: true\r\n },\r\n {\r\n key: \"valid_remain\",\r\n label: \"剩余派单数量\",\r\n sortable: true,\r\n type: \"number\",\r\n _precise: 6\r\n }\r\n ],\r\n inventTable_fields: [\r\n {\r\n key: \"id\",\r\n label: \"编号\",\r\n sortable: true,\r\n thStyle: {\r\n width: \"60px\"\r\n }\r\n },\r\n {\r\n key: \"ItemId\",\r\n label: \"物料编号\",\r\n sortable: true\r\n },\r\n\r\n {\r\n key: \"NameAlias\",\r\n label: \"物料名称\",\r\n sortable: true,\r\n // type: \"short\",\r\n thStyle: {\r\n width: \"12rem\"\r\n }\r\n },\r\n {\r\n key: \"VariantName\",\r\n label: \"变型名称\",\r\n sortable: true,\r\n type: \"short\",\r\n thStyle: {\r\n width: \"8rem\"\r\n }\r\n },\r\n {\r\n key: \"TEC_CustAccount\",\r\n label: \"客户帐户\",\r\n sortable: true\r\n },\r\n {\r\n key: \"DW_CustName\",\r\n label: \"客户名称\",\r\n sortable: true,\r\n type: \"short\",\r\n thStyle: {\r\n width: \"10rem\"\r\n }\r\n },\r\n\r\n {\r\n key: \"TEC_NetArea\",\r\n label: \"净面积\",\r\n sortable: true,\r\n type: \"number\"\r\n },\r\n {\r\n key: \"TEC_Weight\",\r\n label: \"单位重量\",\r\n sortable: true,\r\n type: \"number\"\r\n },\r\n {\r\n key: \"DW_InventUnitId\",\r\n label: \"单位\",\r\n sortable: true\r\n }\r\n // {\r\n // key: \"modifiedDateTime\",\r\n // label: \"修改时间\",\r\n // type: \"datetime\",\r\n // thStyle: { width: \"5rem\" }\r\n // }\r\n ]\r\n}\r\n\r\nconst dataForm = {\r\n id: \"\",\r\n SalesId: \"\", //\t销售订单编号\r\n SalesName: \"\", //\t客户名称\r\n CustAccount: \"\", //\t客户帐户\r\n InvoiceAccount: \"\", //\t发票帐户\r\n DeliveryDate: new Date(), //\t装运日期 date\r\n CurrencyCode: \"CNY\", //\t币种\r\n ExchRate: \"\",\r\n TaxGroup: \"\", //\t销售税组\r\n SalesPoolId: \"\", //\t池\r\n InclTax: \"\", //\t价格包括销售税\r\n TEC_Remark: \"\", //\t备注\r\n TEC_FinalCustAccount: \"\", //\t最终客户\r\n // createdBy: \"\", //\t创建人\r\n dataAreaId: \"\", //\t公司\r\n CreditMax: 0,\r\n Temp_CreditMax: 0,\r\n dispUsedCreditAmount: 0,\r\n CustomerNotDispatchAmt: 0,\r\n OrderAmount: 0,\r\n OrderAmountTax: 0, //含税本币金额\r\n OrderAmountWOTax: 0, //不含税本币金额\r\n DeliveryAddress: \"\" //送货地址\r\n}\r\nconst creditdataForm = {\r\n id: \"\",\r\n AccountNum: \"\",\r\n dispUsedCreditAmount: 0,\r\n PlantUsedCreditAmount: 0,\r\n dispopenInvoiceBalanceMSTDue0: 0,\r\n dispopenInvoiceBalanceMSTDue_N: 0,\r\n dispopenInvoiceBalanceMSTDueAbove_N: 0,\r\n dispopenInvoiceBalanceMSTDue30: 0,\r\n dispopenInvoiceBalanceMSTDue31_60: 0,\r\n dispopenInvoiceBalanceMSTDue60Above: 0,\r\n dataAreaId: \"\",\r\n orderAmount: 0, //订单总金额\r\n creditMax: 0, //总信用额度\r\n approved_comment: \"\", //审批意见\r\n balance: 0 //余额\r\n}\r\n\r\nconst dataItemForm = {\r\n id: \"\",\r\n SalesTable_id: \"\",\r\n SalesId: \"\", //销售订单\r\n LineNum: \"\", //行号\r\n ItemId: \"\", //物料编号\r\n NameAlias: \"\", //物料名称\r\n SalesStatus: \"\", //行状态\r\n Name: \"\", //文本\r\n TaxGroup: \"\", //销售税组\r\n QtyOrdered: \"\", //数量\r\n RemainSalesPhysical: \"\", //剩余交货量\r\n RemainSalesFinancial: \"\", //未开票数量\r\n SalesPrice: \"\", //价格\r\n DiscPrice: \"\", //协议价格\r\n CurrencyCode: \"\", //币种\r\n ConfirmedDlv: \"\", //装运日期\r\n SalesUnit: \"\", //单位\r\n SalesQty: \"\", //数量\r\n TaxItemGroup: \"\", //销售税(物料)组\r\n UnderDeliveryPct: \"\", //欠交\r\n OverDeliveryPct: \"\", //超交\r\n RemainInventFinancial: \"\", //未开票数量\r\n TEC_CommonRemark: \"\", //通用备注\r\n TEC_CustSalesID: \"\", //客户订单号\r\n TEC_LineAmountBak: \"\", //净额\r\n TEC_OtherInfo: \"\",\r\n SEI_OrderDateCust: \"\", //客户订单日期\r\n SEI_PriceUnitCust: \"\", //客户价格\r\n SEI_ShippingDateCust: \"\", //客户交期\r\n dataAreaId: \"\", //公司\r\n SEI_ProddataArea: \"\", //生产商\r\n valid_remain: \"\",\r\n RetailVariantId: \"\",\r\n VariantName: \"\",\r\n price_approved_state: 0,\r\n SalesPriceTax: 0,\r\n SalesPriceWOTax: 0,\r\n DW_inventBatchIdSales: \"\", //库位 add 2021/7/5\r\n DeliveryAddress: \"\" //送货地址\r\n}\r\n\r\n///前端验证\r\nconst rules = {\r\n CustAccount: [\r\n {\r\n required: true,\r\n message: \"请选择客户账户\",\r\n trigger: \"change\"\r\n }\r\n ],\r\n TEC_FinalCustAccount: [\r\n {\r\n required: true,\r\n message: \"请选择最终客户\",\r\n trigger: \"change\"\r\n }\r\n ],\r\n InvoiceAccount: [\r\n {\r\n required: true,\r\n message: \"请选择开票账户\",\r\n trigger: \"change\"\r\n }\r\n ],\r\n SalesPoolId: [\r\n {\r\n required: true,\r\n message: \"请选择订单池\",\r\n trigger: \"change\"\r\n }\r\n ],\r\n dataAreaId: [\r\n {\r\n required: true,\r\n message: \"请选择公司\",\r\n trigger: \"change\"\r\n }\r\n ],\r\n TaxGroup: [\r\n {\r\n required: true,\r\n message: \"请选择销售税组\",\r\n trigger: \"change\"\r\n }\r\n ],\r\n ExchRate: [\r\n {\r\n required: true,\r\n message: \"请输入汇率\",\r\n trigger: \"change\"\r\n }\r\n ],\r\n DeliveryDate: [\r\n {\r\n type: \"date\",\r\n required: true,\r\n message: \"装运日期\",\r\n trigger: \"change\"\r\n }\r\n ]\r\n // TEC_Remark: [{ required: true, message: \"请填写活动形式\", trigger: \"blur\" }]\r\n}\r\n\r\nconst descriptor = {\r\n name: {\r\n type: \"string\",\r\n required: true,\r\n validator: (rule, value) => value === \"muji\"\r\n },\r\n age: {\r\n type: \"number\",\r\n asyncValidator: (rule, value) => {\r\n return new Promise((resolve, reject) => {\r\n api\r\n .request({\r\n url: biz_data_helper.get_endpoint(\"test_fetch\").url,\r\n parameters: {\r\n c: \"a666\"\r\n }\r\n })\r\n .then(res => {\r\n\r\n\r\n if (value == res.data[0].echo) {\r\n resolve(res)\r\n } else {\r\n reject(\"测试没通过\")\r\n }\r\n })\r\n .catch(err => {\r\n reject(err)\r\n })\r\n })\r\n }\r\n }\r\n}\r\n\r\nconst biz_data = new biz_data_helper.base_entity_helper(\r\n content_type,\r\n create,\r\n descriptor\r\n)\r\nconst methods = {\r\n async copySalesOrder(_params) {\r\n const code_biz_data = new biz_data_helper.base_entity_helper(\r\n \"CopySalesOrder\",\r\n {},\r\n {}\r\n )\r\n let _fields = []\r\n\r\n let result = await code_biz_data\r\n .execAction({\r\n params: _params,\r\n fields: _fields\r\n })\r\n .run()\r\n //\r\n if (\r\n result &&\r\n result[0].result &&\r\n result[0].result.data &&\r\n result[0].result.data.ActionResult &&\r\n result[0].result.data.ActionResult.Result &&\r\n result[0].result.data.ActionResult.Result.Data.length > 0\r\n ) {\r\n return result[0].result.data.ActionResult.Result.Data\r\n } else {\r\n return null\r\n }\r\n },\r\n //#region 订单主档相关\r\n ///get all role_username\r\n async getAllRoleUserName() {\r\n const ru_biz_data = new biz_data_helper.base_entity_helper(\r\n \"get_all_rolecode_username\",\r\n {},\r\n {}\r\n )\r\n let _fields = [\"username\", \"role_code\"]\r\n\r\n let result = await ru_biz_data\r\n .execAction({\r\n params: {},\r\n fields: _fields\r\n })\r\n .run()\r\n\r\n if (\r\n result &&\r\n result[0].result &&\r\n result[0].result.data &&\r\n result[0].result.data.ActionResult &&\r\n result[0].result.data.ActionResult.Result &&\r\n result[0].result.data.ActionResult.Result.Data.length > 0\r\n ) {\r\n return result[0].result.data.ActionResult.Result.Data\r\n } else {\r\n return null\r\n }\r\n },\r\n ///get salesorder\r\n async getData(_params) {\r\n let _fields = _.map(fields.default, \"key\")\r\n\r\n _fields.push(\"OrderAmountTax\")\r\n _fields.push(\"fcGetSOApprover(t.id)\")\r\n _fields.push(\"fcGetSOCreditControlApprover(t.id)\")\r\n _fields.push(\"fcGetSOPriceDiffApprover(t.id)\")\r\n _fields.push(\"fcCheckSOApproved(t.id)\")\r\n _fields.push(\"fcCheckSOCreditControlApproved(t.id)\")\r\n _fields.push(\"fcCheckSOPriceDffApproved(t.id)\")\r\n\r\n _fields.push(\"CreditMax\")\r\n _fields.push(\"Temp_CreditMax\")\r\n _fields.push(\"dispUsedCreditAmount\")\r\n _fields.push(\"CustomerNotDispatchAmt\")\r\n _fields.push(\"is_return_so\")\r\n _fields.push(\"is_email_send\")\r\n\r\n let result = await biz_data\r\n .selectAction({\r\n params: _params,\r\n fields: _fields\r\n })\r\n .run()\r\n\r\n if (\r\n result &&\r\n result[0].result &&\r\n result[0].result.data &&\r\n result[0].result.data.ActionResult &&\r\n result[0].result.data.ActionResult.Result &&\r\n result[0].result.data.ActionResult.Result.Data.length > 0\r\n ) {\r\n return result[0].result.data.ActionResult.Result.Data\r\n } else {\r\n return null\r\n }\r\n },\r\n async getDefualtCompanyTaxGroup(dataAreaId) {\r\n const code_biz_data = new biz_data_helper.base_entity_helper(\r\n \"get_defualt_Company_TaxGroup\",\r\n {},\r\n {}\r\n )\r\n let result = await code_biz_data\r\n .execAction({\r\n params: {\r\n dataAreaId: dataAreaId\r\n },\r\n fields: [\"TaxGroup\"]\r\n })\r\n .run()\r\n if (\r\n result &&\r\n result[0].result &&\r\n result[0].result.data &&\r\n result[0].result.data.ActionResult &&\r\n result[0].result.data.ActionResult.Result &&\r\n result[0].result.data.ActionResult.Result.Data.length > 0\r\n ) {\r\n return result[0].result.data.ActionResult.Result.Data\r\n } else {\r\n return null\r\n }\r\n },\r\n //保存转单信息\r\n async saveToSaleOrder(saleMaster, saleLines, documentCreateByUsername) {\r\n let _actions = []\r\n let so_approve_biz_data = new biz_data_helper.base_entity_helper(\r\n \"sp_updateApproveStatus\",\r\n {},\r\n {}\r\n )\r\n\r\n let _new = _.cloneDeep(saleMaster)\r\n\r\n delete saleMaster.documentCreateByUsername\r\n\r\n ///保存\r\n\r\n delete _new.id\r\n delete _new.documentCreateByUsername\r\n const code_biz_data = new biz_data_helper.base_entity_helper(\r\n \"get_seq\",\r\n {},\r\n {}\r\n )\r\n\r\n //获取code\r\n let _p = {\r\n type: \"CSO\",\r\n date: _date.format(new Date(), \"yyyy-MM-dd\")\r\n }\r\n _actions.push(\r\n code_biz_data\r\n .execAction({\r\n params: _p,\r\n fields: [\"seq\"]\r\n })\r\n .action({\r\n output_last_item_map: {\r\n seq: \"SalesId\"\r\n }\r\n })\r\n )\r\n _actions.push(\r\n biz_data\r\n .insertAction({\r\n params: _new,\r\n fields: _.map(fields.default, \"key\")\r\n })\r\n .action({\r\n mixin_last_item_map: {\r\n SalesId: \"SalesId\"\r\n },\r\n output_last_item_map: {\r\n id: \"itemId\"\r\n }\r\n })\r\n )\r\n\r\n ///价格不一致特批\r\n // let price_form = {\r\n // itemId: \"\",\r\n // documentType: \"SalesOrder\",\r\n // approveType: \"price_diff\", //审批类型:credit_control:信用额度,price_diff:价格\r\n // documentCreateByUsername: documentCreateByUsername,\r\n // salesOrderAmountCNY: 0,\r\n // isPriceDiff: true\r\n // };\r\n // _actions.push(\r\n // so_approve_biz_data\r\n // .execAction({\r\n // params: price_form,\r\n // fields: [\"id\"]\r\n // })\r\n // .action({\r\n // mixin_last_item_map: {\r\n // itemId: \"itemId\"\r\n // }\r\n // })\r\n // );\r\n\r\n // ///信用额度特批\r\n // let credit_form = {\r\n // itemId: \"\",\r\n // documentType: \"SalesOrder\",\r\n // approveType: \"credit_control\", //审批类型:credit_control:信用额度,price_diff:价格\r\n // documentCreateByUsername: documentCreateByUsername,\r\n // salesOrderAmountCNY: 0,\r\n // IsCreditControlOk: false\r\n // };\r\n // _actions.push(\r\n // so_approve_biz_data\r\n // .execAction({\r\n // params: credit_form,\r\n // fields: [\"id\"]\r\n // })\r\n // .action({\r\n // mixin_last_item_map: {\r\n // itemId: \"itemId\"\r\n // }\r\n // })\r\n // );\r\n\r\n // ///普通审批\r\n // let order_form = {\r\n // itemId: \"\",\r\n // documentType: \"SalesOrder\",\r\n // approveType: \"\",\r\n // documentCreateByUsername: documentCreateByUsername,\r\n // salesOrderAmountCNY: 0\r\n // };\r\n // _actions.push(\r\n // so_approve_biz_data\r\n // .execAction({\r\n // params: order_form,\r\n // fields: [\"id\"]\r\n // })\r\n // .action({\r\n // mixin_last_item_map: {\r\n // itemId: \"itemId\"\r\n // }\r\n // })\r\n // );\r\n //插入saleLine\r\n _.each(saleLines, t => {\r\n let _data = {}\r\n _data.id = \"\"\r\n _data.TaxGroup = saleMaster.TaxGroup\r\n _data.CurrencyCode = saleMaster.CurrencyCode\r\n _data.dataAreaId = saleMaster.dataAreaId\r\n _data.SalesPriceWOTax = 0\r\n _data.SalesPriceTax = 0\r\n })\r\n\r\n let result = await api.query_batch({\r\n actions: _actions\r\n })\r\n\r\n if (\r\n result &&\r\n result.data &&\r\n result.data.BatchResult &&\r\n result.data.BatchResult.Actions &&\r\n result.data.BatchResult.Actions.length > 0\r\n ) {\r\n let _list = null\r\n\r\n let _rt = _.filter(result.data.BatchResult.Actions, {\r\n Code: \"data/i/SalesTable\"\r\n })\r\n if (\r\n _rt &&\r\n _rt[0].Result &&\r\n !_.isNull(_rt[0].Result) &&\r\n _rt[0].Result.Data &&\r\n !_.isNull(_rt[0].Result.Data) &&\r\n _rt[0].Result.Data.length > 0\r\n ) {\r\n _list = _rt[0].Result.Data[0]\r\n }\r\n return _list\r\n } else {\r\n return null\r\n }\r\n },\r\n ///save salesorder\r\n async saveSalesOrder(_params, documentCreateByUsername) {\r\n\r\n let _actions = []\r\n let so_approve_biz_data = new biz_data_helper.base_entity_helper(\r\n \"sp_updateApproveStatus\",\r\n {},\r\n {}\r\n )\r\n\r\n let _new = _.cloneDeep(_params)\r\n\r\n delete _params.documentCreateByUsername\r\n\r\n ///保存\r\n if (!_.isInteger(_params.id)) {\r\n delete _new.id\r\n delete _new.documentCreateByUsername\r\n const code_biz_data = new biz_data_helper.base_entity_helper(\r\n \"get_seq\",\r\n {},\r\n {}\r\n )\r\n\r\n //获取code\r\n let _p = {\r\n type: \"CSO\",\r\n date: _date.format(new Date(), \"yyyy-MM-dd\")\r\n }\r\n _actions.push(\r\n code_biz_data\r\n .execAction({\r\n params: _p,\r\n fields: [\"seq\"]\r\n })\r\n .action({\r\n output_last_item_map: {\r\n seq: \"SalesId\"\r\n }\r\n })\r\n )\r\n _actions.push(\r\n biz_data\r\n .insertAction({\r\n params: _new,\r\n fields: _.map(fields.default, \"key\")\r\n })\r\n .action({\r\n mixin_last_item_map: {\r\n SalesId: \"SalesId\"\r\n },\r\n output_last_item_map: {\r\n id: \"itemId\"\r\n }\r\n })\r\n )\r\n\r\n ///价格不一致特批\r\n let price_form = {\r\n itemId: \"\",\r\n documentType: \"SalesOrder\",\r\n approveType: \"price_diff\", //审批类型:credit_control:信用额度,price_diff:价格\r\n documentCreateByUsername: documentCreateByUsername,\r\n salesOrderAmountCNY: 0,\r\n isPriceDiff: true\r\n }\r\n _actions.push(\r\n so_approve_biz_data\r\n .execAction({\r\n params: price_form,\r\n fields: [\"id\"]\r\n })\r\n .action({\r\n mixin_last_item_map: {\r\n itemId: \"itemId\"\r\n }\r\n })\r\n )\r\n\r\n ///信用额度特批\r\n let credit_form = {\r\n itemId: \"\",\r\n documentType: \"SalesOrder\",\r\n approveType: \"credit_control\", //审批类型:credit_control:信用额度,price_diff:价格\r\n documentCreateByUsername: documentCreateByUsername,\r\n salesOrderAmountCNY: 0,\r\n IsCreditControlOk: false\r\n }\r\n _actions.push(\r\n so_approve_biz_data\r\n .execAction({\r\n params: credit_form,\r\n fields: [\"id\"]\r\n })\r\n .action({\r\n mixin_last_item_map: {\r\n itemId: \"itemId\"\r\n }\r\n })\r\n )\r\n\r\n ///普通审批\r\n let order_form = {\r\n itemId: \"\",\r\n documentType: \"SalesOrder\",\r\n approveType: \"\",\r\n documentCreateByUsername: documentCreateByUsername,\r\n salesOrderAmountCNY: 0\r\n }\r\n _actions.push(\r\n so_approve_biz_data\r\n .execAction({\r\n params: order_form,\r\n fields: [\"id\"]\r\n })\r\n .action({\r\n mixin_last_item_map: {\r\n itemId: \"itemId\"\r\n }\r\n })\r\n )\r\n } else {\r\n let _fields = _.map(fields.default, \"key\")\r\n _fields.push(\"CreditMax\")\r\n _fields.push(\"Temp_CreditMax\")\r\n _fields.push(\"dispUsedCreditAmount\")\r\n _fields.push(\"CustomerNotDispatchAmt\")\r\n let _p = _.cloneDeep(_params)\r\n _p[\"is_email_send\"] = 0\r\n\r\n _actions.push(\r\n biz_data\r\n .updateAction({\r\n params: _p,\r\n fields: _fields\r\n })\r\n .action({})\r\n )\r\n }\r\n\r\n let result = await api.query_batch({\r\n actions: _actions\r\n })\r\n\r\n if (\r\n result &&\r\n result.data &&\r\n result.data.BatchResult &&\r\n result.data.BatchResult.Actions &&\r\n result.data.BatchResult.Actions.length > 0\r\n ) {\r\n let _list = null\r\n if (!_.isInteger(_params.id)) {\r\n let _rt = _.filter(result.data.BatchResult.Actions, {\r\n Code: \"data/i/SalesTable\"\r\n })\r\n if (\r\n _rt &&\r\n _rt[0].Result &&\r\n !_.isNull(_rt[0].Result) &&\r\n _rt[0].Result.Data &&\r\n !_.isNull(_rt[0].Result.Data) &&\r\n _rt[0].Result.Data.length > 0\r\n ) {\r\n _list = _rt[0].Result.Data[0]\r\n }\r\n return _list\r\n } else {\r\n let _rt = _.filter(result.data.BatchResult.Actions, {\r\n Code: \"data/u/SalesTable\"\r\n })\r\n if (\r\n _rt &&\r\n _rt[0].Result &&\r\n !_.isNull(_rt[0].Result) &&\r\n _rt[0].Result.Data &&\r\n !_.isNull(_rt[0].Result.Data) &&\r\n _rt[0].Result.Data.length > 0\r\n ) {\r\n _list = _rt[0].Result.Data[0]\r\n }\r\n return _list\r\n }\r\n } else {\r\n return null\r\n }\r\n },\r\n ///del salesorder\r\n async deleteData(items) {\r\n let _actions = []\r\n\r\n let check_del_biz_data = new biz_data_helper.base_entity_helper(\r\n \"CheckIfExistsSalesLine\",\r\n {},\r\n {}\r\n )\r\n let del_biz_data = new biz_data_helper.base_entity_helper(\r\n \"delete_salesorder\",\r\n create,\r\n descriptor\r\n )\r\n let cancel_email_biz_data = new biz_data_helper.base_entity_helper(\r\n \"cancel_email_send\",\r\n {},\r\n {}\r\n )\r\n\r\n _.each(items, t => {\r\n _actions.push(\r\n check_del_biz_data\r\n .execAction({\r\n params: {\r\n itemId: t.id\r\n },\r\n fields: [\"has_SalesLine\"]\r\n })\r\n .action({\r\n output_last_item_map: {\r\n has_SalesLine: \"has_SalesLine\"\r\n }\r\n })\r\n )\r\n _actions.push(\r\n del_biz_data\r\n .execAction({\r\n params: {\r\n id: t.id\r\n }\r\n })\r\n .action({\r\n rollback_when: {\r\n has_SalesLine: {\r\n \"=\": 1\r\n }\r\n }\r\n })\r\n )\r\n ///取消邮件\r\n _actions.push(\r\n cancel_email_biz_data\r\n .execAction({\r\n params: {\r\n type: \"so\",\r\n idx: _.toString(t.SalesId)\r\n }\r\n })\r\n .action({})\r\n )\r\n })\r\n let result = await api.query_batch({\r\n actions: _actions\r\n })\r\n if (\r\n result &&\r\n result.data &&\r\n result.data.BatchResult &&\r\n result.data.BatchResult.Actions &&\r\n result.data.BatchResult.Actions.length > 0\r\n ) {\r\n return result.data.BatchResult.Actions\r\n } else {\r\n return null\r\n }\r\n },\r\n\r\n ///approved salesorder\r\n async approveData(username, _update_status_list) {\r\n const update_status_biz_data = new biz_data_helper.base_entity_helper(\r\n \"update_approve_status\",\r\n {},\r\n {}\r\n )\r\n let _actions = []\r\n _.each(_update_status_list, status_m => {\r\n _actions.push(\r\n update_status_biz_data\r\n .execAction({\r\n params: {\r\n IsApproved: status_m.isApproved ? 0 : 1,\r\n ApproveBy: username,\r\n status_id: status_m.id\r\n },\r\n fields: [\"is_update_ok\"]\r\n })\r\n .action({\r\n output_last_item_map: {\r\n is_update_ok: \"is_update_ok\"\r\n }\r\n })\r\n )\r\n ///反审时将邮件状态修改为未发送\r\n if (status_m.isApproved) {\r\n _actions.push(\r\n biz_data\r\n .updateAction({\r\n params: {\r\n id: status_m.ItemId,\r\n is_email_send: 0\r\n }\r\n })\r\n .action({\r\n rollback_when: {\r\n is_update_ok: {\r\n \"=\": 1\r\n }\r\n }\r\n })\r\n )\r\n }\r\n })\r\n\r\n let result = await api.query_batch({\r\n actions: _actions\r\n })\r\n if (\r\n result &&\r\n result.data &&\r\n result.data.BatchResult &&\r\n result.data.BatchResult.Actions &&\r\n result.data.BatchResult.Actions.length > 0\r\n ) {\r\n let _is_ok = true\r\n let _result_filter = _.filter(result.data.BatchResult.Actions, {\r\n Code: \"data/e/update_approve_status\"\r\n })\r\n if (_result_filter && _result_filter.length > 0) {\r\n _.each(_result_filter, t => {\r\n if (t.Result.Data[0][0].is_update_ok == 1) {\r\n _is_ok = false\r\n }\r\n })\r\n }\r\n return _is_ok\r\n } else {\r\n return false\r\n }\r\n },\r\n async getApproveStatus(_params) {\r\n const get_status_biz_data = new biz_data_helper.base_entity_helper(\r\n \"get_approve_status\",\r\n {},\r\n {}\r\n )\r\n let result = await get_status_biz_data\r\n .execAction({\r\n params: _params,\r\n fields: [\"id\", \"Approver\", \"isRole \"]\r\n })\r\n .run()\r\n if (\r\n result &&\r\n result[0].result &&\r\n result[0].result.data &&\r\n result[0].result.data.ActionResult &&\r\n result[0].result.data.ActionResult.Result &&\r\n result[0].result.data.ActionResult.Result.Data.length > 0\r\n ) {\r\n return result[0].result.data.ActionResult.Result.Data\r\n } else {\r\n return null\r\n }\r\n },\r\n //#endregion\r\n\r\n //#region 订单明细相关\r\n ///get disc 获取价格协议\r\n async getDiscPrice(_params) {\r\n const code_biz_data = new biz_data_helper.base_entity_helper(\r\n \"get_price\",\r\n {},\r\n {}\r\n )\r\n let result = await code_biz_data\r\n .execAction({\r\n params: _params\r\n })\r\n .run()\r\n\r\n if (\r\n result &&\r\n result[0].result &&\r\n result[0].result.data &&\r\n result[0].result.data.ActionResult &&\r\n result[0].result.data.ActionResult.Result &&\r\n result[0].result.data.ActionResult.Result.Data.length > 0\r\n ) {\r\n return result[0].result.data.ActionResult.Result.Data\r\n } else {\r\n return null\r\n }\r\n },\r\n //获取勾选订单对应的所有明细\r\n async getItemDataBySelected(_params) {\r\n let item_biz_data = new biz_data_helper.base_entity_helper(\r\n \"get_SalesLineInfo\",\r\n {},\r\n {}\r\n )\r\n let _fields = _.map(fields.detail_fields, \"key\")\r\n _fields.push(\"id\")\r\n _fields.push(\"SalesTable_id\")\r\n _fields.push(\"SalesId\")\r\n\r\n _.remove(_fields, n => {\r\n return n == \"price_state\"\r\n })\r\n let _actions = []\r\n _.each(_params, t => {\r\n _actions.push(\r\n item_biz_data\r\n .execAction({\r\n params: {\r\n SalesTable_id: t.SalesTable_id\r\n },\r\n fields: _fields\r\n })\r\n .action({})\r\n )\r\n })\r\n let result = await api.query_batch({\r\n actions: _actions\r\n })\r\n if (\r\n result &&\r\n result.data &&\r\n result.data.BatchResult &&\r\n result.data.BatchResult.Actions &&\r\n result.data.BatchResult.Actions.length > 0\r\n ) {\r\n return result.data.BatchResult.Actions\r\n } else {\r\n return null\r\n }\r\n },\r\n ///查询已经派单数量\r\n async getDispatchedQty(SOId) {\r\n let item_biz_data = new biz_data_helper.base_entity_helper(\r\n \"getTotalDispatchQty\",\r\n create,\r\n descriptor\r\n )\r\n let result = await item_biz_data\r\n .execAction({\r\n params: {\r\n SalesOrderId: SOId\r\n },\r\n fields: [\"totalDispatchedQty\"]\r\n })\r\n .run()\r\n if (\r\n result &&\r\n result[0].result &&\r\n result[0].result.data &&\r\n result[0].result.data.ActionResult &&\r\n result[0].result.data.ActionResult.Result &&\r\n result[0].result.data.ActionResult.Result.Data.length > 0\r\n ) {\r\n return result[0].result.data.ActionResult.Result.Data\r\n } else {\r\n return null\r\n }\r\n },\r\n ///get so items\r\n async getItemData(_params) {\r\n let item_biz_data = new biz_data_helper.base_entity_helper(\r\n \"get_SalesLineInfo\",\r\n {},\r\n {}\r\n )\r\n let _fields = _.map(fields.detail_fields, \"key\")\r\n _fields.push(\"id\")\r\n _fields.push(\"SalesTable_id\")\r\n _fields.push(\"SalesId\")\r\n\r\n _.remove(_fields, n => {\r\n return n == \"price_state\"\r\n })\r\n let result = await item_biz_data\r\n .execAction({\r\n params: _params,\r\n fields: _fields\r\n })\r\n .run()\r\n if (\r\n result &&\r\n result[0].result &&\r\n result[0].result.data &&\r\n result[0].result.data.ActionResult &&\r\n result[0].result.data.ActionResult.Result &&\r\n result[0].result.data.ActionResult.Result.Data.length > 0\r\n ) {\r\n return result[0].result.data.ActionResult.Result.Data\r\n } else {\r\n return null\r\n }\r\n },\r\n async getItemDataNoSql(_params) {\r\n let item_biz_data = new biz_data_helper.base_entity_helper(\r\n \"SalesLine\",\r\n {},\r\n {}\r\n )\r\n let _fields = _.map(fields.detail_fields, \"key\")\r\n _fields.push(\"id\")\r\n _fields.push(\"SalesTable_id\")\r\n _fields.push(\"SalesId\")\r\n\r\n _.remove(_fields, n => {\r\n return n == \"price_state\"\r\n })\r\n let result = await item_biz_data\r\n .selectAction({\r\n params: _params,\r\n fields: _fields\r\n })\r\n .run()\r\n if (\r\n result &&\r\n result[0].result &&\r\n result[0].result.data &&\r\n result[0].result.data.ActionResult &&\r\n result[0].result.data.ActionResult.Result &&\r\n result[0].result.data.ActionResult.Result.Data.length > 0\r\n ) {\r\n return result[0].result.data.ActionResult.Result.Data\r\n } else {\r\n return null\r\n }\r\n },\r\n\r\n ///save so items\r\n async saveSalesOrderItems(items, soForm, update_order_amount) {\r\n let add_list = [],\r\n update_list = []\r\n\r\n _.each(items, t => {\r\n if (_.isInteger(t.id)) {\r\n update_list.push(t)\r\n } else {\r\n add_list.push(t)\r\n }\r\n })\r\n let check_biz_data = new biz_data_helper.base_entity_helper(\r\n \"CheckIfCanModifySalesLine\",\r\n {},\r\n {}\r\n )\r\n\r\n let item_biz_data = new biz_data_helper.base_entity_helper(\r\n \"SalesLine\",\r\n create,\r\n descriptor\r\n )\r\n\r\n let so_biz_data = new biz_data_helper.base_entity_helper(\r\n \"SalesTable\",\r\n {},\r\n {}\r\n )\r\n\r\n let so_approve_biz_data = new biz_data_helper.base_entity_helper(\r\n \"sp_updateApproveStatus\",\r\n {},\r\n {}\r\n )\r\n\r\n let _is_price_diff = false\r\n let batch_actions = []\r\n if (add_list.length > 0) {\r\n _.each(add_list, t => {\r\n let _new = _.cloneDeep(dataItemForm)\r\n for (var i in _new) {\r\n _new[i] = t[i]\r\n }\r\n delete _new.id\r\n\r\n batch_actions.push(\r\n item_biz_data\r\n .insertAction({\r\n params: _new,\r\n fields: [\"id\"]\r\n })\r\n .action({\r\n output_last_item_map: {\r\n id: \"SalesLine_id\"\r\n }\r\n })\r\n )\r\n ///价格不一致特批\r\n if (t.SalesPrice != t.DiscPrice || !_.isNumber(t.DiscPrice)) {\r\n _is_price_diff = true\r\n }\r\n })\r\n }\r\n\r\n if (update_list.length > 0) {\r\n _.each(update_list, t => {\r\n let _new = _.cloneDeep(dataItemForm)\r\n for (var i in _new) {\r\n _new[i] = t[i]\r\n }\r\n batch_actions.push(\r\n check_biz_data\r\n .execAction({\r\n params: {\r\n SalesLineId: t.id,\r\n action: \"update\",\r\n inputQty: _new.SalesQty\r\n },\r\n fields: [\"allowed\"]\r\n })\r\n .action({\r\n output_last_item_map: {\r\n allowed: \"allowed\"\r\n }\r\n })\r\n )\r\n\r\n batch_actions.push(\r\n item_biz_data\r\n .updateAction({\r\n params: _new,\r\n fields: [\"id\"]\r\n })\r\n .action({\r\n rollback_when: {\r\n allowed: {\r\n \"=\": false\r\n }\r\n }\r\n })\r\n )\r\n\r\n ///价格不一致特批\r\n if (t.SalesPrice != t.DiscPrice || !_.isNumber(t.DiscPrice)) {\r\n _is_price_diff = true\r\n }\r\n })\r\n }\r\n\r\n ///价格不一致特批\r\n let price_form = {\r\n itemId: soForm.id,\r\n documentType: \"SalesOrder\",\r\n approveType: \"price_diff\", //审批类型:credit_control:信用额度,price_diff:价格\r\n documentCreateByUsername: soForm.documentCreateByUsername,\r\n salesOrderAmountCNY: soForm.salesorder_amount_cny,\r\n isPriceDiff: _is_price_diff\r\n }\r\n batch_actions.push(\r\n so_approve_biz_data\r\n .execAction({\r\n params: price_form,\r\n fields: [\"id\"]\r\n })\r\n .action({})\r\n )\r\n\r\n ///信用额度特批\r\n let credit_form = {\r\n itemId: soForm.id,\r\n documentType: \"SalesOrder\",\r\n approveType: \"credit_control\", //审批类型:credit_control:信用额度,price_diff:价格\r\n documentCreateByUsername: soForm.documentCreateByUsername,\r\n salesOrderAmountCNY: soForm.salesorder_amount_cny,\r\n IsCreditControlOk: soForm.IsCreditControlOk\r\n }\r\n batch_actions.push(\r\n so_approve_biz_data\r\n .execAction({\r\n params: credit_form,\r\n fields: [\"id\"]\r\n })\r\n .action({})\r\n )\r\n\r\n ///普通审批\r\n let order_form = {\r\n itemId: soForm.id,\r\n documentType: \"SalesOrder\",\r\n approveType: \"\",\r\n documentCreateByUsername: soForm.documentCreateByUsername,\r\n salesOrderAmountCNY: update_order_amount.OrderAmountCNY\r\n }\r\n batch_actions.push(\r\n so_approve_biz_data\r\n .execAction({\r\n params: order_form,\r\n fields: [\"id\"]\r\n })\r\n .action({})\r\n )\r\n\r\n ///修改订单信用控制状态\r\n batch_actions.push(\r\n so_biz_data\r\n .updateAction({\r\n params: {\r\n id: update_order_amount.id,\r\n OrderAmount: update_order_amount.OrderAmount,\r\n OrderAmountTax: update_order_amount.OrderAmountTax,\r\n OrderAmountWOTax: update_order_amount.OrderAmountWOTax,\r\n CreditMax: update_order_amount.CreditMax,\r\n Temp_CreditMax: update_order_amount.Temp_CreditMax,\r\n dispUsedCreditAmount: update_order_amount.dispUsedCreditAmount,\r\n CustomerNotDispatchAmt: update_order_amount.PlantUsedCreditAmount,\r\n is_email_send: 0\r\n },\r\n fields: [\"id\"]\r\n })\r\n .action({})\r\n )\r\n ///查询当前保存的订单数据\r\n let _fields = _.map(fields.default, \"key\")\r\n\r\n _fields.push(\"OrderAmountTax\")\r\n _fields.push(\"fcGetSOApprover(t.id)\")\r\n _fields.push(\"fcGetSOCreditControlApprover(t.id)\")\r\n _fields.push(\"fcGetSOPriceDiffApprover(t.id)\")\r\n _fields.push(\"fcCheckSOApproved(t.id)\")\r\n _fields.push(\"fcCheckSOCreditControlApproved(t.id)\")\r\n _fields.push(\"fcCheckSOPriceDffApproved(t.id)\")\r\n\r\n _fields.push(\"CreditMax\")\r\n _fields.push(\"Temp_CreditMax\")\r\n _fields.push(\"dispUsedCreditAmount\")\r\n batch_actions.push(\r\n so_biz_data\r\n .selectAction({\r\n params: {\r\n id: update_order_amount.id\r\n },\r\n fields: _fields\r\n })\r\n .action({})\r\n )\r\n\r\n let result = await api.query_batch({\r\n actions: batch_actions\r\n })\r\n\r\n if (\r\n result &&\r\n result.data &&\r\n result.data.BatchResult &&\r\n result.data.BatchResult.Actions &&\r\n result.data.BatchResult.Actions.length > 0 &&\r\n result.data.BatchResult.Actions[0].Result\r\n ) {\r\n return result.data.BatchResult.Actions\r\n } else {\r\n return null\r\n }\r\n },\r\n ///del so items\r\n async deleteItemData(items) {\r\n let _actions = []\r\n\r\n let check_biz_data = new biz_data_helper.base_entity_helper(\r\n \"CheckIfCanModifySalesLine\",\r\n {},\r\n {}\r\n )\r\n\r\n let item_biz_data = new biz_data_helper.base_entity_helper(\r\n \"SalesLine\",\r\n create,\r\n descriptor\r\n )\r\n let order_biz_data = new biz_data_helper.base_entity_helper(\r\n \"SalesTable\",\r\n {},\r\n {}\r\n )\r\n _.each(items, t => {\r\n _actions.push(\r\n check_biz_data\r\n .execAction({\r\n params: {\r\n SalesLineId: t.id,\r\n action: \"delete\",\r\n inputQty: 0\r\n },\r\n fields: [\"allowed\"]\r\n })\r\n .action({\r\n output_last_item_map: {\r\n allowed: \"allowed\"\r\n }\r\n })\r\n )\r\n _actions.push(\r\n item_biz_data\r\n .deleteAction({\r\n params: {\r\n id: t.id\r\n }\r\n })\r\n .action({\r\n rollback_when: {\r\n allowed: {\r\n \"=\": false\r\n }\r\n }\r\n })\r\n )\r\n if (t.SalesQty < 0) {\r\n _actions.push(\r\n order_biz_data\r\n .deleteAction({\r\n params: {\r\n id: t.SalesTable_id\r\n }\r\n })\r\n .action({\r\n rollback_when: {\r\n allowed: {\r\n \"=\": false\r\n }\r\n }\r\n })\r\n )\r\n }\r\n })\r\n let result = await api.query_batch({\r\n actions: _actions\r\n })\r\n if (\r\n result &&\r\n result.data &&\r\n result.data.BatchResult &&\r\n result.data.BatchResult.Actions &&\r\n result.data.BatchResult.Actions.length > 0\r\n ) {\r\n return result.data.BatchResult.Actions\r\n } else {\r\n return null\r\n }\r\n },\r\n //#endregion\r\n ///get当前不含税金额\r\n async getLocalAmountWOTaxData(_params) {\r\n let item_biz_data = new biz_data_helper.base_entity_helper(\r\n \"get_LocalAmountWOTax\",\r\n {},\r\n {}\r\n )\r\n // \"CNYAmount\": 11.2887,\r\n // \"CNYAmountWOTax\": 9.99,\r\n // \"currency\": \"usd\",\r\n // \"amount\": 1,\r\n // \"incTax\": false,\r\n // \"taxGroup\": \"VT13\",\r\n // \"dataAreaId\": \"070\"\r\n // let _fields = [\"CNYAmount\",\"CNYAmountWOTax\",\"currency\"];\r\n\r\n let result = await item_biz_data\r\n .execAction({\r\n params: _params\r\n })\r\n .run()\r\n if (\r\n result &&\r\n result[0].result &&\r\n result[0].result.data &&\r\n result[0].result.data.ActionResult &&\r\n result[0].result.data.ActionResult.Result &&\r\n result[0].result.data.ActionResult.Result.Data.length > 0\r\n ) {\r\n return result[0].result.data.ActionResult.Result.Data\r\n } else {\r\n return null\r\n }\r\n },\r\n async getPlantCustUsedCredit(_params) {\r\n const gcrc_biz_data = new biz_data_helper.base_entity_helper(\r\n \"get_plant_customer_used_credit\",\r\n {},\r\n {}\r\n )\r\n\r\n let result = await gcrc_biz_data\r\n .execAction({\r\n params: _params,\r\n fields: [\"plant_customer_used_credit\"]\r\n })\r\n .run()\r\n\r\n if (\r\n result &&\r\n result[0].result &&\r\n result[0].result.data &&\r\n result[0].result.data.ActionResult &&\r\n result[0].result.data.ActionResult.Result &&\r\n result[0].result.data.ActionResult.Result.Data.length > 0\r\n ) {\r\n return result[0].result.data.ActionResult.Result.Data\r\n } else {\r\n return null\r\n }\r\n },\r\n ///检查能否反审\r\n async checkUnApprove(items) {\r\n const code_biz_data = new biz_data_helper.base_entity_helper(\r\n \"check_is_salesorder_dispatched\",\r\n {},\r\n {}\r\n )\r\n let _actions = []\r\n let _params = []\r\n _.each(items, t => {\r\n _params.push({\r\n SalesOrderId: t.id\r\n })\r\n })\r\n _actions.push(\r\n code_biz_data\r\n .execAction({\r\n params: _params,\r\n fields: [\"if_can_unapprove\", \"SalesOrderId\"]\r\n })\r\n .action({})\r\n )\r\n let result = await api.query_batch({\r\n actions: _actions\r\n })\r\n if (\r\n result &&\r\n result.data &&\r\n result.data.BatchResult &&\r\n result.data.BatchResult.Actions &&\r\n result.data.BatchResult.Actions.length > 0\r\n ) {\r\n let _p = {\r\n state: true,\r\n data: [],\r\n message: \"\"\r\n }\r\n let rt_actions = result.data.BatchResult.Actions[0]\r\n if (\r\n rt_actions.Result &&\r\n rt_actions.Result.Data &&\r\n rt_actions.Result.Data.length > 0\r\n ) {\r\n _.each(rt_actions.Result.Data, t => {\r\n if (t[0].if_can_unapprove == 0) {\r\n _p.state = false\r\n _p.data.push(t[0].SalesOrderId)\r\n }\r\n })\r\n }\r\n if (!_p.state) {\r\n _p.message =\r\n \"订单编号:\" + _.join(_p.data, \",\") + \",已派单不能被删除!\"\r\n }\r\n return _p\r\n } else {\r\n return null\r\n }\r\n },\r\n ///获取送货地址列表\r\n async getDeliveryAddress(_params) {\r\n const gcda_biz_data = new biz_data_helper.base_entity_helper(\r\n \"get_customer_delivery_address\",\r\n {},\r\n {}\r\n )\r\n\r\n let result = await gcda_biz_data\r\n .execAction({\r\n params: _params,\r\n fields: [\"DeliveryAddress\"]\r\n })\r\n .run()\r\n\r\n if (\r\n result &&\r\n result[0].result &&\r\n result[0].result.data &&\r\n result[0].result.data.ActionResult &&\r\n result[0].result.data.ActionResult.Result &&\r\n result[0].result.data.ActionResult.Result.Data.length > 0\r\n ) {\r\n return result[0].result.data.ActionResult.Result.Data\r\n } else {\r\n return null\r\n }\r\n }\r\n}\r\nexport {\r\n biz_data, creditdataForm,\r\n dataForm,\r\n dataItemForm, fields,\r\n methods, rules\r\n}\r\n\r\n","import axios from \"axios\"\r\nimport normalizeHeaderName from \"axios/lib/helpers/normalizeHeaderName\"\r\nimport utils from \"axios/lib/utils\"\r\nimport {\r\n BootstrapVue\r\n} from \"bootstrap-vue\"\r\nimport fileDownload from 'js-file-download'\r\n// -- import * as _ from \"lodash-es\"\r\nimport SecureLs from \"secure-ls\"\r\nimport vue from \"vue\"\r\nimport en from \"../../public/locales/en.json\"\r\nimport zhCN from \"../../public/locales/zh-CN.json\"\r\nimport apiPath from \"./apiPath\"\r\nimport * as base_url from \"./base_url\"\r\nimport * as localStorageMgr from \"./localStorageMgr\"\r\n\r\nvue.use(BootstrapVue)\r\nlet vm = new vue()\r\n\r\nlet _ismsg = false\r\nconst ls = new SecureLs({\r\n encodingType: \"aes\",\r\n isCompression: true\r\n})\r\n\r\nlet lang_json = zhCN\r\nif (localStorageMgr.get(localStorageMgr.data.locale) && localStorageMgr.get(localStorageMgr.data.locale) == \"en\") {\r\n lang_json = en\r\n}\r\n\r\n// export const JSONBig=JSONbig({\r\n// alwaysParseAsBig: true,\r\n// useNativeBigInt: true,\r\n// })\r\nconst setContentTypeIfUnset = function (headers, value) {\r\n if (\r\n !utils.isUndefined(headers) &&\r\n utils.isUndefined(headers[\"Content-Type\"])\r\n ) {\r\n headers[\"Content-Type\"] = value\r\n }\r\n}\r\n\r\naxios.defaults.headers.common[\"X-Requested-With\"] = \"XMLHttpRequest\"\r\n\r\naxios.defaults.timeout = 5 * 60 * 1000\r\naxios.defaults.transformResponse = [\r\n function (data) {\r\n if (typeof data === \"string\") {\r\n try {\r\n data = JSON.parse(data)\r\n } catch (e) {\r\n console.log(e)\r\n }\r\n }\r\n return data\r\n }\r\n]\r\naxios.defaults.transformRequest = [\r\n function (data, headers) {\r\n normalizeHeaderName(headers, \"Accept\")\r\n normalizeHeaderName(headers, \"Content-Type\")\r\n if (\r\n utils.isFormData(data) ||\r\n utils.isArrayBuffer(data) ||\r\n utils.isBuffer(data) ||\r\n utils.isStream(data) ||\r\n utils.isFile(data) ||\r\n utils.isBlob(data)\r\n ) {\r\n return data\r\n }\r\n if (utils.isArrayBufferView(data)) {\r\n return data.buffer\r\n }\r\n if (utils.isURLSearchParams(data)) {\r\n setContentTypeIfUnset(\r\n headers,\r\n \"application/x-www-form-urlencoded;charset=utf-8\"\r\n )\r\n\r\n return data.toString()\r\n }\r\n if (utils.isObject(data)) {\r\n setContentTypeIfUnset(headers, \"application/json;charset=utf-8\")\r\n\r\n let json = JSON.stringify(data)\r\n return json\r\n }\r\n\r\n return data\r\n }\r\n]\r\naxios.interceptors.request.use(\r\n\r\n config => {\r\n if (config.url.indexOf(\"/Pub/\") > -1) {\r\n return config\r\n }\r\n\r\n var access_token = ls.get(\"access_token\")\r\n var pub_token = ls.get(\"pub_guest_token\")\r\n if (access_token && !_.isEmpty(access_token)) {\r\n // 判断是否存在token,如果存在的话,则每个http header都加上token\r\n config.headers.AccessToken = access_token\r\n }\r\n else if (pub_token && !_.isEmpty(pub_token)) {\r\n config.headers.OpenDataAccessToken = pub_token\r\n config.headers.AccessToken = pub_token\r\n }\r\n var plant_idx = localStorage.getItem(\"plant_idx\")\r\n if (plant_idx) {\r\n // 判断是否存在plant_idx,如果存在的话,则每个http header都加上plant_idx\r\n // config.headers.PlantIdx = JSON.parse(plant_idx);\r\n }\r\n\r\n //以下是为了兼容v1的代码\r\n if (config.method === \"get\") {\r\n if (config.params === undefined) config.params = {}\r\n if (config.params.access_token === undefined) {\r\n if (!_.isEmpty(access_token)) config.params.access_token = access_token\r\n }\r\n config.params.plant_idx = plant_idx\r\n } else if (config.method === \"post\") {\r\n if (config.data instanceof FormData) {\r\n config.data.append(\"access_token\", access_token)\r\n // config.data.append(\"plant_idx\", plant_idx);\r\n } else {\r\n if (config.data === undefined) config.data = {}\r\n config.data.access_token = access_token\r\n // config.data.plant_idx = plant_idx;\r\n }\r\n }\r\n return config\r\n },\r\n err => {\r\n return Promise.reject(err)\r\n }\r\n)\r\nlet msg_data = []\r\nlet vmMsg = null\r\naxios.interceptors.response.use(\r\n response => {\r\n if (response.headers[\"jwt-isexpired\"] != undefined && response.headers[\"jwt-isexpired\"] != \"False\") {\r\n window.location.href = \"/pages/Login\"\r\n }\r\n\r\n var new_token = response.headers.new_access_token\r\n if (new_token) {\r\n ls.set(\"access_token\", new_token)\r\n }\r\n if (response.data) {\r\n if (response.data.Result == null) {\r\n if (typeof response.data === 'string') {\r\n let _url = response.data\r\n response.data = { Result: [], url: _url }\r\n }\r\n else\r\n response.data.Result = []\r\n }\r\n if (response.data.HasPrivilege != undefined) {\r\n if (!response.data.HasPrivilege) {\r\n let _url = response.config.url\r\n _url = _url.replace(base_url.base_url, \"\")\r\n if (_url == \"/data/batch\") {\r\n let _urls = []\r\n let str = \"\"\r\n _.each(response.data.NoPrivilegeCodes, t => {\r\n if (_.findIndex(msg_data, {\r\n url: t\r\n }) < 0) {\r\n msg_data.push({\r\n url: t\r\n })\r\n }\r\n })\r\n } else {\r\n if (_.findIndex(msg_data, {\r\n url: _url\r\n }) < 0) {\r\n msg_data.push({\r\n url: _url\r\n })\r\n }\r\n }\r\n let _msgDataClone = _.cloneDeep(msg_data)\r\n if (_msgDataClone.length > 0) {\r\n if (vmMsg == null) {\r\n let str = ''\r\n _.each(_msgDataClone, t => {\r\n let arr = []\r\n arr = (t.url).split('/')\r\n if (arr.length == 4) {\r\n str += '
' + arr[2] + '-' + arr[3] + '
'\r\n }\r\n if (arr.length == 3) {\r\n str += '
' + arr[1] + '-' + arr[2] + '
'\r\n }\r\n\r\n })\r\n\r\n vmMsg = vm.$message({\r\n dangerouslyUseHTMLString: true,\r\n message: '
' + lang_json.notify[\"not_privileges_content_admin\"] + '
' +\r\n str,\r\n type: 'error',\r\n showClose: true,\r\n duration: 0,\r\n customClass: 'zZindex',\r\n onClose: function () {\r\n _ismsg = false\r\n msg_data = []\r\n vmMsg = null\r\n }\r\n })\r\n } else {\r\n let str = ''\r\n _.each(_msgDataClone, t => {\r\n let arr = []\r\n arr = (t.url).split('/')\r\n if (arr.length == 4) {\r\n str += '
' + arr[2] + '-' + arr[3] + '
'\r\n }\r\n if (arr.length == 3) {\r\n str += '
' + arr[1] + '-' + arr[2] + '
'\r\n }\r\n\r\n })\r\n vmMsg.message =\r\n '
' + lang_json.notify[\"not_privileges_content_admin\"] + '
' +\r\n str\r\n }\r\n }\r\n _ismsg = true\r\n }\r\n }\r\n let _msg = \"\"\r\n if (response.data.status) {\r\n _msg = \"错误代码:\" + response.data.status + \",\" + response.data.title\r\n }\r\n if (_msg != \"\") {\r\n if (!_ismsg) {\r\n vm.$message({\r\n message: _msg,\r\n type: \"error\",\r\n duration: 0,\r\n showClose: true,\r\n onClose: function () {\r\n _ismsg = false\r\n }\r\n })\r\n _ismsg = true\r\n }\r\n }\r\n }\r\n return response\r\n },\r\n error => {\r\n if (error.response) {\r\n var new_token = error.response.headers.new_access_token\r\n if (new_token) {\r\n ls.set(\"access_token\", new_token)\r\n }\r\n\r\n switch (error.response.status) {\r\n case 401:\r\n ls.remove(\"access_token\")\r\n // 返回 401 清除token信息并跳转到登录页面\r\n\r\n\r\n // this.$message({\r\n // showClose: true,\r\n // message: '没有相应权限!请联系管理员.',\r\n // type: 'error',\r\n // duration:0\r\n // });\r\n break\r\n default:\r\n console.log(error.response)\r\n if (error.response && error.response.config && error.response.config.url && error.response.config.url.indexOf(\"/upload/\") > -1) { }\r\n else window.location.href = \"/pages/Login\"\r\n break\r\n }\r\n return Promise.reject(error.response.data) // 返回接口返回的错误信息\r\n }\r\n }\r\n)\r\n\r\nexport const request = function (query_setting) {\r\n let req = function (url, params, method) {\r\n if (method === \"post\") {\r\n if (params instanceof FormData) {\r\n return axios.post(url, params, {\r\n headers: {\r\n \"Content-Type\": \"multipart/form-data\"\r\n }\r\n })\r\n } else {\r\n return axios.post(url, params)\r\n }\r\n } else {\r\n if (_.isNull(params)) {\r\n return axios.get(url)\r\n } else {\r\n return axios.get(url, {\r\n params: params\r\n })\r\n }\r\n }\r\n }\r\n return req(query_setting.url, query_setting.parameters, query_setting.method)\r\n}\r\n\r\nexport const query_batch = async function (batch_actions) {\r\n return await axios.post(base_url.base_url + \"/data/batch\", batch_actions)\r\n}\r\n\r\nexport const query_async = async function (query_settings, callback) {\r\n //权限验证\r\n let req = function (url, params, method) {\r\n if (method === \"post\") {\r\n if (params instanceof FormData) {\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .post(url, params, {\r\n headers: {\r\n \"Content-Type\": \"multipart/form-data\"\r\n }\r\n })\r\n .then(res => {\r\n resolve(res)\r\n })\r\n .catch(err => {\r\n reject(err)\r\n })\r\n })\r\n } else {\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .post(url, params)\r\n .then(res => {\r\n resolve(res)\r\n })\r\n .catch(err => {\r\n reject(err)\r\n })\r\n })\r\n }\r\n } else {\r\n return new Promise((resolve, reject) => {\r\n let _url = url\r\n if (_.isNull(params)) {\r\n axios\r\n .get(_url)\r\n .then(res => {\r\n resolve(res)\r\n })\r\n .catch(err => {\r\n reject(err)\r\n })\r\n } else {\r\n axios\r\n .get(url, {\r\n params: params\r\n })\r\n .then(res => {\r\n resolve(res)\r\n })\r\n .catch(err => {\r\n reject(err)\r\n })\r\n }\r\n })\r\n }\r\n }\r\n if (!(query_settings instanceof Array)) {\r\n query_settings = [query_settings]\r\n }\r\n let results = []\r\n for (let i = 0; i < query_settings.length; i++) {\r\n let query_setting = query_settings[i]\r\n let code = query_setting.code ? query_setting.code : \"_\" + i\r\n let content_type = query_setting.content_type\r\n let ref = query_setting.ref ? query_setting.ref : null\r\n\r\n try {\r\n let invoke_result = {\r\n code,\r\n content_type,\r\n result: await req(\r\n query_setting.url,\r\n query_setting.parameters,\r\n query_setting.method\r\n ),\r\n ref\r\n }\r\n if (callback) {\r\n results.push(invoke_result)\r\n if (!callback(invoke_result)) {\r\n //this is a chance to cancel next querys, eg. return false when check valid remain\r\n break\r\n }\r\n } else {\r\n results.push(invoke_result)\r\n }\r\n } catch (e) {\r\n results.push({\r\n code: code,\r\n error: e\r\n })\r\n }\r\n }\r\n\r\n return results\r\n}\r\n\r\nexport const query_all_async = async function (query_settings) {\r\n //this is no chance to cancel querys\r\n let requests = []\r\n if (!(query_settings instanceof Array)) {\r\n query_settings = [query_settings]\r\n }\r\n for (let i = 0; i < query_settings.length; i++) {\r\n let query_setting = query_settings[i]\r\n requests.push(request(query_setting))\r\n }\r\n let r = await Promise.allSettled(requests)\r\n let results = []\r\n for (let i = 0; i < query_settings.length; i++) {\r\n let query_setting = query_settings[i]\r\n let code = query_setting.code ? query_setting.code : \"_\" + i\r\n let content_type = query_setting.content_type\r\n let ref = query_setting.ref ? query_setting.ref : null\r\n results.push({\r\n code,\r\n content_type,\r\n result: r[i].value,\r\n ref\r\n })\r\n }\r\n\r\n return results\r\n}\r\n\r\nexport const downloadFile = async function (p) {\r\n await axios.get(p.url, {\r\n responseType: 'blob',\r\n }).then(res => {\r\n fileDownload(res.data, p.fileName)\r\n }).catch(err => {\r\n fileDownload(err, p.fileName)\r\n })\r\n}\r\nexport const pub_url = function (action, idx, code) {\r\n let path = apiPath.pub.get_pub_data\r\n if (action == \"save\") path = apiPath.pub.save_pub_data\r\n let token = ls.get(localStorageMgr.data.pub_guest_token)\r\n return path + idx + \"/\" + code + \"?pub_token=\" + token\r\n}\r\n\r\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('router-view')\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","let watermark = {}\n\nlet setWatermark = (str) => {\n let id = '1.23452384164.123412416';\n\n if (document.getElementById(id) !== null) {\n document.body.removeChild(document.getElementById(id));\n }\n\n //创建一个画布\n let can = document.createElement('canvas');\n //设置画布的长宽\n can.width = 360;\n can.height = 240;\n\n let cans = can.getContext('2d');\n //旋转角度\n cans.rotate(-15 * Math.PI / 180);\n cans.font = '32px Vedana';\n //设置填充绘画的颜色、渐变或者模式\n cans.fillStyle = 'rgba(200, 200, 200, 0.40)';\n //设置文本内容的当前对齐方式\n cans.textAlign = 'left';\n //设置在绘制文本时使用的当前文本基线\n cans.textBaseline = 'Middle';\n //在画布上绘制填色的文本(输出的文本,开始绘制文本的X坐标位置,开始绘制文本的Y坐标位置)\n cans.fillText(str, can.width / 8, can.height / 2);\n\n let div = document.createElement('div');\n div.id = id;\n div.style.pointerEvents = 'none';\n div.style.top = '30px';\n div.style.left = '0px';\n div.style.position = 'fixed';\n div.style.zIndex = '100000';\n div.style.width = document.documentElement.clientWidth + 'px';\n div.style.height = document.documentElement.clientHeight + 'px';\n div.style.background = 'url(' + can.toDataURL('image/png') + ') left top repeat';\n document.body.appendChild(div);\n return id;\n}\n\n// 该方法只允许调用一次\nwatermark.set = (str) => {\n let id = setWatermark(str);\n setInterval(() => {\n if (document.getElementById(id) === null) {\n id = setWatermark(str);\n }\n }, 500);\n window.onresize = () => {\n setWatermark(str);\n };\n}\n\nexport default watermark;\n","\r\n\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=3081a714\"\nimport script from \"./App.vue?vue&type=script&lang=js\"\nexport * from \"./App.vue?vue&type=script&lang=js\"\nimport style0 from \"./App.vue?vue&type=style&index=0&id=3081a714&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import SecureLs from \"secure-ls\"\nimport * as commonController from \"../controllers/commonController\"\nimport * as base_url from \"../shared/base_url\"\n// // -- import * as _ from \"lodash-es\"\nlet _base_mixin = {\n data() {\n return {\n ls: new SecureLs({\n encodingType: \"aes\",\n isCompression: true\n }),\n base_url: base_url.base_url,\n main_content_height: 0\n }\n },\n computed: {\n lang: function () {\n let locale = this.$i18n.locale\n if (locale === \"zh-CN\") return \"中文\"\n if (locale === \"en\") return \"English\"\n }\n },\n async created() {\n let this_ = this\n\n let plant_idx = localStorage.getItem(\"plant_idx\")\n if (plant_idx) this_.plant_idx = plant_idx\n },\n methods: {\n msgModal(msg) {\n const h = this.$createElement\n return this.$bvModal.msgBoxConfirm([h(\"h6\", [msg])], {\n title: \"提示\",\n headerBgVariant: \"danger\",\n okVariant: \"danger\",\n okTitle: \"确定\",\n cancelTitle: \"取消\",\n footerClass: \"p-2\",\n hideHeaderClose: false\n })\n },\n\n msgToasts(msg, _variant, _time, UseHTML, customClass) {\n _variant = _variant == null ? \"info\" : _variant\n let _title = \"\",\n _msg = \"\"\n if (_variant == \"success\") {\n _title = msg\n } else if (_variant == \"warning\") {\n _title = \"警告\"\n _msg = msg\n } else if (_variant == \"info\") {\n _title = \"消息\"\n _msg = msg\n } else if (_variant == \"error\") {\n _title = \"错误\"\n _msg = msg\n }\n ////element提示\n let _notify = {\n title: _title,\n message: _msg,\n type: _variant,\n customClass: customClass\n }\n if (_time != null) {\n _notify[\"duration\"] = _time\n }\n if (UseHTML != null) {\n _notify[\"dangerouslyUseHTMLString\"] = UseHTML\n }\n this.$notify(_notify)\n },\n formatDate(_dateTime, format_type) {\n return commonController.formatDate(_dateTime, format_type)\n }\n }\n}\nexport default _base_mixin\n","import Vue from \"vue\"\r\nimport Router from \"vue-router\"\r\n\r\n// Containers\r\nconst DefaultContainer = () => import(\"@/containers/DefaultContainer\")\r\nconst BaseContainer = () => import(\"@/containers/BaseContainer\")\r\n// Views\r\nconst Dashboard = () => import(\"@/views/Dashboard\")\r\nconst ArticleDetail = () => import(\"@/views/ArticleDetail\")\r\n//system\r\nconst UserManage = () => import(\"@/views/system/UserManage\")\r\nconst CustmerBind = () => import(\"@/views/system/CustmerBind\")\r\nconst DepartmentManage = () => import(\"@/views/system/DepartmentManage\")\r\nconst PropertyManage = () => import(\"@/views/system/PropertyManage\")\r\nconst PropertyManageTest = () => import(\"@/views/system/PropertyManageTest\")\r\nconst RolePropertyTest = () => import(\"@/views/system/RolePropertyTest\")\r\nconst RoleManage = () => import(\"@/views/system/RoleManage\")\r\nconst RolePropertyManage = () => import(\"@/views/system/RolePropertyManage\")\r\nconst LogManage = () => import(\"@/views/system/LogManage\")\r\nconst NotifyManage = () => import(\"@/views/system/NotifyManage\")\r\nconst SystemSetting = () => import(\"@/views/system/SystemSetting\")\r\nconst ApproveManage = () => import(\"@/views/system/ApproveManage\")\r\n\r\n//base\r\nconst VendTableMain = () => import(\"@/views/base/VendTableMain\")\r\nconst CustTableMain = () => import(\"@/views/base/CustTableMain\")\r\nconst SaleOrderPool = () => import(\"@/views/base/SaleOrderPool\")\r\nconst InventTableMain = () => import(\"@/views/base/InventTableMain\")\r\nconst PriceDiscTable = () => import(\"@/views/base/PriceDiscTable\")\r\nconst Currency = () => import(\"@/views/base/Currency\")\r\nconst ExchRate = () => import(\"@/views/base/ExchRate\")\r\nconst Tax = () => import(\"@/views/base/Tax\")\r\nconst CompanyInfo = () => import(\"@/views/base/CompanyInfo\")\r\nconst Unit = () => import(\"@/views/base/Unit\")\r\nconst InventLocation = () => import(\"@/views/base/InventLocation\")\r\nconst Worker = () => import(\"@/views/base/Worker\")\r\nconst ForecastModel = () => import(\"@/views/base/ForecastModel\")\r\nconst TECProductPartsTBL = () => import(\"@/views/base/TECProductPartsTBL\")\r\nconst WrkCtrTable = () => import(\"@/views/base/WrkCtrTable\")\r\nconst TECRouteTypeTBL = () => import(\"@/views/base/TECRouteTypeTBL\")\r\nconst TECColorGroupTBL = () => import(\"@/views/base/TECColorGroupTBL\")\r\nconst TECRouteSpoilageStdTBL = () => import(\"@/views/base/TECRouteSpoilageStdTBL\")\r\nconst RouteOprTable = () => import(\"@/views/base/RouteOprTable\")\r\nconst ProductPartsType = () => import(\"@/views/base/ProductPartsType\")\r\nconst ElectricityPrices = () => import(\"@/views/base/ElectricityPrices\")\r\nconst SpoilageTypeRatio = () => import(\"@/views/base/SpoilageTypeRatio\")\r\nconst CostItems = () => import(\"@/views/base/CostItems\")\r\n\r\n//sd\r\nconst SOSalesQuote = () => import(\"@/views/sd/SOSalesQuote\") //销售报价\r\nconst VendPurchaseQuote = () => import(\"@/views/sd/VendPurchaseQuote\") //内部供应商采购报价\r\nconst VendPurchaseQuoteOut = () => import(\"@/views/sd/VendPurchaseQuoteOut\") //外部供应商采购报价\r\nconst VendInitialQuote = () => import(\"@/views/sd/VendInitialQuote\") //供应商初始报价\r\nconst SalesOrder = () => import(\"@/views/sd/SalesOrder\") //销售订单池\r\nconst OrderForecast = () => import(\"@/views/sdr/OrderForecast\") //销售订单池\r\nconst SOTracking = () => import(\"@/views/sd/SOTracking\")\r\nconst SOImplementation = () => import(\"@/views/sd/SOImplementation\")//销售订单审批执行情况\r\nconst ForecastDeliveryPlan = () => import(\"@/views/sdr/ForecastDeliveryPlan\")\r\nconst ApprovedLog = () => import(\"@/views/sda/ApprovedLog\")\r\nconst SaleOrderDispatch = () => import(\"@/views/sd/saleOrderDispatch\")\r\nconst OrderForecastDispatch = () => import(\"@/views/sdr/OrderForecastDispatch\")\r\nconst ExternalUserSetting = () => import(\"@/views/sd/ExternalUserSetting\") //外部用户登录设置\r\n//salesquote\r\nconst InventBom = () => import(\"@/views/sd/InventBom\") //产品bom结构\r\nconst InventBomRoute = () => import(\"@/views/sd/InventBomRoute\") //物料bom工艺关系\r\nconst InventBomCost = () => import(\"@/views/sd/InventBomCost\") //物料bom成本\r\nconst InventBomVersion = () => import(\"@/views/sd/InventBomVersion\") //产品bom结构版本\r\nconst Route = () => import(\"@/views/sd/Route\") //工艺路线\r\nconst RouteVersion = () => import(\"@/views/sd/RouteVersion\") //工艺路线版本\r\nconst QuotationTask = () => import(\"@/views/sd/QuotationTask\") //报价申请\r\nconst QuotationTaskHandle = () => import(\"@/views/sd/QuotationTaskHandle\") //报价申请处理\r\nconst QTHDistribution = () => import(\"@/views/sd/QTHDistribution\") //主计划管理\r\nconst QTHDistributionProofing = () => import(\"@/views/sd/QTHDistributionProofing\") //打样分配\r\nconst QuotationOrder = () => import(\"@/views/sd/QuotationOrder\") //报价单\r\nconst QuotationOrderProofing = () => import(\"@/views/sd/QuotationOrderProofing\") //报价单\r\nconst InventPrice = () => import(\"@/views/sd/InventPrice\") //物料价格\r\nconst CostCacl = () => import(\"@/views/sd/CostCacl\") //报价核算\r\nconst QuotationOrderConfirm = () => import(\"@/views/sd/QuotationOrderConfirm\") //加权确认\r\n\r\n\r\n//demo\r\nconst NetDemandPlan = () => import(\"@/views/sdr/NetDemandPlan\")\r\nconst SafetyStock = () => import(\"@/views/sd/SafetyStock\")\r\nconst SalemanForecast = () => import(\"@/views/sd/SalemanForecast\")\r\n//mm\r\nconst PurchaseOrder = () => import(\"@/views/mm/PurchaseOrder\")\r\nconst DeliveryPlan = () => import(\"@/views/mm/DeliveryPlan\")\r\nconst SaleOrderPurchaseRate = () => import(\"@/views/mm/saleOrderPurchaseRate\")\r\nconst SupplierRate = () => import(\"@/views/mm/SupplierRate\")\r\nconst PurchaseLineReturn = () => import(\"@/views/mm/PurchaseLineReturn\")\r\nconst PurchImplementation = () => import(\"@/views/mm/PurchImplementation\")\r\nconst ConsultQuote = () => import(\"@/views/mm/ConsultQuote\")\r\nconst ConsultQuoteApplication = () => import(\"@/views/mm/ConsultQuoteApplication\")\r\n\r\n//fi\r\nconst CustomerCredit = () => import(\"@/views/fi/CustomerCredit\")\r\nconst ProductionCapacity = () => import(\"@/views/fi/ProductionCapacity\")\r\n\r\n//wm\r\nconst InventSum = () => import(\"@/views/wm/InventSum\")\r\n\r\n// Views - Pages\r\nconst Page404 = () => import(\"@/views/pages/Page404\")\r\nconst Page500 = () => import(\"@/views/pages/Page500\")\r\nconst Login = () => import(\"@/views/pages/Login\")\r\nconst Register = () => import(\"@/views/pages/Register\")\r\nconst GuestLogin = () => import(\"@/views/pages/GuestLogin\")\r\nconst Guest = () => import(\"@/views/pages/Guest\")\r\n\r\nconst TestSalesOrder = () => import(\"@/views/TestSalesOrder\")\r\nconst TestFieldSetting = () => import(\"@/views/TestFieldSetting\")\r\nconst TestTable3 = () => import(\"@/views/TestTable3\")\r\nconst ColorTest = () => import(\"@/views/colorTest\")\r\n\r\nVue.use(Router)\r\n\r\nconst _router = new Router({\r\n mode: \"history\", // https://router.vuejs.org/api/#mode\r\n linkActiveClass: \"open active\",\r\n scrollBehavior: () => ({\r\n y: 0\r\n }),\r\n routes: [\r\n {\r\n path: \"/\",\r\n redirect: \"/dashboard\",\r\n name: \"CPSP\",\r\n component: DefaultContainer,\r\n children: [\r\n {\r\n path: \"Dashboard\",\r\n name: \"Dashboard\",\r\n component: Dashboard,\r\n mata: {\r\n title: \"首页\"\r\n },\r\n },\r\n {\r\n path: \"ArticleDetail\",\r\n name: \"ArticleDetail\",\r\n component: ArticleDetail,\r\n mata: {\r\n title: \"资讯详情\"\r\n }\r\n },\r\n {\r\n path: \"system\",\r\n redirect: \"/system/UserManage\",\r\n name: \"system_setting\",\r\n component: BaseContainer,\r\n children: [\r\n {\r\n path: \"UserManage\",\r\n name: \"user_manage\",\r\n component: UserManage,\r\n meta: {\r\n keepAlive: true,\r\n title: \"用户管理\"\r\n }\r\n },\r\n {\r\n path: \"CustmerBind\",\r\n name: \"custmer_bind\",\r\n component: CustmerBind,\r\n meta: {\r\n keepAlive: true,\r\n title: \"客户绑定\"\r\n }\r\n },\r\n // {\r\n // path: \"DepartmentManage\",\r\n // name: \"部门管理\",\r\n // component: DepartmentManage,\r\n // meta: {\r\n // keepAlive: true,\r\n // title: \"部门管理\"\r\n // }\r\n // },\r\n {\r\n path: \"PropertyManage\",\r\n name: \"privilege_manage\",\r\n component: PropertyManage,\r\n meta: {\r\n keepAlive: true,\r\n title: \"权限管理\"\r\n }\r\n },\r\n {\r\n path: \"PropertyManageTest\",\r\n name: \"privilege_manage\",\r\n component: PropertyManageTest,\r\n meta: {\r\n keepAlive: true,\r\n title: \"权限管理Test\"\r\n }\r\n },\r\n {\r\n path: \"RolePropertyTest\",\r\n name: \"privilege_manage\",\r\n component: RolePropertyTest,\r\n meta: {\r\n keepAlive: true,\r\n title: \"角色权限Test\"\r\n }\r\n },\r\n\r\n {\r\n path: \"RoleManage\",\r\n name: \"role_manage\",\r\n component: RoleManage,\r\n meta: {\r\n keepAlive: true,\r\n title: \"角色管理\"\r\n }\r\n },\r\n {\r\n path: \"RolePropertyManage\",\r\n name: \"role_privilege_setting\",\r\n component: RolePropertyManage,\r\n meta: {\r\n keepAlive: true,\r\n title: \"角色权限分配\"\r\n }\r\n },\r\n {\r\n path: \"LogManage\",\r\n name: \"log_manage\",\r\n component: LogManage,\r\n meta: {\r\n keepAlive: true,\r\n title: \"日志管理\"\r\n }\r\n },\r\n {\r\n path: \"NotifyManage\",\r\n name: \"notify\",\r\n component: NotifyManage,\r\n meta: {\r\n keepAlive: true,\r\n title: \"通知管理\"\r\n }\r\n },\r\n {\r\n path: \"ExternalUserSetting\",\r\n name: \"external_user_setting\",\r\n component: ExternalUserSetting,\r\n meta: {\r\n keepAlive: true,\r\n title: \"访客设置\"\r\n }\r\n },\r\n {\r\n path: \"ApproveManage\",\r\n name: \"ApproveManage\",\r\n component: ApproveManage,\r\n meta: {\r\n keepAlive: true,\r\n title: \"审批流管理\"\r\n }\r\n },\r\n {\r\n path: \"SystemSetting\",\r\n name: \"system_common_setting\",\r\n component: SystemSetting,\r\n meta: {\r\n keepAlive: true,\r\n title: \"系统设置\"\r\n }\r\n }\r\n ]\r\n },\r\n {\r\n path: \"base\",\r\n redirect: \"/base/VendTableMain\",\r\n name: \"base_data\",\r\n component: BaseContainer,\r\n children: [\r\n {\r\n path: \"VendTableMain\",\r\n name: \"VendTable\",\r\n component: VendTableMain,\r\n meta: {\r\n keepAlive: true,\r\n title: \"供应商档案\"\r\n }\r\n },\r\n {\r\n path: \"CustTableMain\",\r\n name: \"CustTable\",\r\n component: CustTableMain,\r\n meta: {\r\n keepAlive: true,\r\n title: \"客户档案\"\r\n }\r\n },\r\n {\r\n path: \"SaleOrderPool\",\r\n name: \"SalesPool\",\r\n component: SaleOrderPool,\r\n meta: {\r\n keepAlive: true,\r\n title: \"订单类型\"\r\n }\r\n },\r\n {\r\n path: \"ForecastModel\",\r\n name: \"ForecastModel\",\r\n component: ForecastModel,\r\n meta: {\r\n keepAlive: true,\r\n title: \"预测模型\"\r\n }\r\n },\r\n {\r\n path: \"InventTableMain\",\r\n name: \"InventTable\",\r\n component: InventTableMain,\r\n meta: {\r\n keepAlive: true,\r\n title: \"物料档案\"\r\n }\r\n },\r\n {\r\n path: \"PriceDiscTable\",\r\n name: \"PriceDiscTable\",\r\n component: PriceDiscTable,\r\n meta: {\r\n keepAlive: true,\r\n title: \"价格协议\"\r\n }\r\n },\r\n {\r\n path: \"Currency\",\r\n name: \"Currency\",\r\n component: Currency,\r\n meta: {\r\n keepAlive: true,\r\n title: \"币种档案\"\r\n }\r\n },\r\n {\r\n path: \"ExchRate\",\r\n name: \"ExchRate\",\r\n component: ExchRate,\r\n meta: {\r\n keepAlive: true,\r\n title: \"汇率档案\"\r\n }\r\n },\r\n {\r\n path: \"Tax\",\r\n name: \"TaxGroupHeading\",\r\n component: Tax,\r\n meta: {\r\n keepAlive: true,\r\n title: \"税组档案\"\r\n }\r\n },\r\n {\r\n path: \"CompanyInfo\",\r\n name: \"CompanyInfo\",\r\n component: CompanyInfo,\r\n meta: {\r\n keepAlive: true,\r\n title: \"法人档案\"\r\n }\r\n },\r\n {\r\n path: \"Unit\",\r\n name: \"UnitOfMeasure\",\r\n component: Unit,\r\n meta: {\r\n keepAlive: true,\r\n title: \"单位档案\"\r\n }\r\n },\r\n {\r\n path: \"InventLocation\",\r\n name: \"InventLocation\",\r\n component: InventLocation,\r\n meta: {\r\n keepAlive: true,\r\n title: \"仓库档案\"\r\n }\r\n },\r\n {\r\n path: \"Worker\",\r\n name: \"HcmWorker\",\r\n component: Worker,\r\n meta: {\r\n keepAlive: true,\r\n title: \"人员档案\"\r\n }\r\n },\r\n {\r\n path: \"ProductPartsTBL\",\r\n name: \"ProductPartsTBL\",\r\n component: TECProductPartsTBL,\r\n meta: {\r\n keepAlive: true,\r\n title: \"部件档案\"\r\n }\r\n },\r\n {\r\n path: \"WrkCtrTable\",\r\n name: \"WrkCtrTable\",\r\n component: WrkCtrTable,\r\n meta: {\r\n keepAlive: true,\r\n title: \"资源档案\"\r\n }\r\n },\r\n {\r\n path: \"TECRouteTypeTBL\",\r\n name: \"TECRouteTypeTBL\",\r\n component: TECRouteTypeTBL,\r\n meta: {\r\n keepAlive: true,\r\n title: \"工序类型\"\r\n }\r\n },\r\n {\r\n path: \"TECColorGroupTBL\",\r\n name: \"TECColorGroupTBL\",\r\n component: TECColorGroupTBL,\r\n meta: {\r\n keepAlive: true,\r\n title: \"色组\"\r\n }\r\n },\r\n {\r\n path: \"TECRouteSpoilageStdTBL\",\r\n name: \"TECRouteSpoilageStdTBL\",\r\n component: TECRouteSpoilageStdTBL,\r\n meta: {\r\n keepAlive: true,\r\n title: \"加放\"\r\n }\r\n },\r\n {\r\n path: \"RouteOprTable\",\r\n name: \"RouteOprTable\",\r\n component: RouteOprTable,\r\n meta: {\r\n keepAlive: true,\r\n title: \"工序档案\"\r\n }\r\n },\r\n {\r\n path: \"ProductPartsType\",\r\n name: \"ProductPartsType\",\r\n component: ProductPartsType,\r\n meta: {\r\n keepAlive: true,\r\n title: \"盒类型档案\"\r\n }\r\n },\r\n {\r\n path: \"ElectricityPrices\",\r\n name: \"ElectricityPrices\",\r\n component: ElectricityPrices,\r\n meta: {\r\n keepAlive: true,\r\n title: \"电价档案\"\r\n }\r\n },\r\n {\r\n path: \"CostItems\",\r\n name: \"CostItems\",\r\n component: CostItems,\r\n meta: {\r\n keepAlive: true,\r\n title: \"成本项档案\"\r\n }\r\n },\r\n\r\n {\r\n path: \"SpoilageTypeRatio\",\r\n name: \"SpoilageTypeRatio\",\r\n component: SpoilageTypeRatio,\r\n meta: {\r\n keepAlive: true,\r\n title: \"加放类型\"\r\n }\r\n },\r\n {\r\n path: \"testSO\",\r\n name: \"aaa\",\r\n component: TestSalesOrder,\r\n meta: {\r\n keepAlive: true\r\n }\r\n }\r\n ]\r\n },\r\n {\r\n path: \"sq\",\r\n redirect: \"/sq/Route\",\r\n name: \"plant_sales_quote\",\r\n component: BaseContainer,\r\n children: [\r\n {\r\n path: \"Route\",\r\n name: \"Route\",\r\n component: Route,\r\n meta: {\r\n keepAlive: true,\r\n title: \"工艺路线\"\r\n }\r\n },\r\n {\r\n path: \"RouteVersion\",\r\n name: \"RouteVersion\",\r\n component: RouteVersion,\r\n meta: {\r\n keepAlive: true,\r\n title: \"工艺路线版本\"\r\n }\r\n },\r\n {\r\n path: \"InventBom\",\r\n name: \"InventBom\",\r\n component: InventBom,\r\n meta: {\r\n keepAlive: true,\r\n title: \"物料BOM\"\r\n }\r\n },\r\n {\r\n path: \"InventBomVersion\",\r\n name: \"InventBomVersion\",\r\n component: InventBomVersion,\r\n meta: {\r\n keepAlive: true,\r\n title: \"物料BOM版本\"\r\n }\r\n },\r\n {\r\n path: \"InventBomRoute\",\r\n name: \"InventBomRoute\",\r\n component: InventBomRoute,\r\n meta: {\r\n keepAlive: true,\r\n title: \"BOM工艺关系\"\r\n }\r\n },\r\n {\r\n path: \"QuotationTask\",\r\n name: \"QuotationTask\",\r\n component: QuotationTask,\r\n meta: {\r\n keepAlive: true,\r\n title: \"报价申请\"\r\n }\r\n },\r\n {\r\n path: \"QuotationTaskHandle\",\r\n name: \"QuotationTaskHandle\",\r\n component: QuotationTaskHandle,\r\n meta: {\r\n keepAlive: true,\r\n title: \"报价申请处理\"\r\n }\r\n },\r\n {\r\n path: \"QTHDistribution\",\r\n name: \"QTHDistribution\",\r\n component: QTHDistribution,\r\n meta: {\r\n keepAlive: true,\r\n title: \"主计划管理\"\r\n }\r\n },\r\n {\r\n path: \"QTHDistributionProofing\",\r\n name: \"QTHDistributionProofing\",\r\n component: QTHDistributionProofing,\r\n meta: {\r\n keepAlive: true,\r\n title: \"打样分配\"\r\n }\r\n },\r\n {\r\n path: \"InventBomCost\",\r\n name: \"InventBomCost\",\r\n component: InventBomCost,\r\n meta: {\r\n keepAlive: true,\r\n title: \"报价试算\"\r\n }\r\n },\r\n {\r\n path: \"CostCacl\",\r\n name: \"CostCacl\",\r\n component: CostCacl,\r\n meta: {\r\n keepAlive: true,\r\n title: \"报价核算\"\r\n }\r\n },\r\n {\r\n path: \"QuotationOrderConfirm\",\r\n name: \"QuotationOrderConfirm\",\r\n component: QuotationOrderConfirm,\r\n meta: {\r\n keepAlive: true,\r\n title: \"加权成本确认\"\r\n }\r\n },\r\n {\r\n path: \"QuotationOrder\",\r\n name: \"QuotationOrder\",\r\n component: QuotationOrder,\r\n meta: {\r\n keepAlive: true,\r\n title: \"报价单\"\r\n }\r\n },\r\n {\r\n path: \"QuotationOrderProofing\",\r\n name: \"QuotationOrderProofing\",\r\n component: QuotationOrderProofing,\r\n meta: {\r\n keepAlive: true,\r\n title: \"打样报价单\"\r\n }\r\n },\r\n {\r\n path: \"InventPrice\",\r\n name: \"InventPrice\",\r\n component: InventPrice,\r\n meta: {\r\n keepAlive: true,\r\n title: \"物料价格\"\r\n }\r\n },\r\n ]\r\n },\r\n {\r\n path: \"sd\",\r\n redirect: \"/sd/SOSalesQuote\",\r\n name: \"sales_order_manage\",\r\n component: BaseContainer,\r\n children: [\r\n {\r\n path: \"SOSalesQuote\",\r\n name: \"plant_sales_quote\",\r\n component: SOSalesQuote,\r\n meta: {\r\n keepAlive: true,\r\n title: \"\"\r\n }\r\n },\r\n {\r\n path: \"VendPurchaseQuote\",\r\n name: \"vend_purchase_quote\",\r\n component: VendPurchaseQuote,\r\n meta: {\r\n keepAlive: true,\r\n title: \"内部供应商采购报价\"\r\n }\r\n },\r\n {\r\n path: \"VendPurchaseQuoteOut\",\r\n name: \"vend_purchase_quote_out\",\r\n component: VendPurchaseQuoteOut,\r\n meta: {\r\n keepAlive: true,\r\n title: \"外部供应商采购报价\"\r\n }\r\n },\r\n {\r\n path: \"VendInitialQuote\",\r\n name: \"vend_initial_quote\",\r\n component: VendInitialQuote,\r\n meta: {\r\n keepAlive: true,\r\n title: \"供应商初始报价\"\r\n }\r\n },\r\n\r\n {\r\n path: \"SalesOrder\",\r\n name: \"SalesTable\",\r\n component: SalesOrder,\r\n meta: {\r\n keepAlive: true,\r\n title: \"销售订单池\"\r\n }\r\n },\r\n {\r\n path: \"saleOrderDispatch\",\r\n name: \"sales_order_dispatch\",\r\n component: SaleOrderDispatch,\r\n meta: {\r\n keepAlive: true,\r\n title: \"产能分配\"\r\n }\r\n },\r\n\r\n // {\r\n // path: \"ApprovedLog\",\r\n // name: \"sales_order_approved\",\r\n // component: ApprovedLog,\r\n // meta: {\r\n // keepAlive: true,\r\n // title: \"订单审批记录\"\r\n // }\r\n // },\r\n {\r\n path: \"SOTracking\",\r\n name: \"sales_order_tracking\",\r\n component: SOTracking,\r\n meta: {\r\n keepAlive: true,\r\n title: \"销售订单跟踪\"\r\n }\r\n },\r\n {\r\n path: \"SOImplementation\",\r\n name: \"sales_order_implementation\",\r\n component: SOImplementation,\r\n meta: {\r\n keepAlive: true,\r\n title: \"销售订单审批执行情况\"\r\n }\r\n }\r\n ]\r\n },\r\n {\r\n path: \"sda\",\r\n redirect: \"/sda/ApprovedLog\",\r\n name: \"sales_order_approved\",\r\n component: BaseContainer,\r\n children: [\r\n {\r\n path: \"ApprovedLog\",\r\n name: \"sales_order_approved\",\r\n component: ApprovedLog,\r\n meta: {\r\n keepAlive: true,\r\n title: \"订单审批记录\"\r\n }\r\n }\r\n\r\n ]\r\n },\r\n {\r\n path: \"sdr\",\r\n redirect: \"/sdr/sales_order_prediction\",\r\n name: \"prediction_order_manage\",\r\n component: BaseContainer,\r\n children: [\r\n {\r\n path: \"OrderForecast\",\r\n name: \"sales_order_prediction\",\r\n component: OrderForecast,\r\n meta: {\r\n keepAlive: true,\r\n title: \"预测订单\"\r\n }\r\n },\r\n {\r\n path: \"OrderForecastDispatch\",\r\n name: \"sales_order_prediction_dispatch\",\r\n component: OrderForecastDispatch,\r\n meta: {\r\n keepAlive: true,\r\n title: \"预测派发\"\r\n }\r\n },\r\n {\r\n path: \"ForecastDeliveryPlan\",\r\n name: \"DeliveryPlan\",\r\n component: ForecastDeliveryPlan,\r\n meta: {\r\n keepAlive: true,\r\n title: \"交货计划\"\r\n }\r\n },\r\n {\r\n path: \"NetDemandPlan\",\r\n name: \"NetDemandPlan\",\r\n component: NetDemandPlan,\r\n meta: {\r\n keepAlive: true,\r\n title: \"净需求分析\"\r\n }\r\n }\r\n // {\r\n // path: \"SafetyStock\",\r\n // name: \"SafetyStock\",\r\n // component: SafetyStock,\r\n // meta: {\r\n // keepAlive: true,\r\n // title: \"安全库存\"\r\n // },\r\n // },\r\n // {\r\n // path: \"SalemanForecast\",\r\n // name: \"SalemanForecast\",\r\n // component: SalemanForecast,\r\n // meta: {\r\n // keepAlive: true,\r\n // title: \"销售员预测\"\r\n // },\r\n // }\r\n ]\r\n },\r\n {\r\n path: \"mm\",\r\n redirect: \"/mm/saleOrderPurchaseRate\",\r\n name: \"purchase_order_manage\",\r\n component: BaseContainer,\r\n children: [\r\n {\r\n path: \"ConsultQuoteApplication\",\r\n name: \"ConsultQuoteApplication\",\r\n component: ConsultQuoteApplication,\r\n meta: {\r\n keepAlive: true,\r\n title: \"询价申请\"\r\n }\r\n },\r\n {\r\n path: \"ConsultQuote\",\r\n name: \"ConsultQuote\",\r\n component: ConsultQuote,\r\n meta: {\r\n keepAlive: true,\r\n title: \"询价单\"\r\n }\r\n },\r\n {\r\n path: \"PurchaseOrder\",\r\n name: \"PurchTable\",\r\n component: PurchaseOrder,\r\n meta: {\r\n keepAlive: true,\r\n title: \"采购订单池\"\r\n }\r\n },\r\n {\r\n path: \"PurchaseLineReturn\",\r\n name: \"PurchaseLineReturn\",\r\n component: PurchaseLineReturn,\r\n meta: {\r\n keepAlive: true,\r\n title: \"采购订单跟踪\"\r\n }\r\n },\r\n {\r\n path: \"PurchImplementation\",\r\n name: \"PurchImplementation\",\r\n component: PurchImplementation,\r\n meta: {\r\n keepAlive: true,\r\n title: \"采购未执行订单\"\r\n }\r\n },\r\n {\r\n path: \"DeliveryPlan\",\r\n name: \"DeliveryPlan\",\r\n component: DeliveryPlan,\r\n meta: {\r\n keepAlive: true,\r\n title: \"交货计划\"\r\n }\r\n },\r\n {\r\n path: \"saleOrderPurchaseRate\",\r\n name: \"purchase_order_assess\",\r\n component: SaleOrderPurchaseRate,\r\n meta: {\r\n keepAlive: true,\r\n title: \"采购订单评价\"\r\n }\r\n },\r\n {\r\n path: \"SupplierRate\",\r\n name: \"supplier_assess\",\r\n component: SupplierRate,\r\n meta: {\r\n keepAlive: true,\r\n title: \"供应商评价\"\r\n }\r\n }\r\n ]\r\n },\r\n {\r\n path: \"fi\",\r\n component: BaseContainer,\r\n children: [\r\n {\r\n path: \"CustomerCredit\",\r\n name: \"customer_credit_manage\",\r\n component: CustomerCredit,\r\n meta: {\r\n keepAlive: true,\r\n title: \"信用额度维护\"\r\n }\r\n },\r\n {\r\n path: \"ProductionCapacity\",\r\n name: \"production_capacity_manage\",\r\n component: ProductionCapacity,\r\n meta: {\r\n keepAlive: true,\r\n title: \"产能管理\"\r\n }\r\n }\r\n ]\r\n },\r\n\r\n {\r\n path: \"wm\",\r\n component: BaseContainer,\r\n children: [\r\n {\r\n path: \"InventSum\",\r\n name: \"InventSum\",\r\n component: InventSum,\r\n meta: {\r\n keepAlive: true,\r\n title: \"现有库存量\"\r\n }\r\n }\r\n ]\r\n },\r\n {\r\n path: \"test\",\r\n component: BaseContainer,\r\n children: [\r\n {\r\n path: \"TestFieldSetting\",\r\n name: \"测试列设置\",\r\n component: TestFieldSetting,\r\n meta: {\r\n keepAlive: true,\r\n title: \"测试列设置\"\r\n }\r\n },\r\n {\r\n path: \"TestTable3\",\r\n name: \"表格测试\",\r\n component: TestTable3,\r\n meta: {\r\n keepAlive: true,\r\n title: \"表格测试\"\r\n }\r\n }\r\n ]\r\n },\r\n {\r\n path: \"/ColorTest\",\r\n component: ColorTest,\r\n children: [\r\n {\r\n path: \"colorTest\",\r\n name: \"颜色配比\",\r\n component: ColorTest,\r\n meta: {\r\n keepAlive: true,\r\n title: \"颜色管理\"\r\n }\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n path: \"/pages\",\r\n redirect: \"/pages/404\",\r\n name: \"Pages\",\r\n component: {\r\n render(c) {\r\n return c(\"router-view\")\r\n }\r\n },\r\n children: [\r\n {\r\n path: \"404\",\r\n name: \"Page404\",\r\n component: Page404,\r\n meta: {\r\n title: \"404\"\r\n }\r\n },\r\n {\r\n path: \"500\",\r\n name: \"Page500\",\r\n component: Page500,\r\n meta: {\r\n title: \"500\"\r\n }\r\n },\r\n {\r\n path: \"Login\",\r\n name: \"Login\",\r\n component: Login,\r\n meta: {\r\n title: \"登录\"\r\n }\r\n },\r\n {\r\n path: \"register\",\r\n name: \"Register\",\r\n component: Register,\r\n meta: {\r\n title: \"注册\"\r\n }\r\n },\r\n {\r\n path: \"GuestLogin\",\r\n name: \"GuestLogin\",\r\n component: GuestLogin,\r\n meta: {\r\n title: \"访客登录\"\r\n }\r\n },\r\n {\r\n path: \"Guest\",\r\n name: \"Guest\",\r\n component: Guest,\r\n meta: {\r\n title: \"访客浏览\"\r\n }\r\n }\r\n ]\r\n }\r\n ]\r\n})\r\n_router.beforeEach((to, from, next) => {\r\n let access_token = localStorage.getItem(\"access_token\")\r\n if (\r\n !access_token &&\r\n to.path != \"/pages/Login\" &&\r\n to.path != \"/pages/GuestLogin\" &&\r\n to.path != \"/pages/Guest\" &&\r\n to.path != \"/pages/Register\" &&\r\n to.path != \"/pages/page503\" &&\r\n to.path != \"/pages/page404\"\r\n ) {\r\n next({\r\n path: \"/pages/Login?url=\" + encodeURIComponent(window.location.href)\r\n })\r\n } else {\r\n next()\r\n }\r\n})\r\nexport default _router\r\n","const global_data = {\n local_username: \"\",\n}\nexport { global_data };","const state=()=>({\n products:[],\n provider:{}\n})\n\nexport default {\n namespaced:true,\n state\n}","import Vue from \"vue\"\r\nimport Vuex from \"vuex\"\r\nimport createPersistedState from \"vuex-persistedstate\"\r\n// -- import * as _ from \"lodash-es\"\r\nimport * as biz_data_helper from \"../shared/biz_data_helper\"\r\nimport cars from \"./modules/cars\"\r\n\r\nVue.use(Vuex)\r\n\r\nconst debug = process.env.NODE_ENV !== \"production\"\r\n// const _is_production = window.location.host.indexOf(\"cpspcloud\") > -1;\r\n\r\nexport default new Vuex.Store({\r\n state: {\r\n biz_data: {\r\n userInfo: {\r\n last_plant_setting: {}\r\n },\r\n plantSetting: {},\r\n baseData: {},\r\n templateData: {},\r\n Relation: {},\r\n kvData: {},\r\n all_fields_list: []\r\n },\r\n is_production: debug,\r\n //col-setting\r\n selectOrderByItems: [],\r\n selectColHeader: [], //存放列名显示 items\r\n allhearder: [],\r\n },\r\n mutations: {\r\n init_biz_data(state, data_info) {\r\n biz_data_helper.init_biz_data(state, data_info)\r\n },\r\n add_biz_data(state, data_info) {\r\n biz_data_helper.add_biz_data(state, data_info)\r\n },\r\n remove_biz_data(state, data_info) {\r\n biz_data_helper.remove_biz_data(state, data_info)\r\n },\r\n update_biz_data(state, data_info) {\r\n biz_data_helper.update_biz_data(state, data_info)\r\n },\r\n },\r\n\r\n modules: {\r\n cars\r\n },\r\n plugins: [\r\n createPersistedState({\r\n key: \"cpsp-store\",\r\n storage: window.sessionStorage,\r\n paths: [\r\n // \"biz_data.userInfo\",\r\n // \"biz_data.plantSetting\",\r\n // \"biz_data.baseData\",\r\n // \"biz_data.Relation\",\r\n // \"cars\"\r\n ]\r\n })\r\n ],\r\n strict: debug\r\n})\r\n","import Vue from 'vue'\nlet MyPlugin = {}\n// 定义全局指令\nexport default MyPlugin.install = function(vue, options) {\n // loadmore 是定义的指令 名称 , 使用时 用 v-loadmore = \"dosomethingFun or data\"\n Vue.directive('loadmore', {\n // bind只调用一次,指令第一次绑定到元素时调用。在这里可以进行一次性的初始化设置\n bind(el, binding) {\n // 获取element-ui定义好的scroll盒子 Select 选择器的下拉盒子\n const SELECTWRAP_DOM = el.querySelector('.el-select-dropdown .el-select-dropdown__wrap')\n SELECTWRAP_DOM.addEventListener('scroll', function() {\n // 判断滚动到底部\n const CONDITION = this.scrollHeight - this.scrollTop <= this.clientHeight\n if (CONDITION) {\n // binding.value 是指令的绑定值,该值可能是字符串,数字、函数\n // binding.value() 表示执行 v-loadmore 绑定的函数\n binding.value()\n }\n })\n }\n })\n}","import Vue from \"vue\";\nimport store from \"../store\";\n\nexport default {\n\n async checkOwnPrivileges(code_arr) {\n let v = new Vue()\n let privileges = store.state.biz_data.userInfo.user_roles_privileges.privileges;\n let _bool = true;\n let msgs = [];\n let str = '';\n _.each(code_arr, t => {\n let _index = _.findIndex(privileges, {\n code: t\n });\n if (_index < 0) {\n _bool = false;\n //msgs.push(t);\n str += '
' + t + '
'\n }\n });\n if (!_bool) {\n v.$message({\n dangerouslyUseHTMLString: true,\n message: '
' + v.$t(\"notify.not_privileges_content_admin\") + '
' + str,\n type: 'error',\n showClose: true,\n duration: 0,\n customClass: 'zZindex'\n });\n }\n return _bool\n },\n\n}\n\n","// The Vue build version to load with the `import` command\r\n// (runtime-only or standalone) has been set in webpack.base.conf with an alias.\r\n\r\n// console.log(_.map([], (x) => { return x }))\r\n\r\nimport { BootstrapVue, BootstrapVueIcons } from \"bootstrap-vue\"\r\n// import \"core-js/es6/promise\"\r\n// import \"core-js/es6/string\"\r\n// import \"core-js/es7/array\"\r\nimport * as _datejs from \"date-fns\"\r\nimport scriptLoader from \"script-loader\"\r\nimport Vue from \"vue\"\r\nimport App from \"./App\"\r\nimport mixin from \"./mixins/MixinBase\"\r\nimport router from \"./router\"\r\n\r\n// console.log(_.map([], (x) => { return x }))\r\n\r\n// todo\r\nimport Element from \"element-ui\"\r\nimport \"element-ui/lib/theme-chalk/index.css\"\r\nimport \"./assets/cpspCss/cpsp.css\"\r\nimport \"./assets/myCss/Theme.css\"\r\nimport \"./assets/myCss/navStyle.css\"\r\nimport \"./assets/myCss/secpStyle.css\"\r\nimport \"./assets/myFonts/iconfont.css\"\r\nimport * as global from \"./shared/global\"\r\nimport i18n from \"./shared/i18n\"\r\nimport store from \"./store\"\r\n\r\nimport Print from \"vue-print-nb\"\r\nimport VueResize from \"vue-resize\"\r\nimport \"vue-resize/dist/vue-resize.css\"\r\nimport scroll from \"vue-seamless-scroll\" //滚动\r\n\r\nimport directives from \"./shared/directives\" //el-select\r\nimport checkP from \"./shared/privilegeCheck\"\r\n\r\nVue.use(Element, { size: \"mini\", i18n: (key, value) => i18n.t(key, value) })\r\nVue.use(VueResize)\r\nVue.use(BootstrapVue)\r\nVue.use(BootstrapVueIcons)\r\nVue.mixin(mixin) ///全局混入\r\nVue.use(Print) //vue 打印\r\nVue.use(scroll) //走马灯滚动条\r\nVue.use(scriptLoader)\r\nVue.use(directives)\r\n\r\nconst event_bus = new Vue()\r\nVue.prototype.$event_bus = event_bus\r\nVue.prototype.$date = _datejs //日期处理工具\r\nVue.prototype.$global = global\r\nVue.prototype.$checkP = checkP\r\n\r\n/* eslint-disable no-new */\r\nnew Vue({\r\n el: \"#app\",\r\n i18n,\r\n store,\r\n router,\r\n template: \"\",\r\n components: {\r\n App\r\n }\r\n});\r\n\r\n","import md5 from \"blueimp-md5\"\r\nimport * as _date from \"date-fns\"\r\nimport { parseISO } from \"date-fns/fp\"\r\n// -- import * as _ from \"lodash-es\"\r\nimport numbro from \"numbro\"\r\n\r\nexport const merge = function (\r\n targetObject,\r\n sourceObject,\r\n createPropertyWhenNotExists\r\n) {\r\n if (createPropertyWhenNotExists) {\r\n _.each(sourceObject, (v, k) => {\r\n targetObject[k] = v\r\n })\r\n } else {\r\n _.each(sourceObject, (v, k) => {\r\n if (targetObject.hasOwnProperty(k)) targetObject[k] = v\r\n })\r\n }\r\n\r\n return targetObject\r\n}\r\n\r\nexport const findIndexAll = function (array, search_by) {\r\n let indexes = []\r\n let index = _.findIndex(array, search_by)\r\n while (index !== -1) {\r\n indexes.unshift(index)\r\n index = _.findIndex(array, search_by, index + 1)\r\n }\r\n return indexes\r\n}\r\n\r\nexport const display_number_value = function (value, _precise = 0) {\r\n if (!_.isNumber(value)) return \"\"\r\n if (_precise === undefined || _precise === 0) {\r\n return numbro(value).format({ thousandSeparated: true })\r\n } else {\r\n if (value == null) {\r\n //value == 0\r\n return numbro.zeroFormat(\"\")\r\n } else {\r\n return numbro(value).format({\r\n thousandSeparated: true,\r\n trimMantissa: true,\r\n mantissa: _precise\r\n })\r\n }\r\n }\r\n}\r\n\r\nexport const display_value = function (type, value, _precise = 0) {\r\n if (type === \"integer\" || type === \"number\") {\r\n return display_number_value(value, _precise)\r\n } else if (type === \"datetime\") {\r\n if (_.isNull(value) || _.isEmpty(value)) {\r\n return \"\"\r\n } else {\r\n if (typeof value == \"string\") {\r\n return _date.format(new Date(value), \"yyyy-MM-dd HH:mm:ss\")\r\n }\r\n return _date.format(parseISO(value), \"yyyy-MM-dd HH:mm:ss\")\r\n }\r\n } else if (type === \"date\") {\r\n if (_.isNull(value) || _.isEmpty(value)) {\r\n return \"\"\r\n } else {\r\n if (typeof value == \"string\") {\r\n return _date.format(new Date(value), \"yyyy-MM-dd\")\r\n }\r\n return _date.format(parseISO(value), \"yyyy-MM-dd\")\r\n }\r\n } else if (_.isNull(value)) return \"\"\r\n return value\r\n}\r\n\r\nexport const display_options_value = function (value, options) {\r\n let option = _.find(options, { value })\r\n if (option) return option.label\r\n return \"\"\r\n}\r\n\r\nexport const goto = function (vm, name, query) {\r\n vm.$router.push({ name, query })\r\n}\r\n\r\nexport const get_cache_key = function (object) {\r\n let keys = _.keys(object)\r\n let sortedKeys = keys.sort(function (a, b) {\r\n if (a > b) {\r\n return 1\r\n }\r\n if (b > a) {\r\n return -1\r\n }\r\n return 0\r\n })\r\n let s = _.map(sortedKeys, k => {\r\n let v = object[k]\r\n return `${k}:${v}`\r\n })\r\n let t = s.join(\".\")\r\n // console.log(t)\r\n return md5(t)\r\n}\r\n","export const data = {\r\n access_token: \"access_token\",\r\n pub_guest_token: \"pub_guest_token\",\r\n guest_info: \"guest_info\",\r\n plant_idx: \"plant_idx\",\r\n last_login_account: \"last_login_username\",\r\n locale: \"locale\",\r\n version: \"version\",\r\n selectColHeader: \"selectColHeader\",\r\n allhearder: \"allhearder\"\r\n};\r\nexport const get = function (k) {\r\n if (localStorage.getItem(k)) return localStorage.getItem(k);\r\n};\r\nexport const set = function (k, v) {\r\n return localStorage.setItem(k, v);\r\n};\r\nexport const remove = function (k) {\r\n return localStorage.removeItem(k);\r\n};\r\nexport const clear = function () {\r\n localStorage.clear();\r\n};\r\n","import Vue from \"vue\"\r\nimport VueI18n from \"vue-i18n\"\r\nimport enLocale from \"element-ui/lib/locale/lang/en\"\r\nimport zhLocale from \"element-ui/lib/locale/lang/zh-CN\"\r\nimport * as api from \"./api\"\r\nimport apiPath from \"./apiPath\"\r\nimport * as base_url from \"./base_url\"\r\n// -- import * as _ from \"lodash-es\"\r\nimport zh from \"../../public/locales/zh-CN.json\"\r\nimport en from \"../../public/locales/en.json\"\r\n\r\nVue.use(VueI18n)\r\nconst i18n = new VueI18n({\r\n locale: localStorage.getItem(\"locale\") || \"zh-CN\", // 语言标识\r\n fallbackLocale: 'zh-CN',// 当语言不存在时;使用默认的语言\r\n messages: {\r\n \"zh-CN\": zhLocale,\r\n \"en\": enLocale\r\n }\r\n})\r\n\r\n// 异步加载语言包\r\nconst loadLanguageAsync = async function (locale, _i18n) {\r\n i18n.locale = locale\r\n let lang_data = {}\r\n // let _result_lang = await api.query_async({\r\n // url: apiPath.language,\r\n // parameters: { langname: locale },\r\n // method: \"get\"\r\n // });\r\n\r\n // console.log(_result_lang)\r\n // if (_result_lang && _result_lang[0].result && _result_lang[0].result.data) {\r\n // lang_data = _result_lang[0].result.data;\r\n // }\r\n switch (locale) {\r\n case \"zh-CN\": lang_data = zh; break\r\n case \"en\": lang_data = en; break\r\n }\r\n if (!_.isEmpty(lang_data)) {\r\n let lang_exists = i18n.getLocaleMessage(locale)\r\n i18n.setLocaleMessage(locale, Object.assign(lang_exists, lang_data))\r\n }\r\n}\r\n\r\n// 单独获取语言包\r\nconst getAloneLanguageAsync = function (locale, code) {\r\n i18n.locale = locale\r\n let lang_data = {}\r\n switch (locale) {\r\n case \"zh-CN\": lang_data = zh; break\r\n case \"en\": lang_data = en; break\r\n }\r\n return lang_data[code]\r\n}\r\n\r\nVue.prototype.$loadLanguageAsync = loadLanguageAsync\r\nVue.prototype.$getAloneLanguageAsync = getAloneLanguageAsync\r\n\r\nexport default i18n\r\n","// -- import * as _ from \"lodash-es\"\nimport * as _date from \"date-fns\"\nimport * as api from \"../shared/api\"\nimport apiPath from \"../shared/apiPath\"\nimport * as biz_data_helper from \"../shared/biz_data_helper\"\nimport * as SalesOrderController from \"./sd/SalesOrderController\"\n\nconst dictionary = {\n email_form: [\n {\n key: \"Notifier_Purch\",\n label: \"邮件通知(采购)\",\n value: \"\"\n },\n {\n key: \"Notifier_Sales\",\n label: \"邮件通知(销售)\",\n value: \"\"\n },\n {\n key: \"Notifier_TPM\",\n label: \"邮件通知(TPM)\",\n value: \"\"\n },\n {\n key: \"Notifier_Route\",\n label: \"邮件通知(工艺)\",\n value: \"\"\n },\n {\n key: \"Notifier_Quote\",\n label: \"邮件通知(报价)\",\n value: \"\"\n },\n {\n key: \"Notifier_Plan\",\n label: \"邮件通知(主计划)\",\n value: \"\"\n },\n {\n key: \"Notifier_Dev\",\n label: \"邮件通知(研发)\",\n value: \"\"\n },\n {\n key: \"Notifier_Proofing_Purch_Distributed\",\n label: \"邮件通知(打样报价采购预分配后)\",\n value: \"\"\n },\n {\n key: \"Notifier_Proofing_TPM_Distributed\",\n label: \"邮件通知(打样分配完成后)\",\n value: \"\"\n }\n ]\n}\nfunction formatDate(_dateTime, format_type = \"yyyy-MM-dd\") {\n if (_.isDate(_dateTime)) {\n return _date.format(_dateTime, format_type)\n } else if (_.isString(_dateTime)) {\n return _date.format(_date.parseISO(_dateTime), format_type)\n } else {\n return \"\"\n }\n}\nconst methods = {\n ///发送、取消邮件\n async sendOrCancelNotify(type, _data) {\n console.log(_data)\n let query_settings = []\n if (type == \"add\") {\n _.each(_data, t => {\n // let _p = {\n // category: \"\",\n // idx: t.idx,\n // notify_type: t.,\n // subject: \"\",\n // content: \"\"\n // }\n query_settings.push({\n url: apiPath.email.add_notify,\n parameters: t,\n method: \"post\"\n })\n })\n } else {\n _.each(_data, t => {\n query_settings.push({\n url: apiPath.email.cancel_notify,\n parameters: t,\n method: \"post\"\n })\n })\n }\n let data = await api.query_all_async(query_settings)\n if (data) {\n return data[0].result.data.Success\n } else {\n return false\n }\n },\n ///get usernames\n getUserNameFromRole(rolses, t, fromApprover, toApprover, isApproved, isShowApprover) {\n if (isApproved && !isShowApprover) {\n t[toApprover] = \"\"\n } else if (rolses.length > 0) {\n let _rn_data = []\n _.each(rolses, d => {\n if (!_.isNull(t[fromApprover]) && t[fromApprover]) {\n let _approver = t[fromApprover].split(\",\")[0]\n if (\n t[fromApprover].split(\",\").length > 2 &&\n toApprover.indexOf(\"Up_\") > -1\n ) {\n _approver = t[fromApprover].split(\",\")[2]\n }\n if (d.role_code == _approver) {\n _rn_data.push(d.username)\n } else {\n t[toApprover] = _approver\n }\n }\n })\n if (_rn_data && _rn_data.length > 0) {\n t[toApprover] = _rn_data.join(\",\")\n }\n }\n },\n ///获取服务器时间\n async getServerDateTime() {\n const code_biz_data = new biz_data_helper.base_entity_helper(\n \"getServerDateTime\",\n {},\n {}\n )\n let result = await code_biz_data\n .execAction({\n params: {},\n fields: [\"now\", \"today\"]\n })\n .run()\n\n if (\n result &&\n result[0].result &&\n result[0].result.data &&\n result[0].result.data.ActionResult &&\n result[0].result.data.ActionResult.Result &&\n result[0].result.data.ActionResult.Result.Data.length > 0\n ) {\n return result[0].result.data.ActionResult.Result.Data[0][0]\n } else {\n return null\n }\n },\n ///判断日期是否早于当前服务日期\n async checkIsBeforeCurrentDate(_date) {\n let _date_r = await methods.getServerDateTime()\n if (\n new Date(formatDate(_date_r.today)) >\n new Date(formatDate(_date))\n ) {\n return false\n }\n return true\n },\n ///修改邮件发送状态\n async updateEmailSendState(_type, list) {\n const update_email_state_biz_data = new biz_data_helper.base_entity_helper(\n \"update_email_send_state\",\n {},\n {}\n )\n let _params = []\n _.each(list, t => {\n _params.push({\n type: _type,\n id: t.id\n })\n })\n\n let result = await update_email_state_biz_data\n .execAction({\n params: _params\n })\n .run()\n\n if (\n result &&\n result[0].result &&\n result[0].result.data &&\n result[0].result.data.ActionResult &&\n result[0].result.data.ActionResult.Result &&\n result[0].result.data.ActionResult.Result.Data.length > 0\n ) {\n return result[0].result.data.ActionResult.Result.Data\n } else {\n return null\n }\n },\n ///判断非自己创建不能修改\n checkIfCanModifyOrder(_this, t) {\n if (\n t.create_by &&\n t.create_by != _this.$store.state.biz_data.userInfo.user_id\n ) {\n _this.msgToasts(_this.$t(\"notify.not_created_by_yourself\"))\n return false\n }\n return true\n },\n ///检查审批权限\n async checkApprovePrivilige(_params, _this) {\n let _check_list = []\n let _approveStatusIdList = []\n let _roles = []\n\n if (_this.$store.state.biz_data.userInfo.user_roles_privileges.roles) {\n _roles = _.map(\n _this.$store.state.biz_data.userInfo.user_roles_privileges.roles,\n \"code\"\n )\n }\n for (var i in _params.list) {\n let _at = await SalesOrderController.methods.getApproveStatus({\n DocumentType: _params.DocumentType,\n ApproveType: _params.approve_type,\n ItemId: _params.list[i].id\n })\n let _is_ok = true\n for (var j in _at[0]) {\n let at = _at[0][j]\n if (at) {\n if (\n _.includes(_roles, at.Approver) ||\n _this.$global.global_data.local_username == at.Approver ||\n _params.isNotCheckPrivilage\n ) {\n _is_ok = false\n }\n ///要修改的approveStatus的id\n if (_params.action_state) {\n if (\n _.includes(_roles, at.Approver) ||\n _this.$global.global_data.local_username == at.Approver\n ) {\n _approveStatusIdList.push(at)\n }\n } else {\n if (\n _.includes(_roles, at.Approver) ||\n _this.$global.global_data.local_username == at.Approver ||\n _params.list[i].create_by ==\n _this.$store.state.biz_data.userInfo.user_id\n ) {\n if (at.ApproveLevel != 1 && at.Approver == \"\") {\n } else {\n _approveStatusIdList.push(at)\n }\n }\n }\n }\n }\n if (_is_ok && !_.includes(_check_list, _params.list[i].id)) {\n _check_list.push(_params.list[i].id)\n }\n }\n return {\n notPriviligeIdList: _check_list,\n approveStatusIdList: _approveStatusIdList\n }\n },\n ///单独检查前端权限\n checkPrivilige(_this, p_code, p_text) {\n // console.log(_this.$store.state.biz_data.userInfo)\n\n let user_roles_list =\n _this.$store.state.biz_data.userInfo.user_roles_privileges.roles\n let _role_index = _.findIndex(user_roles_list, { code: \"admin\" })\n if (_role_index > -1) {\n return true\n }\n\n let user_pri_list =\n _this.$store.state.biz_data.userInfo.user_roles_privileges.privileges\n let _index = _.findIndex(user_pri_list, { code: p_code })\n if (_index < 0) {\n let str = \"\"\n str = '
' + p_code + \"-\" + p_text + \"
\"\n _this.$message({\n dangerouslyUseHTMLString: true,\n message:\n '
' +\n _this.$t(\"notify.not_privileges_content_admin\") +\n \"
\" +\n str,\n type: \"error\",\n showClose: true,\n duration: 0,\n customClass: \"zZindex\",\n onClose: function () { }\n })\n return false\n }\n return true\n },\n ///记录ax失败参数及原因\n async createAXErorrLog(code, p) {\n let error_actions = []\n let biz_data = new biz_data_helper.base_entity_helper(\n \"create_ax_error_log\",\n {},\n {}\n )\n error_actions.push(\n biz_data\n .execAction({\n params: {\n code: code,\n message: p.params, //\n error: p.error_msg,\n result: p.result //\n },\n fields: [\"r\"]\n })\n .action({})\n )\n console.log(error_actions)\n await api.query_batch({\n actions: error_actions\n })\n }\n}\nasync function getEmailDataFromSqlCode(params, sql_code) {\n let biz_data = new biz_data_helper.base_entity_helper(sql_code, {}, {})\n let actions = []\n actions.push(biz_data.execAction({ params: params, fields: [\"id\"] }).action({}))\n let result = await api.query_batch({ actions: actions })\n if (\n result &&\n result.data &&\n result.data.BatchResult &&\n result.data.BatchResult.Actions &&\n result.data.BatchResult.Actions.length > 0\n ) {\n return result.data.BatchResult.Actions[0].Result.Data\n }\n return null\n}\nasync function handleEmailNotify(params, action_type, _this, allRoleUsers, sql_code, email_users = []) {\n let rt = await getEmailDataFromSqlCode(params, sql_code)\n if (rt && rt.length > 0) {\n if (action_type == \"quote_apply\") {\n _.forEach(rt, (item) => {\n _.forEach(item, (t) => {\n switch (t.IsHomemade) {\n case 0: t.IsHomemade = '否'; break\n case 1: t.IsHomemade = '是'; break\n case 2: t.IsHomemade = '纯外协'; break\n }\n })\n })\n let e_data = []\n let order_nums = []\n handleData_QuoteApply(rt, e_data, null, order_nums)\n let em = { subject: \"\", content: \"\" }\n let template_item = _.find(_this.$store.state.biz_data.templateData.templates, { notify_type: \"quote_application\" })\n if (template_item) {\n em.subject = `${template_item.subject},编号:${_.join(order_nums, \",\")}`\n var fn = template.compile(template_item.content)\n for (var i in e_data) {\n em.content += `${fn(e_data[i])}
`\n }\n }\n return em\n }\n else if (action_type === 'quote_order_confirm') {\n rt = _.groupBy(_.map(rt, (t) => { return t[0] }), \"QuotationTaskNum\")\n }\n else if (action_type === 'quote_proofing_complated') {\n rt = [_.flattenDeep(rt)]\n }\n await handleEmailData(rt, action_type, _this, allRoleUsers, email_users)\n }\n else return null\n}\nasync function handleEmailData(rt, action_type, _this, allRoleUsers, email_users) {\n let notify_list = []\n for (var i in rt) {\n ///1、邮件通知销售公司\n if (action_type == \"quote_order_closed\") {\n //因为接口返回数据不统一造成该处要特殊处理\n email_users = []\n email_users.push(i)\n }\n handleSalesCompanyEmail(notify_list, rt[i], action_type, allRoleUsers, _this, email_users)\n\n ///2、邮件通知(制造商)\n let made_data = []\n // _.each(rt[i], (t) => {\n // if (t.Manufacturer && t.Manufacturer != \"\") {\n // let Manufacturer_split = _.split(t.Manufacturer, \",\")\n // for (var j in Manufacturer_split) {\n // if (t.dataAreaId != Manufacturer_split[j])\n // made_data.push({ dataAreaId: Manufacturer_split[j], data: t })\n // }\n // }\n // })\n handleMadeCompanyEmail(notify_list, made_data, action_type, allRoleUsers, _this)\n }\n if (notify_list.length > 0) {\n let _rsult = await methods.sendOrCancelNotify(\"add\", notify_list)\n if (!_.isNull(_rsult))\n _this.msgToasts(_this.$t(\"notify.email_send_success\"), \"success\")\n }\n}\n///邮件通知销售公司\nfunction handleSalesCompanyEmail(notify_list, email_data, action_type, allRoleUsers, _this, email_users) {\n if (email_data.length > 0) {\n let e_users = []\n let e_data = {}\n let template_code = \"\"\n //报价申请\n if (action_type == \"quote_apply\") {\n ///旧邮件处理方式\n // {\n // let ecodes = [\n // \"Notifier_Sales\",\n // \"Notifier_TPM\",\n // \"Notifier_Route\",\n // \"Notifier_Quote\",\n // \"Notifier_Plan\",\n // \"Notifier_Dev\" //研发\n // ]\n // e_users = handleEusers(email_data[0], allRoleUsers, _this, ecodes)\n // e_data = { title: \"\", data: [], items: [] }\n // handleData_QuoteApply(email_data, e_data)\n // template_code = \"quote_application\"\n // }\n }\n //创建询价单\n else if (action_type == \"consult_order\") {\n e_users = email_users\n e_data = { title: \"\", data: [], items: [] }\n handleData_ConsultApply(email_data, e_data)\n template_code = \"consult_order\"\n }\n //BOM及Route完成\n else if (action_type == \"bom_and_route\") {\n let ecodes = [\"Notifier_Quote\", \"Notifier_Plan\"]\n e_users = handleEusers(email_data[0], allRoleUsers, _this, ecodes)\n e_data = { title: \"\", data: [], items: [] }\n handleData_BomAndRoute(email_data, e_data)\n template_code = \"bom_and_route_complated\"\n }\n //采购询价预分配完成后邮件通知(大货)\n else if (action_type == \"consult_complated\") {\n let ecodes = [\"Notifier_Quote\", \"Notifier_Plan\"]\n e_users = handleEusers(email_data[0], allRoleUsers, _this, ecodes)\n e_data = {}\n handleData_ConsultComplate(email_data, e_data)\n template_code = \"consult_complated\"\n }\n //主计划分配完成\n else if (action_type == \"quote_distribution_complated\") {\n if (email_data[0].fcGetSQODApprover && email_data[0].fcGetSQODApprover != \"\") {\n let approver = email_data[0].fcGetSQODApprover.split(\",\")[0]\n ///判断是否角色\n if (_.findIndex(allRoleUsers, { role_code: approver }) > -1) {\n let role_users = _.filter(allRoleUsers, { role_code: approver })\n if (role_users.length > 0) {\n const role_usernames = _.map(role_users, (m) => { return m.username })\n e_users = _.union(e_users, role_usernames)\n }\n }\n else if (_.findIndex(e_users, approver) < 0) {\n e_users.push(approver)\n }\n }\n e_data = { title: \"\", data: [], items: [] }\n handleData_DistributionComplate(email_data, e_data)\n template_code = \"quote_distribution_complated\"\n }\n //主计划的审批完成\n else if (action_type == \"quote_distribution_approved\") {\n let ecodes = [\"Notifier_Quote\", \"Notifier_Plan\"]\n e_users = handleEusers(email_data[0], allRoleUsers, _this, ecodes)\n e_data = {\n title: email_data[0].QuotationTaskNum,\n url: window.location.protocol + \"//\" + window.location.host + \"/sq/QuotationOrderConfirm\",\n url_name: window.location.host + \"/sq/QuotationOrderConfirm\"\n }\n template_code = \"quote_distribution_approved\"\n }\n //加权成本确认\n else if (action_type == \"quote_order_confirm\") {\n e_users = email_users\n e_data = { title: \"\", data: [], items: [] }\n handleData_QuoteOrderConfirm(email_data, e_data)\n template_code = \"quote_weighted_cost_confirmed\"\n }\n //报价单审核\n else if (action_type == \"quote_order_approved\") {\n e_users.push(email_data[0].create_by_username)\n e_users = _.uniq(e_users)\n e_data = {\n title: `报价申请编号为${email_data[0].QuotationTaskNum} 已审批通过,请通过以下链接登录到报价调整窗体进行查询`,\n url: `${window.location.protocol}//${window.location.host}/sq/QuotationTask?tab=2`,\n url_name: `${window.location.host}/sq/QuotationTask`\n }\n if (_this.email_action_type == \"refused\") {\n e_data.title = `报价申请编号为${email_data[0].QuotationTaskNum}已退回,请通过以下链接登录到报价调整窗体进行处理`\n }\n handleData_QuoteOrderApproved(email_data, e_data, _this)\n template_code = \"quote_complated\"\n }\n //关闭报价申请\n else if (action_type == \"quote_order_closed\") {\n e_users = _.union(e_users, email_users)\n e_users = _.uniq(e_users)\n e_data = {\n url: `${window.location.protocol}//${window.location.host}/sq/QuotationTask?tab=3`,\n url_name: `${window.location.host}/sq/QuotationTask`,\n items: email_data\n }\n template_code = \"quote_closed\"\n }\n //采购询价预分配完成后邮件通知(打样,注:邮件模板和大货相同)\n else if (action_type == \"consult_complated_proofing\") {\n let ecodes = [\"Notifier_Proofing_Purch_Distributed\"]\n e_users = handleEusers(email_data[0], allRoleUsers, _this, ecodes)\n e_data = {}\n handleData_ConsultComplate(email_data, e_data)\n template_code = \"consult_complated\"\n }\n //打样报价分配完成\n else if (action_type == \"quote_proofing_complated\") {\n let ecodes = [\"Notifier_Proofing_TPM_Distributed\"]\n e_users = handleEusers(email_data[0], allRoleUsers, _this, ecodes)\n _.forEach(email_data, (t) => {\n switch (t.IsHomemade) {\n case 0: t.IsHomemade = '否'; break\n case 1: t.IsHomemade = '是'; break\n case 2: t.IsHomemade = '纯外协'; break\n }\n })\n e_data = {\n url: `${window.location.protocol}//${window.location.host}/sq/QuotationOrderProofing`,\n url_name: `${window.location.host}/sq/QuotationOrderProofing`,\n items: email_data\n }\n template_code = \"quote_proofing_complated\"\n }\n notify_list.push(excuteSendAction(e_users, e_data, _this, template_code))\n }\n}\n///邮件通知(制造商)\nfunction handleMadeCompanyEmail(notify_list, made_data, action_type, allRoleUsers, _this) {\n\n if (made_data.length > 0 && (action_type == \"quote_apply\" || action_type == \"bom_and_route\")) {\n let ecodes = [\"Notifier_Route\"]\n let group_made_data = _.groupBy(made_data, \"dataAreaId\")\n\n ///根据每个制造商发送邮件\n for (var k in group_made_data) {\n let notify_item = { e_users: [], e_data: { title: \"\", data: [], items: [] }, template_code: \"\" }\n notify_item.e_users = handleEusers({\n dataAreaId: k,\n EmailNotifierJson_Cust: group_made_data[k][0].data.EmailNotifierJson_Cust\n }, allRoleUsers, _this, ecodes)\n //报价申请\n if (action_type == \"quote_apply\") {\n notify_item.template_code = \"quote_application\"\n handleData_QuoteApply(_.map(group_made_data[k], (t) => { return t.data }), notify_item.e_data, k)\n }\n //BOM及Route完成\n else if (action_type == \"bom_and_route\") {\n notify_item.template_code = \"bom_and_route_complated\"\n handleData_BomAndRoute(_.map(group_made_data[k], (t) => { return t.data }), notify_item.e_data, k)\n }\n notify_list.push(excuteSendAction(notify_item.e_users, notify_item.e_data, _this, notify_item.template_code))\n }\n }\n}\n///发送邮件\nfunction excuteSendAction(e_users, e_data, _this, template_code) {\n let templates = _this.$store.state.biz_data.templateData.templates\n let send_to = {}\n for (var i in e_users) {\n send_to[e_users[i]] = \"\"\n }\n let em = {\n category: template_code,\n idx: \"\",\n itemId: 0,\n notify_type: template_code,\n subject: \"\",\n content: \"\",\n SendTo: send_to\n }\n\n if (templates) {\n let m = _.find(templates, { notify_type: template_code })\n if (m) {\n var fn = template.compile(m.content)\n em.content = fn(e_data)\n em.subject = m.subject\n }\n }\n if (_this.email_action_type == \"refused\" && template_code == \"quote_complated\")\n em.subject = \"CPSP报价已退回\"\n return em\n}\nfunction handleEusers(email_item, allRoleUsers, _this, email_codes) {\n let et = []\n let e_users = []\n let item = {\n dataAreaId: email_item.dataAreaId,\n EmailNotifierJson_Cust: email_item.EmailNotifierJson_Cust\n }\n ///客户的相关邮件设置\n if (item.EmailNotifierJson_Cust && item.EmailNotifierJson_Cust != \"\") {\n let et1 = JSON.parse(item.EmailNotifierJson_Cust)\n et = et1\n }\n console.log(et)\n ///销售公司、制造商相关邮件设置\n let EmailNotifierJson_Sales = _.find(\n _this.$store.state.biz_data.baseData.CompanyInfo,\n { DataArea: item.dataAreaId }\n )\n if (\n EmailNotifierJson_Sales &&\n EmailNotifierJson_Sales.EmailNotifierJson &&\n EmailNotifierJson_Sales.EmailNotifierJson != \"\"\n ) {\n let et1 = JSON.parse(EmailNotifierJson_Sales.EmailNotifierJson)\n _.each(et1, t => {\n if (_.findIndex(et, mt => t.key == mt.key && mt.value && mt.value.length > 0) < 0)\n et[t.key] = t\n })\n }\n let eut = getEmailUser(et, email_codes, allRoleUsers)\n e_users = _.union(e_users, eut)\n return e_users\n}\nfunction getEmailUser(et, email_codes, allRoleUsers) {\n let e_users = []\n for (var k in et) {\n let t = et[k]\n if (_.includes(email_codes, t.key) && t.value && t.value.length > 0) {\n for (var i in t.value) {\n let isRole = _.findIndex(allRoleUsers, { role_code: t.value[i] }) > -1\n if (isRole) {\n let role_users = _.filter(allRoleUsers, { role_code: t.value[i] })\n if (role_users.length > 0)\n e_users = _.union(\n e_users,\n _.map(role_users, m => {\n return m.username\n })\n )\n } else if (!_.includes(e_users, t.value[i])) {\n e_users.push(t.value[i])\n }\n }\n }\n }\n return e_users\n}\n///处理报价申请邮件数据\nfunction handleData_QuoteApply(rt, e_data, made_company, order_nums) {\n _.each(rt, (k) => {\n if (k && k.length > 0) {\n let e_data_item = { title: \"\", data: [], items: [] }\n e_data_item.title = \"CPSP报价申请:\" + k[0].QuotationTaskNum + \"已创建\"\n if (!_.includes(order_nums, k[0].QuotationTaskNum)) order_nums.push(k[0].QuotationTaskNum)\n let _t = _.clone(k[0])\n let m = {\n id: _t.id,\n QuotationTaskNum: _t.QuotationTaskNum,\n CustAccount: _t.CustAccount,\n CustName: _t.CustName,\n dataAreaId: _t.dataAreaId,\n CompanyName: _t.CompanyName,\n ComplateDate: !_t.ComplateDate ? \"\" : formatDate(_t.ComplateDate),\n Description: _t.Description,\n create_by_username: _t.create_by_username,\n create_at: !_t.create_at ? \"\" : formatDate(_t.create_at),\n fcCheckSQOApproved: _t.fcCheckSQOApproved,\n SQOApprover: _t.SQOApprover\n }\n _.each(k, t => {\n t.DemandDate = !t.DemandDate ? \"\" : formatDate(_t.DemandDate)\n if (made_company) t.Manufacturer = made_company\n e_data_item.items.push(t)\n })\n e_data_item.data.push(m)\n e_data.push(e_data_item)\n }\n })\n}\n///处理创建询价单邮件数据\nfunction handleData_ConsultApply(rt, e_data) {\n //数据\n let m = {}\n _.each(rt, t => {\n e_data.title = \"CPSP报价申请:\" + t.QuotationTaskNum + \" 询价申请\" + t.ConsultQuoteApplyNum + \"已创建\"\n m = {\n id: t.id,\n ConsultQuoteApplyNum: t.ConsultQuoteApplyNum,\n Description: t.Description,\n create_by_username: t.create_by_username,\n create_at: formatDate(t.create_at, \"yyyy-MM-dd\"),\n is_valid: t.is_valid ? \"是\" : \"否\"\n }\n e_data.items.push(t)\n })\n if (e_data.data.length == 0) e_data.data.push(m)\n}\n///处理BOM及Route完成邮件数据\nfunction handleData_BomAndRoute(rt, e_data, made_company) {\n let item = rt[0]\n e_data.title =\n \"CPSP报价申请:\" + item.QuotationTaskNum + \" BOM及工艺已经确定\"\n let BomData = JSON.parse(item.BomID)\n let RouteData = JSON.parse(item.RouteID)\n ///Bom\n _.each(BomData, t => {\n let m = {\n LineNum: item.LineNum,\n ItemId: item.ItemId,\n NameAlias: item.NameAlias,\n Manufacturer: item.dataAreaId,\n BomConfirmState: item.BomConfirmState ? \"是\" : \"否\",\n AccountNum: t.AccountNum,\n AccountName: t.AccountName,\n BomId: t.BomID,\n BomName: t.BomVersionName\n }\n if (made_company) m.Manufacturer = made_company\n e_data.items.push(m)\n })\n\n ///工艺\n e_data.items1 = []\n _.each(RouteData, t => {\n let m = {\n LineNum: item.LineNum,\n ItemId: item.ItemId,\n NameAlias: item.NameAlias,\n Manufacturer: item.dataAreaId,\n RouteConfirmState: item.RouteConfirmState ? \"是\" : \"否\",\n AccountNum: t.AccountNum,\n AccountName: t.AccountName,\n RouteId: t.RouteID,\n RouteName: t.RouteVersionName\n }\n if (made_company) m.Manufacturer = made_company\n e_data.items1.push(m)\n })\n}\n///处理供应商报价启用邮件数据\nfunction handleData_ConsultComplate(rt, e_data) {\n let _lineNum = 1\n let qt_group_dt = _.groupBy(rt, 'QuotationTaskNum')\n let email_list = []\n for (var key in qt_group_dt) {\n let m = { title: '', data: [] }\n m.title = \"CPSP报价申请:\" + key + \" 采购询价已完成\"\n let item_group_dt = _.groupBy(qt_group_dt[key], \"LineNum\")\n for (var j in item_group_dt) {\n let data_items = { main: {}, items: [] }\n data_items.main = item_group_dt[j][0]\n for (var k in item_group_dt[j]) {\n let t = item_group_dt[j][k]\n if (t.DistributionRatio && t.DistributionRatio != \"\") {\n let dm = _.find(JSON.parse(t.DistributionRatio), { ItemId: t.ItemId })\n if (dm) {\n let _totalCost = t.ToQty ? t.ToQty : t.FromQty\n data_items.items.push({\n LineNum: _lineNum++,\n AccountNum: t.AccountNum,\n AccountName: t.AccountName,\n Price_WOTax: t.Price_WOTax,\n TotalCost: _.round(((_totalCost * _.toNumber(dm.DistributionRatio)) / 100) * t.Price_WOTax, 6),\n DistributionRatio: dm.DistributionRatio,\n FromQty: t.FromQty,\n ToQty: t.ToQty,\n Qty: _.round((_totalCost * _.toNumber(dm.DistributionRatio)) / 100, 6)\n })\n }\n }\n }\n if (data_items.items.length > 0)\n m.data.push(data_items)\n }\n email_list.push(m)\n }\n e_data.list = email_list\n}\n///处理主计划的审批完成邮件数据\nfunction handleData_DistributionComplate(rt, e_data) {\n e_data.data = []\n _.each(rt, t => {\n e_data.title = \"CPSP主计划分配已完成\"\n e_data.url = window.location.protocol + \"//\" + window.location.host + \"/sq/QTHDistribution?tab=2\"\n e_data.url_name = window.location.host + \"/sq/QTHDistribution\"\n e_data.items.push(t)\n })\n}\n///处理加权成本确认邮件数据\nfunction handleData_QuoteOrderConfirm(rt, e_data) {\n e_data.data = []\n _.each(rt, t => {\n e_data.title = \"CPSP加权成本已确认\"\n e_data.url = window.location.protocol + \"//\" + window.location.host + \"/sq/QuotationOrder\"\n e_data.url_name = window.location.host + \"/sq/QuotationOrder\"\n e_data.items.push(t)\n })\n}\n///处理报价单审核邮件数据\nfunction handleData_QuoteOrderApproved(rt, e_data, _this) {\n //数据\n let m = {}\n _.each(rt, t => {\n // e_data.title = \"CPSP报价申请:\" + t.QuotationTaskNum + \"已创建\";\n t.create_at = formatDate(t.create_at, \"yyyy-MM-dd\")\n let dm = _.find(_this.$store.state.biz_data.baseData.CompanyInfo, {\n DataArea: t.dataAreaId\n })\n if (dm) t.CompanyName = dm.CompanyName\n m = {\n id: t.QuotationTaskId,\n QuotationTaskNum: t.QuotationTaskNum,\n CustAccount: t.CustAccount,\n CustName: t.CustName,\n dataAreaId: t.dataAreaId,\n CompanyName: t.CompanyName,\n ComplateDate: formatDate(t.ComplateDate, \"yyyy-MM-dd\"),\n Description: t.Description,\n create_by_username: t.create_by_username,\n create_at: t.create_at\n }\n t.LineNum = t.QuotationTaskLineNum\n e_data.items.push(t)\n })\n if (e_data.data.length == 0) e_data.data.push(m)\n}\nexport { dictionary, excuteSendAction, formatDate, handleEmailData, handleEmailNotify, methods }\n\n","import * as baseUrl from \"../shared/base_url\";\r\nconst _base_url = baseUrl.base_url;\r\nexport default {\r\n admin: {\r\n get_user_list: _base_url + \"/Admin/GetUserList\", //get\r\n get_role_list: _base_url + \"/Admin/GetRoleList\", //get\r\n get_role_root_list: _base_url + \"/Admin/GetRoleRootList\", //get\r\n get_privilege_list: _base_url + \"/Admin/GetPrivilegeList\", //get\r\n get_role_own_privilege_list: _base_url + \"/Admin/GetRoleOwnPrivilegeList/\", //get /Admin/GetRoleOwnPrivilegeList/{roleId}\r\n get_role_all_privilege_list: _base_url + \"/Admin/GetRoleAllPrivilegeList/\", //get /Admin/GetRoleAllPrivilegeList/{roleId}\r\n get_role_children_list: _base_url + \"/Admin/GetRoleChildren/\", //get /Admin​/GetRoleChildren​/{roleId}\r\n get_role_parents_list: _base_url + \"/Admin/GetRoleParents/\", //get /Admin/GetRoleParents/{roleId}\r\n get_role_users_list: _base_url + \"/Admin/GetRoleUsers/\", //get /Admin/GetRoleUsers/{roleId}\r\n get_user_roles_list: _base_url + \"/Admin/GetUserRoles/\", //get /Admin/GetUserRoles/{specUserId}\r\n add_role_child: _base_url + \"/Admin/AddRoleChild\", //post /Admin/AddRoleChild\r\n remove_role_child: _base_url + \"/Admin/RemoveRoleChild\", //post /Admin/AddRoleChild\r\n update_role: _base_url + \"/Admin/UpdateRole\", //post update role\r\n add_role: _base_url + \"/Admin/AddRole\", //post add role\r\n get_user_privilege_list: _base_url + \"/Admin/GetUserPrivileges/\", // get /Admin/GetUserPrivileges/{specUserId}\r\n block_user: _base_url + \"/Admin/BlockUser\", //post block users\r\n active_user: _base_url + \"/Admin/ActiveUser\", //post active users\r\n remove_role: _base_url + \"/Admin/RemoveRole\", //post remove role\r\n add_role_own_privileges: _base_url + \"/Admin/AddRoleOwnPrivileges\", //post add_role_own_privileges\r\n remove_role_own_privileges: _base_url + \"/Admin/RemoveRoleOwnPrivileges\", //post remove_role_own_privileges\r\n update_privileges: _base_url + \"/Admin/UpdatePrivilege\", //post UpdatePrivilege\r\n add_role_user: _base_url + \"/Admin/AddRoleUser\", //post /Admin/AddRoleUser\r\n remove_role_user: _base_url + \"/Admin/RemoveRoleUser\", //post /Admin/RemoveRoleUser\r\n get_notify_types: _base_url + \"/Admin/GetNotifyTypes/\", //get get_notify_types\r\n get_notify_users: _base_url + \"/Admin/GetNotifyUsers\", //get get_notify_types\r\n add_notify_type: _base_url + \"/Admin/AddNotifyType\", //post add_notify_type\r\n update_notify_type: _base_url + \"/Admin/UpdateNotifyType\", //post update_notify_type\r\n remove_notify_type: _base_url + \"/Admin/DeleteNotifyType\", //post remove_notify_type\r\n add_notify_users: _base_url + \"/Admin/AddNotifyUser\", //post add_notify_users\r\n remove_notify_user: _base_url + \"/Admin/DeleteNotifyUser\", //post remove_notify_user\r\n\r\n add_user: _base_url + \"/Admin/AddUser\",\r\n update_user: _base_url + \"/Admin/UpdateUser\",\r\n reset_pwd: _base_url + \"/Admin/ResetPassword\",\r\n CleanRoleOwnPrivileges: _base_url + \"/Admin/CleanRoleOwnPrivileges\",\r\n },\r\n axInterface: {\r\n axInterface_invoke: _base_url + \"/AxInterface/Invoke\", //get /AxInterface/Invoke\r\n pickand_invoke: _base_url + \"/axinterface/pickandinvoke\" //get company=070&tableName=secp_sei_custtable&accountNum=100021168,\r\n },\r\n email: {\r\n email_send: _base_url + \"/Email​/Send\",\r\n get_email: _base_url + \"/Email/GetEmailNotifies\", //get\r\n add_notify: _base_url + \"/email/AddNotify\", //post category,idx,notify_type,subject,content\r\n cancel_notify: _base_url + \"/email/CancelNotify\" //post idx:xxx,notify_type:xxx\r\n },\r\n updated: {\r\n file_upload: _base_url + \"/Upload/Files/upload/files\", //post\r\n img_upload: _base_url + \"/Upload/Images/upload/images\", //post\r\n excel_upload: _base_url + \"/Upload/Excel\" //get\r\n },\r\n plant: {\r\n base_data: _base_url + \"/data/base_data\",\r\n },\r\n common: {\r\n get_setting: _base_url + \"/common/get_setting/\"\r\n },\r\n user: {\r\n login: _base_url + \"/User/Login/\",\r\n get_userinfo: _base_url + \"/user/get_userinfo/\",\r\n profile: _base_url + \"/user/profile\",\r\n reset_pwd: _base_url + \"/user/ResetPassword\",\r\n login_uri: _base_url + \"/user/LoginUri\",\r\n },\r\n pub: {\r\n get_pub_token: _base_url + \"/Pub/get_pub_token/\", //get /Pub/get_pub_token/{idx}/{pub_pwd}\r\n get_pub_data: _base_url + \"/Pub/get_pub_data/\", //get /Pub/get_pub_data/{idx}/{contentType}\r\n save_pub_data: _base_url + \"/Pub/save_pub_data/\" //post /Pub/save_pub_data/{idx}/{contentType}\r\n },\r\n log: {\r\n logs: _base_url + \"/Log/Logs\",\r\n sys_logs: _base_url + \"/Log/SysLogs\"\r\n },\r\n language: _base_url + \"/language/langsetting\",\r\n file: {\r\n upload: _base_url + \"/upload/filestoazure\",\r\n delete: _base_url + \"/upload/DeleteFromAzure\",\r\n downLoad: _base_url + \"/upload/downloadfromazure\",\r\n update: _base_url + \"/upload/UpdateDescription\",\r\n upload_file: _base_url + \"/upload/files\", ///普通文件上传\r\n file_list: _base_url + \"/upload/filelist\", ///获取上传的普通文件\r\n upload_delete: _base_url + \"/upload/delete\", ///删除上传的普通文件\r\n }\r\n};\r\n","export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&id=3081a714&prod&lang=scss\"","export const base_url = apiConfig.url;\n// export const base_url = \"https://test.cpspcloud.com/api\";\n// export const base_url = \"https://www.cpspcloud.com/api\";\n"],"sourceRoot":""}