{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/api/department.js","webpack:///./src/store/modules/department.js","webpack:///./src/App.vue?5fe8","webpack:///./src/api/auth.js","webpack:///./src/api/material.js","webpack:///./src/api/duizhangdan.js","webpack:///./src/App.vue","webpack:///src/App.vue","webpack:///./src/App.vue?8264","webpack:///./src/App.vue?8c96","webpack:///./src/store/modules/auth.js","webpack:///./src/api/company.js","webpack:///./src/store/modules/company.js","webpack:///./src/api/user.js","webpack:///./src/store/modules/user.js","webpack:///./src/store/modules/material.js","webpack:///./src/api/factory.js","webpack:///./src/store/modules/factory.js","webpack:///./src/api/purchase.js","webpack:///./src/store/modules/purchase.js","webpack:///./src/api/recipeSemi.js","webpack:///./src/store/modules/recipeSemi.js","webpack:///./src/api/recipeSales.js","webpack:///./src/store/modules/recipeSales.js","webpack:///./src/api/sales.js","webpack:///./src/api/caclSalesCost.js","webpack:///./src/store/modules/caclSalesCost.js","webpack:///./src/store/modules/sales.js","webpack:///./src/api/sacCompany.js","webpack:///./src/store/modules/sacCompany.js","webpack:///./src/api/sac.js","webpack:///./src/store/modules/sac.js","webpack:///./src/api/tankRental.js","webpack:///./src/store/modules/tankRental.js","webpack:///./src/api/salesOrder.js","webpack:///./src/store/modules/salesOrder.js","webpack:///./src/api/vehicle.js","webpack:///./src/store/modules/vehicle.js","webpack:///./src/api/delivery.js","webpack:///./src/store/modules/delivery.js","webpack:///./src/api/salesOrderComment.js","webpack:///./src/store/modules/salesOrderComment.js","webpack:///./src/api/salesRecord.js","webpack:///./src/store/modules/salesRecord.js","webpack:///./src/api/customerPurview.js","webpack:///./src/store/modules/customerPurview.js","webpack:///./src/api/technicalService.js","webpack:///./src/store/modules/technicalService.js","webpack:///./src/api/customerDevelop.js","webpack:///./src/store/modules/customerDevelop.js","webpack:///./src/api/caclMLCost.js","webpack:///./src/store/modules/caclMLCost.js","webpack:///./src/api/salesPriceRecord.js","webpack:///./src/store/modules/salesPriceRecord.js","webpack:///./src/api/salesTransCostRecord.js","webpack:///./src/store/modules/salesTransCostRecord.js","webpack:///./src/api/customerContact.js","webpack:///./src/store/modules/customerContact.js","webpack:///./src/api/salesPromoFeeRecord.js","webpack:///./src/store/modules/salesPromoFeeRecord.js","webpack:///./src/api/semiItem.js","webpack:///./src/store/modules/semiItem.js","webpack:///./src/api/calcSemiCost.js","webpack:///./src/store/modules/calcSemiCost.js","webpack:///./src/api/storageTank.js","webpack:///./src/store/modules/storageTank.js","webpack:///./src/api/salesStat.js","webpack:///./src/store/modules/salesStat.js","webpack:///./src/store/modules/socketIo/receiveIO.js","webpack:///./src/api/bankAccount.js","webpack:///./src/store/modules/bankAccount.js","webpack:///./src/api/task.js","webpack:///./src/store/modules/task.js","webpack:///./src/api/comment.js","webpack:///./src/store/modules/comment.js","webpack:///./src/api/payment.js","webpack:///./src/store/modules/payment.js","webpack:///./src/api/supplier.js","webpack:///./src/store/modules/supplier.js","webpack:///./src/api/entity.js","webpack:///./src/store/modules/entity.js","webpack:///./src/api/outStore.js","webpack:///./src/store/modules/outStore.js","webpack:///./src/api/bill.js","webpack:///./src/store/modules/bill.js","webpack:///./src/store/modules/pages/customerAnalyze.js","webpack:///./src/api/customerQZUpdateForm.js","webpack:///./src/store/modules/customerQZUpdateForm.js","webpack:///./src/store/modules/duizhangdan.js","webpack:///./src/store/index.js","webpack:///./src/main.js","webpack:///./src/api/receive.js","webpack:///./src/store/modules/receive.js","webpack:///./src/router/index.js","webpack:///./src/utils/axios.js","webpack:///./src/store/modules/customer.js","webpack:///./src/api/customer.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","getDepartmentList","payload","axios","params","createDepartment","post","updateDepartment","id","put","state","departmentList","getters","getDepartmentById","index","findIndex","x","_id","getTreeDepartment","disabled","root","title","expand","children","convertedDepart","map","trans","depart","parent","finalDepart","v","forEach","getTreeSelectDepartment","selectArray","checked","includes","getDepartmentByType","filter","actions","commit","department","newDepartment","mutations","SETDEPARTMENT","ADDNEWDEPARTMENT","unshift","UPDATEDEPARTMENT","Vue","set","REMOVEDEPARTMENT","departmentId","currentDepartment","namespaced","login","async","logout","getMyInfo","resetMyPassword","getMaterials","updateMaterial","createMaterial","getMaterialById","getRawMaterialWithPrice","getSemiMaterialWithCost","createWater","getDuizhangdan","createDuizhangdan","updateDuizhangdan","deleteDuizhangdan","delete","render","_vm","this","_c","_self","attrs","staticRenderFns","acknowledge","require","sockets","log","receive_create","socketAddReceive","$Message","info","createdBy","receive_update","socketUpdateReceive","so_create","_data$","so_update","methods","mapActions","setSalesOrderMessage","planArrivedAt","dayjs","$store","computed","mapState","user","auth","currentUser","salesOrder","$socket","token","localStorage","getItem","needResetPassword","$router","component","mobile","simpleRole","superAdmin","initial","setItem","removeItem","password","oldPassword","res","SET_CURRENT_USER","RESET","getCompanyList","getCompanyByID","updateCompany","createCompany","deleteCompany","companyList","totalCounts","company","newCompany","newcCompany","SETCOMPANYLIST","ADDNEWCOMPANY","UPDATECOMPANY","getUserList","getSimpleUserList","createUser","updateUser","adminChangeUserPassword","bannedUser","recover","adminResetUserPassword","userList","userOption","simpleUserList","getUserById","find","newUser","SETUSER","SET_SIMPLE_USER","ADDNEWUSER","UPDATEUSER","REMOVEUSER","userId","stat","materials","productMateral","getMaterialByType","semiMaterial","rawMaterial","water","materialList","material","api","SETMATERIALS","resData","ADDNEWMATERIAL","UPDATEMATERIAL","getFactorys","createFactory","updateFactory","factoryList","getFactoryById","getFactoryNameById","f","factory","newFctory","newFactory","SETFACTORY","ADDNEWFACTORY","UPDATEFACTORY","getPurchases","getRawMaterialLatestPurchases","createPurchase","updatePurchase","deletePurchase","purchase","latestPurchases","getPurchaseById","calcPurchaseList","newPurchase","SETPURCHASE","SET_LATEST_PURCHASE","ADDNEWPURCHASE","concat","REMOVEPURCHASE","purchaseId","getRecipeSemis","getRecipeSemisById","createRecipeSemi","updateRecipeSemi","recipeSemiList","recipeSemis","detail","ratio","newRecipe","newRecipeSemi","SETRECIPESEMIS","recipe","SETMATERIALLIST","UPDATE_RECIPESEMI","recipeSemi","getRecipeSales","createRecipeSales","getRecipeSalesById","getRecipeContainMaterial","bulkReplaceRecipeMaterial","getSalesCurrentRecipeProd","verifyRecipeSales","updateRecipeSales","setProdRecipeSales","deleteRecipeSales","getRecipeSalesWithMaterialDetail","recipeSalesList","prodRecipeSales","recipeSales","newRecipeSales","SETRECIPESALES","prevRecipeSales","Map","allDetail","has","SET_MATERIAL_SEARCH_RECIPESALES","UPDATE_RECIPESALES","status","BULK_REPLACE_RECIPE_MATERIAL","DELETE_RECIPESALES","getSales","getSalesById","createSales","updateSales","updatePriceSales","bindSalesWithItemCodeSales","getSalesLatestCost","getCalcSalesCost","getCalcSalesCostByID","getCalcSalesCostAnalyzeByID","calcSalesCostById","calcAllSalesCost","salesLatestCost","calcCost","salesCostAnalyze","calcCostTotal","success","sales","row","SET_SALES_LATEST_COST","isPriceEdit","isTransPriceEdit","isPromoFeeEdit","isJDEdit","calcSalesCost","promoFee","promoFeeSum","reduce","fee","SET_CALC_COST","receiveList","UPDATE_SALES_LATEST_COST","UPDATE_ONE_SALES_LATEST_COST","SET_SALES_COST_ANALYZE","salesCostList","sale","salesById","newSales","updateSalesWithCostAction","SETSALES","salesList","ADDNEWSALES","UPDATESALES","UPDATE_SALES_WITH_COST","caclSalesCost","salesCost","allowSales","prePaidOnly","isLimitVolPerMonth","limitVolPerMonth","getSacCompanys","updateSacCompany","createSacCompany","sacCompanys","getSacCompanyById","sacCompany","newSacCompany","deleteSacCompany","SETSACCOMPAYNS","sacCompanyList","ADDNEWSACCOMPANY","UPDATESACCOMPANY","getSacsList","getSacById","updateSac","createSac","deleteSac","createSacSales","updateSacSales","createSacRecipe","updateSacRecipe","getSacRecipeList","sacsList","sac","getLocalSacById","recipeList","newSac","newSacSales","newSacRecipe","SETSACSLIST","SETSAC","ADDNEWSACLIST","UPDATESACLIST","getTankRentalList","getTankRentalByID","updateTankRental","createTankRental","deleteTankRental","tankRentalList","tankRental","SETTANKRENTALLIST","ADDTANKRENTAL","DELETETANKRENTAL","UPDATETANKRENTAL","getManyFactorySalesOrder","createSalesOrder","createSalesOrderMulti","updateSalesOrder","cancelSalesOrder","getSalesOrderList","changeSalesOrderProgress","getSalesOrderByFactoryId","salesOrderReturn","salesOrderVolByDay","salesOrderVolByMonth","getRecommendSalesOrder","getSalesOrderProfit","calcSalesOrderProfit","coverSalesOrdersCalc","factorySalesOrderList","salesOrderList","salesOrderProfitList","salesOrderProfitTotalCounts","getSalesOrderById","newSalesOrder","factorySalesOrder","salesOrderVolByDayList","salesOrderVolByMonthList","SETPLANARRIVEDAT","SET_FACTORY_SALES_ORDER_LIST","SETSALESORDERLIST","salesOrderSortByindexInDay","SET_SALES_ORDER_TABLE","UPDATEFACTORYSALESORDERLIST","UPDATEFACTORYSALESORDERDELIVERY","delivery","salesOrderIndex","factoryIndex","fIndex","sIndex","UPDATE_SALES_ORDER_LIST","salesOrderSort","CANCEL_SALESORDER","UPDATESALESOREDER","statistic","volPlan","CANCELSALEPRODSORDER","UPDATE_SALES_PROD_OREDER","SALES_OREDER_RETURN","SET_SALES_ORDER_PROFIT_LIST","array","sort","a","b","producedAtPlan","toDate","indexInDay","getVehicleList","getVehicleByID","updateVehicle","createVehicle","deleteVehicle","vehicleList","getVehicleById","vehicle","SETVEHICLELIST","ADDNEWVEHICLE","UPDATEVEHICLE","getDelivery","updateDelivery","createDelivery","getDeliveryHistory","createDeliveryBySalesOrder","getDeliveryById","newDelivery","deliveryList","SETDELIVERY","getSalesOrderCommentList","updateSalesOrderComment","createSalesOrderComment","salesOrderCommentList","newSalesOrderComment","newcSalesOrderComment","SETSALESORDERCOMMENTLIST","ADDNEWSALESORDERCOMMENT","salesOrderComment","UPDATESALESORDERCOMMENT","SalesOrderComment","getSalesRecordList","getSalesRecordTags","getSalesRecordByID","updateSalesRecord","createSalesRecord","salesRecordList","salesRecordTags","tags","salesRecord","SETSALESRECORDLIST","SETSALESRECORDTAGS","ADDSALESRECORD","UPDATESALESRECORD","createCustomerPurview","customerPurviews","newCustomerPurview","ADDNEWCUSTOMERPURVIEW","customerPurview","getTechService","createTechService","updateTechService","assignTechPerson","getTechServiceById","techServiceVerify","getTechServiceStat","techServices","techServicesStat","statTotalCounts","techServiceList","newTechService","currentTechService","SETTECHSERVICELIST","SET_TECHSERVICE_STAT_LIST","ADDNEWTECHSERVICE","techService","UPDATE_TECHNICAL","getCustomerDevelop","getCustomerDevelopById","creatCustomerDevelop","customerDevelopOperate","deleteCustomerDevelop","customerDevelops","customerDevelopOne","customerDevelopForCustomer","customerDevelopById","getApplyingCustomerDevelop","customerDevelopList","newCustomerDevelop","SETCUSTOMERDEVELOPLIST","SET_CUSTOMERDEVELOPLIST_FORCUSTOMER","customerDevelop","CUSTOMERDEVOPERATE","DELETECUSTOMERDEVELOP","getMLLatestCost","getMLLatestCostDetail","caclAllML","caclOneML","mlLatestCostList","currentMLLatestCost","GET_ML_LATEST_COST","GET_ML_LATEST_COST_Detail","createSalesPrice","getSalesPrice","deleteSalesPrice","salesPriceRecordList","newSalesPrice","form","rePrice","price","reSales","startActiveDate","SET_SALES_PRICE_RECORD","CREATE_SALES_PRICE_RECORD","reCalcSalesCost","DELETE_SALES_PRICE","createSalesTransPrice","getSalesTransPrice","deleteTransCost","salesTransCostRecordList","newSalesTransPrice","cost","transCost","DELETE_TRANS_COST","createCustomerContact","getCustomerContact","getCustomerContactById","updateCustomerContact","deleteCustomerContact","customerContactList","selectCustomerContact","newCustomerContact","customerContact","CREATE_CUSTOMER_CONTACT","SET_CUSTOMER_CONTACT_RECORD","SET_SELECT_CUSTOMER_CONTACT","UPDATE_CUSTOMER_CONTACT","DELETE_CUSTOMER_CONTACT","createSalesPromoFeeRecord","createNoContactSalesPromoFeeRecord","getSalesPromoFee","getCurrentPromoFee","setActivcePromoFee","updatePromoFee","salesPromoFeeRecordList","currentPromoFeeList","currentTotalCounts","newSalesPromoFee","newActivcePromoFee","SET_SALES_PROMOFEE_RECORD","_checked","SET_CURRENT_PROMOFEE_RECORD","promoFeeList","CREATE_SALES_PROMOFEE_RECORD","CREATE_NO_CONTACT_SALES_PROMOFEE_RECORD","SET_ACTIVE_PROMOFEE","activePromoFee","UPDATE_SALES_PROMOFEE_RECORD","getSemiItem","getSemiProduceFactory","createSemiItem","setSemiItemProdrecipe","updateSemiItem","semiItemList","newSemiItem","SET_SEMIITEMLIST","ADD_NEW_SEMIITEM","semiItem","UPDATE_SEMIITEM","getSemiLatestCost","getSemiLatestCostDetail","calcSemiCost","semiItemCostList","currentSemiItemCost","query","_","omit","update","GET_SEMI_LATEST_COST","GET_SEMI_LATEST_COST_Detail","UPDATE_SEMI_LATEST_COST","getStorageTankList","createStorageTank","storageTankList","storageTank","SETSTORAGETANKLIST","ADD_STORAGETANK","getSalesStatVol","getSalesStatReceive","getMySalesStatSum","getStatViewB","getStatViewC","postSalesStatVol","postSalesStatReceive","addReceiveTask","setReceiveTask","autoSetReceiveTask","getDuiZhangDan","salesStatVol","volTotalCounts","salesStatReceive","receiveTotalCounts","salesStatSum","statViewB","statViewBCounts","statViewC","statViewCCounts","duizhangdan","statVol","statReceive","salesStat","year","month","SET_SALES_STAT_VOL","SET_SALES_STAT_RECEIVE","customerList","SET_MY_SALES_STAT_SUM","SET_STAT_VIEW_B","SET_STAT_VIEW_C","SET_DUIZHANGDAN","list","POST_SALES_STAT_VOL","estSalesVolume","POST_SALES_STAT_RECEIVE","customer","estReceive","UPDATE_RECIVE_TASK","updateStat","arTable","receiveTaskSum","vue","emit","newReceive","updateData","socketAddReceiveAction","socketUpdateReceiveAction","SET_RECEIVE","ADD_NEWRECEIVE","receive","UPDATE_RECEIVE","DELETE_RECEIVE","getBankAccount","getSimpleBankAccount","createAccount","updateBankAccount","bankAccount","simpleBankAccount","newAccount","SET_RECEIVE_ACCOUNT","SET_SIMPLE_RECEIVE_ACCOUNT","ADD_ACCOUNT","UPDATE_RECEIVE_ACCOUNT","getTaskList","getTaskByID","updateTask","createTask","deleteTask","createTaskRecord","taskId","updateTaskRecord","taskRecordId","deleteTaskRecord","setUserReceiveTask","getUserReceiveTask","notifyUserReceiveTaskWW","taskList","task","recordId","SET_TASKLIST","ADD_TASK","DELETE_TASK","UPDATE_TASK","editError","TEMP_UPDATE_TASK","localTask","UPDATE_TASK_ERROR","getCommentList","createComment","commentList","newComment","SET_COMMENT_LIST","ADD_COMMENT","comment","getPayment","createPayment","updatePayment","deletePayment","paymentList","newPayment","payment","SET_PAYMENT","UPDATE_PAYMENT","ADD_PAYMENT","DELETE_PAYMENT","getSupplier","createSupplier","updateSupplier","deleteSupplier","supplierList","newSupplier","SET_SUPPLIER","UPDATE_SUPPLIER","supplier","ADD_SUPPLIER","DELETE_SUPPLIER","getEntity","createEntity","updateEntity","deleteEntity","entityList","newEntity","SET_ENTITY","UPDATE_ENTITY","entity","ADD_ENTITY","DELETE_ENTITY","getOutStore","getOutStoreStat","loadOutStoreInSalesStat","outStoreStat","SET_OUT_STORE","outstore","SET_OUT_STORE_STAT","getBill","createBill","updateBill","deleteBill","billList","bill","getBillByID","SET_BILL_LIST","ADD_BILL","DELETE_BILL","UPDATE_BILL","selectedCustomer","monthlyVolStat","monthlyReceiveStat","sixtyDayOrders","artableDate","monthlyVolStatChartDataSource","finalData","volStat","volPlanSum","toFixed","monthlyReceiveStatChartDataSource","amount","getCustomerFullDetailById","SET_SELECTED_CUSTOMER","SET_CUSTOMER_DETAIL","getCustomerQZUpdateForm","createCustomerQZUpdateForm","reviewCustomerQZUpdateForm","deleteCustomerQZUpdateForm","removeBannedUserQZ","customerQZUpdateFormList","newCustomerQZUpdateForm","SET_CUSTOMER_QZ_UPDATE_FORM","updateFormList","ADD_CUSTOMER_QZ_UPDATE_FORM","customerQZUpdateForm","customerQZList","qz","comissionDivDev","comissionDivMaintain","comissionDivPayment","regionalCharger","salesVisibleMember","techVisibleMember","devSales","maintainSales","paymentSales","DELETE_CUSTOMER_QZ_UPDATE_FORM","duizhangdanList","getDuizhangdanByID","SET_DUIZHANGDAN_LIST","ADD_DUIZHANGDAN","DELETE_DUIZHANGDAN","UPDATE_DUIZHANGDAN","use","Vuex","Store","technicalService","caclMLCost","salesPriceRecord","salesTransCostRecord","salesPromoFeeRecord","receiveIO","outStore","customerAnalyze","IS_PROD","process","config","productionTip","ViewUI","Print","baseURL","VueSocketIO","debug","connection","SocketIO","reconnect","vuex","store","actionPrefix","mutationPrefix","vueThis","router","h","App","$mount","getReceive","createReceive","updateReceive","getReceiveById","deleteReceive","invalidReceive","getReceiveStat","getCustomerDefaultReceiveInfo","receiveStatList","billsList","UPDATE_LOCAL_RECEIVE","INVALID_RECEIVE","invalid","ADD_RECEIVE","SET_RECEIVE_STAT","Home","CustomerPage","CustomerAnalyzePage","CustomerDetail","SignupPage","SignupCompanyPage","LandingPage","LoginPage","UserManagementPage","RawMaterialPage","MaterialSearchAndReplace","FactoryPage","SemiMaterialPage","SalesPage","EditSalesPlan","EditReceivePlan","SalesPlanPage","ProductPage","CompanyPage","TankRental","SalesOrderPage","VehiclePage","SalesProdOrderPage","InstrumentPanel","SalesRecord","TechnicalServicePage","CustomerDevelopPage","ChangePassword","CaclPurchasePage","CaclMLCostPage","CaclSalesCost","RecipePage","SemiItemPage","CustomerPermissionsPage","CaclSalesCostAnalyze","SalesContract","SemiContrastPage","StorageTankPage","ReceivePage","JDItemCodeCheckPage","BankAccountPage","TaskPage","CalcCostPage","PaymentPage","SupplierPage","EntityPage","ImportFileProcessPage","ReceiveChartPage","OutStoreStatPage","TechServiceStatPage","BillPage","ImportARTablePage","ImportCustomerQZTablePage","CustomerContactPage","SalesPromoFeePage","ReceiveTaskPage","SalesOrderVolPag","CustomerQzUpdateFormReview","ReceiveTaskStatPage","DuizhangdanListPage","SalesOrderProfitPage","SalesOrderTablePage","Router","originalPush","location","catch","routeList","path","meta","namezh","routes","redirect","hidden","beforeEach","to","from","next","publicPages","authRequired","loggedIn","instance","withCredentials","headers","interceptors","response","customers","currentCustomerQz","customersSimple","bulkCustomers","detailCustomers","userCustomerRolesCount","detailCustomersId","selectCustomer","getDetailCustomerById","getCustomerList","getCustomerSimpleList","getAllCustomerList","getCustomerById","getUserCustomerRolesCount","setDetailCustomersIdAction","saveSelectCustomerAction","newCustomer","createCustomer","updateCustomer","updateManyCustomer","deleteCustomer","getCustomerQZList","getCustomerQzById","reloadCustomerStatus","SETCUSTOMERLIST","SET_CUSTOMER_SIMPLE_LIST","SET_ALL_CUSTOMER_LIST","SET_USER_CUSTOMER_ROLES_COUNT","SETCANAPPLYCUSTOMERLIST","SETBULKCUSTOMERLIST","SETDETAILCUSTOMERLIST","SETDETAILCUSTOMERSID","SET_SELECT_CUSTOMER","ADDNEWCUSTOMER","UPDATECUSTOMER","UPDATEMANYCUSTOMER","DELETECUSTOMER","SET_CUSTOMER_QZ_LIST","SET_CURRENT_CUSTOMER_QZ"],"mappings":"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","file":"js/app.3d8ead2e.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-011f923f\":\"2d9f184f\",\"chunk-03181b8f\":\"fca91d0b\",\"chunk-05c6838d\":\"0b45959c\",\"chunk-09ec32b4\":\"0b212941\",\"chunk-0ba58549\":\"462eeb11\",\"chunk-0bbcc6b0\":\"23789540\",\"chunk-0efefd20\":\"77836777\",\"chunk-1367420a\":\"f0582ca2\",\"chunk-14bdf350\":\"d3c256a8\",\"chunk-16a88b3d\":\"a2adc1c6\",\"chunk-18142587\":\"0049f108\",\"chunk-1a94f3d4\":\"297afc6b\",\"chunk-1c6b858e\":\"7c357621\",\"chunk-1d206c07\":\"2bd7e039\",\"chunk-1e4d7ea7\":\"fd0b3c7d\",\"chunk-2af8569a\":\"6ae0d776\",\"chunk-2d0e4fe5\":\"95594d01\",\"chunk-1eb2e787\":\"7ac9b088\",\"chunk-1f621e0e\":\"97eb48de\",\"chunk-1fdfe830\":\"d538fdb8\",\"chunk-22a8956e\":\"fbd5f1de\",\"chunk-240b31d6\":\"ea1d85a1\",\"chunk-24a08a30\":\"d2b2f961\",\"chunk-2b2e3faa\":\"f4567126\",\"chunk-2c4a1d10\":\"ed391587\",\"chunk-2d0aa746\":\"e86cd53a\",\"chunk-2d0b61a2\":\"90a23c7a\",\"chunk-3429b39b\":\"3ca7b56f\",\"chunk-54920ec7\":\"ede394a9\",\"chunk-2d0da92e\":\"eabd9147\",\"chunk-2f27ee98\":\"b790af2b\",\"chunk-0e94d102\":\"28e11b92\",\"chunk-2f89047e\":\"6f4c2d83\",\"chunk-1427adb8\":\"b50c79b2\",\"chunk-35e51133\":\"2e8b8221\",\"chunk-4d18e0c4\":\"7278ae4a\",\"chunk-40268a09\":\"fea592cd\",\"chunk-4e78f6ca\":\"257db78c\",\"chunk-48403002\":\"f1ca526e\",\"chunk-ea65c0fa\":\"0f79652e\",\"chunk-54c2e709\":\"469c7d8e\",\"chunk-335c3dea\":\"261fdbb2\",\"chunk-36bd558a\":\"56aee945\",\"chunk-3e6124a1\":\"aa0e3e08\",\"chunk-2d2307dd\":\"b3d4e32c\",\"chunk-4244be52\":\"332b0221\",\"chunk-452a7a3e\":\"1635f7cf\",\"chunk-4a6cfac2\":\"4c149a66\",\"chunk-4a6ecd6a\":\"552e0aef\",\"chunk-4c473133\":\"c9d1cc0a\",\"chunk-4c7aa67e\":\"6d4066c8\",\"chunk-4d233266\":\"e8230e08\",\"chunk-4f50db15\":\"04bf3ae0\",\"chunk-51c57cc1\":\"7483c4b4\",\"chunk-53b4a050\":\"8787b81b\",\"chunk-554cdaa6\":\"d6d01f98\",\"chunk-556b404e\":\"c1a79fc4\",\"chunk-55eb5d20\":\"627b4428\",\"chunk-611a53c3\":\"bb3a4199\",\"chunk-05625fb6\":\"ce0a161f\",\"chunk-9f843524\":\"91c7aab1\",\"chunk-62dc184f\":\"801d9e4c\",\"chunk-676978be\":\"b872218f\",\"chunk-6cd8c8fc\":\"7cc7fb77\",\"chunk-6ed6f58e\":\"e5f48a66\",\"chunk-716ab251\":\"b1ed5dbf\",\"chunk-a17a3b74\":\"eca21697\",\"chunk-b193980e\":\"5121372f\",\"chunk-bcab2f20\":\"50c16447\",\"chunk-bf5f0886\":\"4a0eafaf\",\"chunk-c7d305ce\":\"aafa148a\",\"chunk-d2592a04\":\"b38793f4\",\"chunk-dbd77394\":\"a44039dd\",\"chunk-dbddaa40\":\"56566559\",\"chunk-2d20ec06\":\"a681e816\",\"chunk-319b2a6e\":\"9cbef1f4\"}[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-011f923f\":1,\"chunk-03181b8f\":1,\"chunk-05c6838d\":1,\"chunk-09ec32b4\":1,\"chunk-0ba58549\":1,\"chunk-0bbcc6b0\":1,\"chunk-0efefd20\":1,\"chunk-1367420a\":1,\"chunk-14bdf350\":1,\"chunk-16a88b3d\":1,\"chunk-18142587\":1,\"chunk-1a94f3d4\":1,\"chunk-1c6b858e\":1,\"chunk-1d206c07\":1,\"chunk-2af8569a\":1,\"chunk-1eb2e787\":1,\"chunk-1f621e0e\":1,\"chunk-1fdfe830\":1,\"chunk-22a8956e\":1,\"chunk-240b31d6\":1,\"chunk-24a08a30\":1,\"chunk-2b2e3faa\":1,\"chunk-2c4a1d10\":1,\"chunk-3429b39b\":1,\"chunk-54920ec7\":1,\"chunk-2f27ee98\":1,\"chunk-0e94d102\":1,\"chunk-2f89047e\":1,\"chunk-1427adb8\":1,\"chunk-35e51133\":1,\"chunk-4d18e0c4\":1,\"chunk-40268a09\":1,\"chunk-4e78f6ca\":1,\"chunk-48403002\":1,\"chunk-ea65c0fa\":1,\"chunk-54c2e709\":1,\"chunk-335c3dea\":1,\"chunk-36bd558a\":1,\"chunk-3e6124a1\":1,\"chunk-4244be52\":1,\"chunk-452a7a3e\":1,\"chunk-4a6cfac2\":1,\"chunk-4a6ecd6a\":1,\"chunk-4c473133\":1,\"chunk-4c7aa67e\":1,\"chunk-4d233266\":1,\"chunk-4f50db15\":1,\"chunk-51c57cc1\":1,\"chunk-53b4a050\":1,\"chunk-554cdaa6\":1,\"chunk-556b404e\":1,\"chunk-55eb5d20\":1,\"chunk-611a53c3\":1,\"chunk-05625fb6\":1,\"chunk-9f843524\":1,\"chunk-62dc184f\":1,\"chunk-676978be\":1,\"chunk-6cd8c8fc\":1,\"chunk-6ed6f58e\":1,\"chunk-716ab251\":1,\"chunk-a17a3b74\":1,\"chunk-b193980e\":1,\"chunk-bcab2f20\":1,\"chunk-bf5f0886\":1,\"chunk-c7d305ce\":1,\"chunk-d2592a04\":1,\"chunk-dbd77394\":1,\"chunk-dbddaa40\":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-011f923f\":\"a7b7e2dd\",\"chunk-03181b8f\":\"a3149fde\",\"chunk-05c6838d\":\"4c32c07f\",\"chunk-09ec32b4\":\"c003ec84\",\"chunk-0ba58549\":\"a9a66350\",\"chunk-0bbcc6b0\":\"837a3963\",\"chunk-0efefd20\":\"f20fb425\",\"chunk-1367420a\":\"db478c5d\",\"chunk-14bdf350\":\"483505ca\",\"chunk-16a88b3d\":\"87c85b00\",\"chunk-18142587\":\"fd806922\",\"chunk-1a94f3d4\":\"aa812a80\",\"chunk-1c6b858e\":\"c87634f0\",\"chunk-1d206c07\":\"f558068f\",\"chunk-1e4d7ea7\":\"31d6cfe0\",\"chunk-2af8569a\":\"3b2bf79e\",\"chunk-2d0e4fe5\":\"31d6cfe0\",\"chunk-1eb2e787\":\"6f87793c\",\"chunk-1f621e0e\":\"12fd853b\",\"chunk-1fdfe830\":\"c92a6b77\",\"chunk-22a8956e\":\"429d1acc\",\"chunk-240b31d6\":\"d1366f72\",\"chunk-24a08a30\":\"e7f47570\",\"chunk-2b2e3faa\":\"628c4272\",\"chunk-2c4a1d10\":\"c1b828a8\",\"chunk-2d0aa746\":\"31d6cfe0\",\"chunk-2d0b61a2\":\"31d6cfe0\",\"chunk-3429b39b\":\"79cc2b8d\",\"chunk-54920ec7\":\"89843dd3\",\"chunk-2d0da92e\":\"31d6cfe0\",\"chunk-2f27ee98\":\"8fc48d97\",\"chunk-0e94d102\":\"40e9e709\",\"chunk-2f89047e\":\"05b5114d\",\"chunk-1427adb8\":\"4ab6e474\",\"chunk-35e51133\":\"2eae1ef5\",\"chunk-4d18e0c4\":\"6e5dc1fd\",\"chunk-40268a09\":\"00767b2c\",\"chunk-4e78f6ca\":\"b4f982e9\",\"chunk-48403002\":\"95233f81\",\"chunk-ea65c0fa\":\"0ba02d47\",\"chunk-54c2e709\":\"47df50b8\",\"chunk-335c3dea\":\"56c83d4e\",\"chunk-36bd558a\":\"82c7c258\",\"chunk-3e6124a1\":\"d066b58e\",\"chunk-2d2307dd\":\"31d6cfe0\",\"chunk-4244be52\":\"a3e4b569\",\"chunk-452a7a3e\":\"c63aa90e\",\"chunk-4a6cfac2\":\"c29f9430\",\"chunk-4a6ecd6a\":\"f6a8e011\",\"chunk-4c473133\":\"5138790a\",\"chunk-4c7aa67e\":\"7271aed0\",\"chunk-4d233266\":\"77fb8541\",\"chunk-4f50db15\":\"486ee8dd\",\"chunk-51c57cc1\":\"e318904b\",\"chunk-53b4a050\":\"7dd02f6a\",\"chunk-554cdaa6\":\"68430a00\",\"chunk-556b404e\":\"1ec5b8ab\",\"chunk-55eb5d20\":\"e7654285\",\"chunk-611a53c3\":\"d001fb97\",\"chunk-05625fb6\":\"e16e37a0\",\"chunk-9f843524\":\"dfd7d179\",\"chunk-62dc184f\":\"28b16ae8\",\"chunk-676978be\":\"7fa7ab15\",\"chunk-6cd8c8fc\":\"cdc01eed\",\"chunk-6ed6f58e\":\"4d6bc0b8\",\"chunk-716ab251\":\"4c1e7f78\",\"chunk-a17a3b74\":\"ec798af1\",\"chunk-b193980e\":\"57b4259a\",\"chunk-bcab2f20\":\"9112c716\",\"chunk-bf5f0886\":\"862cb6f2\",\"chunk-c7d305ce\":\"0e1239f8\",\"chunk-d2592a04\":\"589db4d2\",\"chunk-dbd77394\":\"012868de\",\"chunk-dbddaa40\":\"f8e6539b\",\"chunk-2d20ec06\":\"31d6cfe0\",\"chunk-319b2a6e\":\"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([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","/*\r\n * @Author: zjt\r\n * @Email: 13928932429@163.com\r\n * @Date: 2020-08-03 09:12:50\r\n * @LastEditTime: 2020-09-16 16:22:54\r\n * @Description: 部门api\r\n */\r\nimport axios from '@/utils/axios'\r\n\r\nexport const getDepartmentList = (payload) => {\r\n return axios.get('/department', {\r\n params: payload\r\n })\r\n}\r\n\r\nexport const createDepartment = (data) => {\r\n return axios.post(`/department`, data)\r\n}\r\n\r\nexport const updateDepartment = (id, data) => {\r\n return axios.put(`/department/${id}`, data)\r\n}","/*\r\n * @Author: zjt\r\n * @Email: 13928932429@163.com\r\n * @Date: 2020-08-03 09:04:00\r\n * @LastEditTime: 2020-10-09 14:17:38\r\n * @Description: 部门store\r\n */\r\nimport Vue from 'vue'\r\nimport {\r\n getDepartmentList,\r\n createDepartment,\r\n updateDepartment\r\n} from '@/api/department'\r\n\r\nconst state = {\r\n departmentList: []\r\n}\r\n\r\nconst getters = {\r\n getDepartmentById: (state) => (id) => {\r\n let index = state.departmentList.findIndex(x => x._id === id)\r\n return index === -1 ? null : state.departmentList[index]\r\n },\r\n getTreeDepartment: (state) => (disabled) => {\r\n const root = {\r\n title: '全部',\r\n expand: true,\r\n children: []\r\n }\r\n if (state.departmentList.length === 0) return [root]\r\n let convertedDepart = state.departmentList.map(e => {\r\n return {\r\n ...e,\r\n title: e.name,\r\n expand: true\r\n }\r\n })\r\n\r\n let trans = (depart, parent) => {\r\n let finalDepart = []\r\n\r\n for (let v of depart) {\r\n if (v.parent == parent) {\r\n finalDepart.push(v)\r\n }\r\n }\r\n\r\n finalDepart.forEach(e => {\r\n e.children = trans(convertedDepart, e._id);\r\n e.disabled = disabled && e.children.length !== 0\r\n })\r\n return finalDepart\r\n }\r\n\r\n return [{\r\n ...root,\r\n children: trans(convertedDepart),\r\n disabled\r\n }]\r\n },\r\n getTreeSelectDepartment: (state) => (disabled, selectArray) => {\r\n const root = {\r\n title: '全部',\r\n expand: true,\r\n children: []\r\n }\r\n if (state.departmentList.length === 0) return [root]\r\n let convertedDepart = state.departmentList.map(e => {\r\n return {\r\n ...e,\r\n title: e.name,\r\n expand: true\r\n }\r\n })\r\n\r\n let trans = (depart, parent) => {\r\n let finalDepart = []\r\n\r\n for (let v of depart) {\r\n if (v.parent == parent) {\r\n finalDepart.push(v)\r\n }\r\n }\r\n\r\n finalDepart.forEach(e => {\r\n e.children = trans(convertedDepart, e._id);\r\n e.disabled = disabled && e.children.length !== 0\r\n if (selectArray) e.checked = selectArray.includes(e._id)\r\n })\r\n return finalDepart\r\n }\r\n\r\n return [{\r\n ...root,\r\n children: trans(convertedDepart),\r\n disabled\r\n }]\r\n },\r\n getDepartmentByType: (state) => (type) => {\r\n return state.departmentList.filter(x => x.type[type] === true)\r\n }\r\n}\r\n\r\nconst actions = {\r\n async getDepartmentListAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const department = await getDepartmentList(payload)\r\n commit('SETDEPARTMENT', department.data)\r\n return department.data\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async createDepartmentAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const newDepartment = await createDepartment(payload)\r\n commit('ADDNEWDEPARTMENT', newDepartment.data)\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async updateDepartmentAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const newDepartment = await updateDepartment(payload.id, payload.data)\r\n commit('UPDATEDEPARTMENT', newDepartment.data)\r\n return newDepartment.data\r\n } catch (error) {\r\n throw error.message\r\n }\r\n }\r\n\r\n}\r\n\r\nconst mutations = {\r\n SETDEPARTMENT(state, payload) {\r\n state.departmentList = payload\r\n },\r\n ADDNEWDEPARTMENT(state, department) {\r\n state.departmentList.unshift(department)\r\n },\r\n UPDATEDEPARTMENT(state, department) {\r\n Vue.set(state.departmentList, state.departmentList.findIndex(x => x._id === department._id), department)\r\n },\r\n REMOVEDEPARTMENT(state, departmentId) {\r\n state.currentDepartment = state.currentDepartment.filter((e) => e._id !== departmentId)\r\n }\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n getters,\r\n actions,\r\n mutations\r\n}","export * from \"-!../node_modules/.pnpm/mini-css-extract-plugin@0.9.0_webpack@4.47.0/node_modules/mini-css-extract-plugin/dist/loader.js??ref--11-oneOf-1-0!../node_modules/.pnpm/css-loader@3.6.0_webpack@4.47.0/node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../node_modules/.pnpm/vue-loader@15.11.1_cache-loader@4.1.0_css-loader@3.6.0_vue-template-compiler@2.7.16_webpack@4.47.0/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/.pnpm/postcss-loader@3.0.0/node_modules/postcss-loader/src/index.js??ref--11-oneOf-1-2!../node_modules/.pnpm/stylus-loader@3.0.2_stylus@0.54.8/node_modules/stylus-loader/index.js??ref--11-oneOf-1-3!../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/.pnpm/vue-loader@15.11.1_cache-loader@4.1.0_css-loader@3.6.0_vue-template-compiler@2.7.16_webpack@4.47.0/node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&id=267ef6fe&prod&lang=stylus\"","/*\r\n * @Author: zjt\r\n * @Email: 13928932429@163.com\r\n * @Date: 2020-07-31 15:59:57\r\n * @LastEditTime: 2020-09-11 11:13:27\r\n * @Description: 用户api\r\n */\r\nimport axios from '@/utils/axios'\r\n\r\nexport const login = async (payload) => {\r\n return await axios.post(`/login`, payload)\r\n}\r\n\r\nexport const logout = async () => {\r\n return await axios.post(`/logout`)\r\n}\r\n\r\nexport const getMyInfo = async () => {\r\n return await axios.get('/userInfo')\r\n}\r\n\r\nexport const resetMyPassword = (data) => {\r\n return axios.put(`/reset_my_password`, data)\r\n}","/*\r\n * @Author: zjt\r\n * @Email: 13928932429@163.com\r\n * @Date: 2020-08-03 17:22:52\r\n * @LastEditTime: 2020-09-22 16:03:16\r\n * @Description: 材料api\r\n */\r\nimport axios from '@/utils/axios'\r\n\r\nexport const getMaterials = (payload) => {\r\n return axios.get('/material', {\r\n params: payload\r\n })\r\n}\r\n\r\nexport const updateMaterial = (id, data) => {\r\n return axios.put(`/material/${id}`, data)\r\n}\r\n\r\nexport const createMaterial = (data) => {\r\n return axios.post(`/material`, data)\r\n}\r\n\r\nexport const getMaterialById = (id) => {\r\n return axios.get(`/material/${id}`)\r\n}\r\n\r\nexport const getRawMaterialWithPrice = (payload) => {\r\n return axios.get('/raw_material_latest_price', {\r\n params: payload\r\n })\r\n}\r\n\r\nexport const getSemiMaterialWithCost = (payload) => {\r\n return axios.get('/semi_material_latest_cost', {\r\n params: payload\r\n })\r\n}\r\n\r\nexport const createWater = (data) => {\r\n return axios.post('/waterMaterial', data)\r\n}","import axios from '@/utils/axios'\n\nexport const getDuizhangdan = (payload) => {\n return axios.get('/duizhangdan', {\n params: payload\n })\n}\n\nexport const createDuizhangdan = (data) => {\n return axios.post('/duizhangdan', data)\n}\n\nexport const updateDuizhangdan = (id, data) => {\n return axios.put(`/duizhangdan/${id}`, data)\n}\n\nexport const deleteDuizhangdan = (id) => {\n return axios.delete(`/duizhangdan/${id}`)\n}","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{attrs:{\"id\":\"app\"}},[_c('router-view')],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }"," \r\n\r\n \r\n \r\n
\r\n\r\n\r\n\r\n","import mod from \"-!../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/.pnpm/thread-loader@2.1.3_webpack@4.47.0/node_modules/thread-loader/dist/cjs.js!../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.23.7_webpack@4.47.0/node_modules/babel-loader/lib/index.js!../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/.pnpm/vue-loader@15.11.1_cache-loader@4.1.0_css-loader@3.6.0_vue-template-compiler@2.7.16_webpack@4.47.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/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/.pnpm/thread-loader@2.1.3_webpack@4.47.0/node_modules/thread-loader/dist/cjs.js!../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.23.7_webpack@4.47.0/node_modules/babel-loader/lib/index.js!../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/.pnpm/vue-loader@15.11.1_cache-loader@4.1.0_css-loader@3.6.0_vue-template-compiler@2.7.16_webpack@4.47.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=267ef6fe\"\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=267ef6fe&prod&lang=stylus\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/.pnpm/vue-loader@15.11.1_cache-loader@4.1.0_css-loader@3.6.0_vue-template-compiler@2.7.16_webpack@4.47.0/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","/*\r\n * @Author: zjt\r\n * @Email: 13928932429@163.com\r\n * @Date: 2020-07-31 14:20:22\r\n * @LastEditTime: 2021-06-18 11:08:35\r\n * @Description: 用户store\r\n */\r\nimport {\r\n login,\r\n resetMyPassword,\r\n logout,\r\n getMyInfo\r\n} from '@/api/auth'\r\n\r\nconst state = {\r\n currentUser: {\r\n _id: undefined,\r\n name: undefined,\r\n mobile: undefined,\r\n simpleRole: [],\r\n superAdmin: undefined,\r\n initial: undefined\r\n }\r\n}\r\n\r\nconst actions = {\r\n async loginAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const {\r\n data: user\r\n } = await login(payload);\r\n const data = {\r\n _id: user._id,\r\n name: user.name,\r\n mobile: user.mobile,\r\n simpleRole: user.simpleRole,\r\n superAdmin: user.superAdmin,\r\n initial: user.initial\r\n }\r\n localStorage.setItem('token', user.token)\r\n commit('SET_CURRENT_USER', data)\r\n return user.data\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async logoutAction({\r\n commit\r\n }) {\r\n try {\r\n await logout()\r\n } catch (error) {\r\n throw error.message\r\n }\r\n localStorage.removeItem(\"token\")\r\n },\r\n async resetMyPasswordAction({\r\n commit\r\n }, {\r\n password,\r\n oldPassword\r\n }) {\r\n try {\r\n const res = await resetMyPassword({\r\n password,\r\n oldPassword\r\n });\r\n localStorage.setItem('token', res.data.token)\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async getMyInfoAction({\r\n commit\r\n }) {\r\n try {\r\n const {\r\n data\r\n } = await getMyInfo();\r\n commit('SET_CURRENT_USER', data)\r\n return data;\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n}\r\n\r\nconst mutations = {\r\n SET_CURRENT_USER(state, payload) {\r\n state.currentUser = payload\r\n },\r\n RESET(state) {\r\n state.currentUser = {\r\n _id: undefined,\r\n name: undefined,\r\n mobile: undefined\r\n }\r\n }\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n actions,\r\n mutations\r\n}","/*\r\n * @Author: zjt\r\n * @Email: 13928932429@163.com\r\n * @Date: 2020-08-03 10:55:58\r\n * @LastEditTime: 2020-09-16 15:23:04\r\n * @Description: 公司api\r\n */\r\nimport axios from '@/utils/axios'\r\n\r\nexport const getCompanyList = (payload) => {\r\n return axios.get('/company', {\r\n params: payload\r\n })\r\n}\r\n\r\nexport const getCompanyByID = (id) => {\r\n return axios.get(`/company/${id}`)\r\n}\r\n\r\nexport const updateCompany = (id, data) => {\r\n return axios.put(`/company/${id}`, data)\r\n}\r\n\r\nexport const createCompany = (data) => {\r\n return axios.post(`/company`, data)\r\n}\r\n\r\nexport const deleteCompany = (id) => {\r\n return axios.delete(`/company/${id}`)\r\n}","/*\r\n * @Author: zjt\r\n * @Email: 13928932429@163.com\r\n * @Date: 2020-08-03 10:53:27\r\n * @LastEditTime: 2020-09-27 09:37:30\r\n * @Description: 公司store\r\n */\r\nimport {\r\n getCompanyList,\r\n updateCompany,\r\n deleteCompany,\r\n createCompany,\r\n getCompanyByID\r\n} from '@/api/company'\r\nimport Vue from 'vue'\r\n\r\nconst state = {\r\n companyList: [],\r\n totalCounts: 0,\r\n}\r\n\r\nconst actions = {\r\n async getCompanyListAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const companyList = await getCompanyList(payload);\r\n commit('SETCOMPANYLIST', companyList.data)\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async getCompanyByIDAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const company = await getCompanyByID(payload)\r\n return company.data\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async createCompanyAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const newCompany = await createCompany(payload);\r\n commit('ADDNEWCOMPANY', newCompany.data)\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async updateCompanyAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const newcCompany = await updateCompany(payload.id, payload.data)\r\n commit('UPDATECOMPANY', newcCompany.data)\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async deleteCompanyAction({\r\n commit\r\n }, payload) {\r\n try {\r\n await deleteCompany(payload)\r\n } catch (error) {\r\n throw error.message\r\n }\r\n }\r\n}\r\n\r\nconst mutations = {\r\n SETCOMPANYLIST(state, payload) {\r\n state.companyList = payload.companyList;\r\n state.totalCounts = payload.totalCounts\r\n },\r\n ADDNEWCOMPANY(state, company) {\r\n state.companyList.unshift(company)\r\n state.totalCounts++\r\n },\r\n UPDATECOMPANY(state, company) {\r\n Vue.set(state.companyList, state.companyList.findIndex(x => x._id === company._id), company)\r\n },\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n actions,\r\n mutations\r\n}","/*\r\n * @Author: zjt\r\n * @Email: 13928932429@163.com\r\n * @Date: 2020-08-03 10:46:16\r\n * @LastEditTime: 2021-06-25 10:14:43\r\n * @Description: 用户api\r\n */\r\nimport axios from '@/utils/axios'\r\n\r\nexport const getUserList = (payload) => {\r\n return axios.get('/user', {\r\n params: payload\r\n })\r\n}\r\n\r\nexport const getSimpleUserList = (payload) => {\r\n return axios.get('/simple_user_list', {\r\n params: payload\r\n })\r\n}\r\n\r\nexport const createUser = (data) => {\r\n return axios.post(`/user`, data)\r\n}\r\n\r\nexport const updateUser = (id, data) => {\r\n return axios.put(`/user/${id}`, data)\r\n}\r\n\r\nexport const adminChangeUserPassword = (id, data) => {\r\n return axios.put(`/user/change_password/${id}`, {\r\n password: data\r\n })\r\n}\r\n\r\nexport const bannedUser = (id) => {\r\n return axios.post(`/user/banned/${id}`)\r\n}\r\n\r\nexport const recover = (id) => {\r\n return axios.post(`/user/recover/${id}`)\r\n}\r\n\r\nexport const adminResetUserPassword = (id) => {\r\n return axios.put(`/user/reset_password/${id}`)\r\n}","/*\r\n * @Author: zjt\r\n * @Email: 13928932429@163.com\r\n * @Date: 2020-08-03 10:43:06\r\n * @LastEditTime: 2021-06-25 11:31:24\r\n * @Description: 用户store\r\n */\r\nimport {\r\n getUserList,\r\n createUser,\r\n updateUser,\r\n adminChangeUserPassword,\r\n bannedUser,\r\n recover,\r\n adminResetUserPassword,\r\n getSimpleUserList\r\n} from '@/api/user'\r\nimport Vue from 'vue'\r\n\r\nconst state = {\r\n userList: [],\r\n userOption: [], // 用于选择的\r\n totalCounts: 0,\r\n simpleUserList: [],\r\n}\r\n\r\nconst getters = {\r\n getUserById: (state) => (id) => {\r\n return state.userList.find(x => x._id === id)\r\n },\r\n}\r\n\r\nconst actions = {\r\n async getUsersAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const user = await getUserList(payload)\r\n commit('SETUSER', user.data)\r\n return user.data\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async getSimpleUserListAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const user = await getSimpleUserList(payload)\r\n commit('SET_SIMPLE_USER', user.data)\r\n return user.data\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async createUserAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const newUser = await createUser(payload);\r\n commit('ADDNEWUSER', newUser.data)\r\n return newUser.data\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async updateUserAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const newUser = await updateUser(payload.id, payload.data);\r\n commit('UPDATEUSER', newUser.data)\r\n return newUser.data\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async adminChangeUserPasswordAction({\r\n commit\r\n }, payload) {\r\n try {\r\n await adminChangeUserPassword(payload.id, payload.password);\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async bannedUserAction({\r\n commit\r\n }, {\r\n id\r\n }) {\r\n try {\r\n const newUser = await bannedUser(id)\r\n commit('UPDATEUSER', newUser.data)\r\n return newUser.data\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async recoverAction({\r\n commit\r\n }, {\r\n id\r\n }) {\r\n try {\r\n const newUser = await recover(id)\r\n commit('UPDATEUSER', newUser.data)\r\n return newUser.data\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async adminResetUserPasswordAction({\r\n commit\r\n }, id) {\r\n try {\r\n const {\r\n data\r\n } = await adminResetUserPassword(id)\r\n return data;\r\n } catch (error) {\r\n throw error.message\r\n }\r\n }\r\n}\r\n\r\nconst mutations = {\r\n SETUSER(state, payload) {\r\n state.userList = payload.userList\r\n state.totalCounts = payload.totalCounts\r\n },\r\n SET_SIMPLE_USER(state, payload) {\r\n state.simpleUserList = payload.userList\r\n },\r\n ADDNEWUSER(state, user) {\r\n state.userList.unshift(user);\r\n state.totalCounts++\r\n },\r\n UPDATEUSER(state, user) {\r\n Vue.set(state.userList, state.userList.findIndex(x => x._id === user._id), user)\r\n },\r\n REMOVEUSER(state, userId) {\r\n state.currentUser = state.currentUser.filter((e) => e._id !== userId)\r\n state.stat.totalCounts--\r\n }\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n getters,\r\n actions,\r\n mutations\r\n}","/*\r\n * @Author: zjt\r\n * @Email: 13928932429@163.com\r\n * @Date: 2020-08-03 17:22:15\r\n * @LastEditTime: 2020-09-27 09:38:47\r\n * @Description: 材料store\r\n */\r\nimport {\r\n createWater,\r\n getMaterials,\r\n getRawMaterialWithPrice,\r\n getSemiMaterialWithCost,\r\n getMaterialById,\r\n updateMaterial,\r\n createMaterial\r\n} from '@/api/material'\r\nimport Vue from 'vue'\r\n\r\nconst state = {\r\n materials: [],\r\n totalCounts: 0\r\n}\r\n\r\nconst getters = {\r\n productMateral(state) {\r\n return state.materials.filter(x => x.type === \"product\")\r\n },\r\n getMaterialByType: (state) => (type) => {\r\n return state.materials.filter((e) => e.type === type)\r\n },\r\n semiMaterial(state) {\r\n return state.materials.filter(x => x.type === \"semi\")\r\n },\r\n rawMaterial(state) {\r\n return state.materials.filter(x => x.type === \"raw\" || x.type === \"water\")\r\n }\r\n}\r\n\r\nconst actions = {\r\n async addWaterAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const water = await createWater(payload);\r\n commit('ADDNEWMATERIAL', water.data)\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async getMaterialsAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const res = await getMaterials(payload)\r\n commit('SETMATERIALS', res.data)\r\n return res.data.materialList\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async getMaterialByIdAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const res = await getMaterialById(payload)\r\n return res.data\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async createMaterialAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const material = await createMaterial(payload)\r\n commit('ADDNEWMATERIAL', material.data)\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async updateMaterialAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const material = await updateMaterial(payload.id, payload.data);\r\n commit('UPDATEMATERIAL', material.data)\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async getRawMaterialWithPriceAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const res = await getRawMaterialWithPrice(payload.api)\r\n commit('SETMATERIALS', res.data)\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async getSemiMaterialWithCostAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const res = await getSemiMaterialWithCost(payload.api)\r\n commit('SETMATERIALS', res.data)\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n}\r\n\r\nconst mutations = {\r\n SETMATERIALS(state, resData) {\r\n state.materials = resData.materialList\r\n state.totalCounts = resData.totalCounts\r\n },\r\n ADDNEWMATERIAL(state, material) {\r\n state.materials.unshift(material)\r\n state.totalCounts++\r\n },\r\n UPDATEMATERIAL(state, material) {\r\n Vue.set(state.materials, state.materials.findIndex(x => x._id === material._id), material)\r\n },\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n getters,\r\n actions,\r\n mutations\r\n}","/*\r\n * @Author: zjt\r\n * @Email: 13928932429@163.com\r\n * @Date: 2020-08-03 21:20:49\r\n * @LastEditTime: 2020-08-11 11:45:13\r\n * @Description: 工厂api\r\n */\r\nimport axios from '@/utils/axios'\r\n\r\nexport const getFactorys = (payload) => {\r\n return axios.get('/factory', {\r\n params: payload\r\n })\r\n}\r\n\r\nexport const createFactory = (data) => {\r\n return axios.post('/factory', data)\r\n}\r\n\r\nexport const updateFactory = (id, data) => {\r\n return axios.put(`/factory/${id}`, data)\r\n}","/*\r\n * @Author: zjt\r\n * @Email: 13928932429@163.com\r\n * @Date: 2020-08-03 17:57:23\r\n * @LastEditTime: 2020-09-27 09:38:38\r\n * @Description: 工厂store\r\n */\r\nimport {\r\n getFactorys,\r\n updateFactory,\r\n createFactory\r\n} from '@/api/factory'\r\nimport Vue from 'vue'\r\n\r\nconst state = {\r\n factoryList: [],\r\n}\r\n\r\nconst getters = {\r\n getFactoryById: (state) => (id) => state.factoryList.find(x => x._id === id),\r\n getFactoryNameById: (state) => (id) => {\r\n const f = state.factoryList.find(x => x._id === id)\r\n return f ? f.name : null\r\n }\r\n}\r\n\r\nconst actions = {\r\n async getFactorysAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const factory = await getFactorys(payload)\r\n commit('SETFACTORY', factory.data)\r\n return factory.data\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async createFactoryAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const newFctory = await createFactory(payload)\r\n commit('ADDNEWFACTORY', newFctory.data)\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async updateFactoryAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const newFactory = await updateFactory(payload.id, payload.data)\r\n commit('UPDATEFACTORY', newFactory.data)\r\n } catch (error) {\r\n throw error.message\r\n }\r\n }\r\n}\r\n\r\nconst mutations = {\r\n SETFACTORY(state, payload) {\r\n state.factoryList = payload\r\n },\r\n ADDNEWFACTORY(state, factory) {\r\n state.factoryList.unshift(factory);\r\n state.totalCounts++\r\n },\r\n UPDATEFACTORY(state, factory) {\r\n Vue.set(state.factoryList, state.factoryList.findIndex(x => x._id === factory._id), factory)\r\n },\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n actions,\r\n mutations,\r\n getters\r\n}","/*\r\n * @Author: zjt\r\n * @Email: 13928932429@163.com\r\n * @Date: 2020-08-04 14:46:18\r\n * @LastEditTime: 2020-08-11 11:47:21\r\n * @Description: 采购订单api\r\n */\r\nimport axios from '@/utils/axios'\r\n\r\nexport const getPurchases = (payload) => {\r\n return axios.get('/calcPurchase', {\r\n params: payload\r\n })\r\n}\r\n\r\nexport const getRawMaterialLatestPurchases = (payload) => {\r\n return axios.get('/raw_material_latest_purchase', {\r\n params: payload\r\n })\r\n}\r\n\r\nexport const createPurchase = (data) => {\r\n return axios.post('/calcPurchase', data)\r\n}\r\n\r\nexport const updatePurchase = (data) => {\r\n return axios.put('/purchase', data)\r\n}\r\n\r\nexport const deletePurchase = (id) => {\r\n return axios.delete(`/calcPurchase/${id}`)\r\n}","/*\r\n * @Author: zjt\r\n * @Email: 13928932429@163.com\r\n * @Date: 2020-08-04 14:45:16\r\n * @LastEditTime: 2020-09-27 09:38:56\r\n * @Description: 采购订单store\r\n */\r\nimport {\r\n getPurchases,\r\n updatePurchase,\r\n createPurchase,\r\n deletePurchase,\r\n getRawMaterialLatestPurchases\r\n} from '@/api/purchase'\r\nconst state = {\r\n purchase: [],\r\n latestPurchases: [],\r\n}\r\n\r\nconst getters = {\r\n getPurchaseById: (state) => (id) => {\r\n return state.purchase.find(x => x._id === id)\r\n }\r\n}\r\n\r\nconst actions = {\r\n async getPurchasesAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const data = await getPurchases(payload.api)\r\n const purchase = data.data\r\n commit('SETPURCHASE', purchase);\r\n return purchase.calcPurchaseList\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async getRawMaterialLatestPurchasesAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const data = await getRawMaterialLatestPurchases(payload)\r\n const latestPurchases = data.data.materialList\r\n commit('SET_LATEST_PURCHASE', latestPurchases);\r\n return latestPurchases\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async createPurchaseAction({\r\n commit\r\n }, payload) {\r\n try {\r\n\r\n const newPurchase = await createPurchase(payload)\r\n\r\n commit('ADDNEWPURCHASE', newPurchase.data)\r\n return newPurchase.data\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async updatePurchaseAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const newPurchase = await updatePurchase(payload.id, payload.data)\r\n return newPurchase.data\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async deletePurchaseAction({\r\n commit\r\n }, payload) {\r\n try {\r\n await deletePurchase(payload.id)\r\n commit('REMOVEPURCHASE', payload.id)\r\n return payload.id\r\n } catch (error) {\r\n throw error.message\r\n }\r\n }\r\n\r\n}\r\n\r\nconst mutations = {\r\n SETPURCHASE(state, payload) {\r\n state.purchase = payload.calcPurchaseList\r\n },\r\n SET_LATEST_PURCHASE(state, payload) {\r\n state.latestPurchases = payload\r\n },\r\n ADDNEWPURCHASE(state, purchase) {\r\n purchase.concat(state.purchase)\r\n },\r\n\r\n REMOVEPURCHASE(state, purchaseId) {\r\n state.purchase = state.purchase.filter((e) => e._id !== purchaseId)\r\n }\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n getters,\r\n actions,\r\n mutations\r\n}","/*\r\n * @Author: zjt\r\n * @Email: 13928932429@163.com\r\n * @Date: 2020-08-04 20:19:45\r\n * @LastEditTime: 2020-08-11 11:47:51\r\n * @Description: 母液配方api\r\n */\r\nimport axios from '@/utils/axios'\r\n\r\nexport const getRecipeSemis = (payload) => {\r\n return axios.get('/recipeSemi', {\r\n params: payload\r\n })\r\n}\r\n\r\nexport const getRecipeSemisById = (id) => {\r\n return axios.get(`/recipeSemi/${id}`)\r\n}\r\n\r\nexport const createRecipeSemi = (data) => {\r\n return axios.post('/recipeSemi', data)\r\n}\r\n\r\nexport const updateRecipeSemi = (id, data) => {\r\n return axios.put(`/recipeSemi/${id}`, data);\r\n}","/*\r\n * @Author: zjt\r\n * @Email: 13928932429@163.com\r\n * @Date: 2020-08-04 20:14:17\r\n * @LastEditTime: 2020-08-17 10:45:31\r\n * @Description: 母液配方store\r\n */\r\nimport {\r\n getRecipeSemis,\r\n getRecipeSemisById,\r\n createRecipeSemi,\r\n updateRecipeSemi\r\n} from '@/api/recipeSemi'\r\nimport {\r\n getMaterials\r\n} from '@/api/material'\r\nimport Vue from 'vue'\r\n\r\nconst state = {\r\n recipeSemiList: [],\r\n materialList: []\r\n}\r\n\r\nconst getters = {\r\n\r\n}\r\n\r\nconst actions = {\r\n async getMaterialListAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const res = await getMaterials(payload);\r\n commit('SETMATERIALLIST', res.data.materialList)\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n\r\n async getRecipeSemisAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const recipeSemis = await getRecipeSemis(payload)\r\n commit('SETRECIPESEMIS', recipeSemis.data)\r\n return recipeSemis.data\r\n } catch (error) {\r\n throw error.message\r\n }\r\n\r\n },\r\n async getRecipeSemisByIdAction({\r\n commit\r\n }, id) {\r\n try {\r\n const recipeSemis = await getRecipeSemisById(id)\r\n recipeSemis.data.detail = recipeSemis.data.detail.map((e) => {\r\n return {\r\n \"_id\": e.material._id,\r\n \"name\": e.material.name,\r\n \"ratio\": e.ratio\r\n }\r\n })\r\n return recipeSemis.data\r\n } catch (error) {\r\n throw error.message\r\n }\r\n\r\n },\r\n async createRecipeSemiAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const newRecipe = await createRecipeSemi(payload)\r\n return newRecipe.data\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async updateRecipeSemiAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const newRecipeSemi = await updateRecipeSemi(payload.id, payload.data)\r\n commit(\"UPDATE_RECIPESEMI\", newRecipeSemi.data)\r\n return newRecipeSemi.data\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n}\r\n\r\nconst mutations = {\r\n SETRECIPESEMIS(state, recipeSemis) {\r\n state.recipeSemiList = recipeSemis.recipe\r\n },\r\n\r\n SETMATERIALLIST(state, materialList) {\r\n state.materialList = materialList\r\n },\r\n UPDATE_RECIPESEMI(state, recipeSemi) {\r\n Vue.set(state.recipeSemiList, state.recipeSemiList.findIndex(x => x._id === recipeSemi._id), recipeSemi)\r\n },\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n getters,\r\n actions,\r\n mutations\r\n}","/*\r\n * @Author: zjt\r\n * @Email: 13928932429@163.com\r\n * @Date: 2020-08-05 09:50:40\r\n * @LastEditTime: 2020-08-11 11:47:38\r\n * @Description: 销售项目配方\r\n */\r\n\r\nimport axios from '@/utils/axios'\r\n\r\nexport const getRecipeSales = (payload) => {\r\n return axios.get('/recipeSales', {\r\n params: payload\r\n })\r\n}\r\n\r\nexport const createRecipeSales = (data) => {\r\n return axios.post('/recipeSales', data)\r\n}\r\n\r\n\r\nexport const getRecipeSalesById = (id) => {\r\n return axios.get(`/recipeSales/${id}`)\r\n}\r\n// 通过材料id获取配方\r\nexport const getRecipeContainMaterial = (id) => {\r\n return axios.get(`/recipe_contain_material/${id}`)\r\n}\r\n\r\n// 替换材料\r\nexport const bulkReplaceRecipeMaterial = (data) => {\r\n return axios.post(`/bulk_replace_recipe_material`, data);\r\n}\r\n\r\nexport const getSalesCurrentRecipeProd = (id) => {\r\n return axios.get(`/prod_recipe_by_sales/${id}`)\r\n}\r\n\r\nexport const verifyRecipeSales = (id, data) => {\r\n return axios.post(`/recipeSales/verify/${id}`, data)\r\n}\r\n\r\nexport const verifyAllRecipe = (data) => {\r\n return axios.post(`/recipeSales/verifyAll`, data)\r\n}\r\n\r\nexport const updateRecipeSales = (id, data) => {\r\n return axios.put(`/recipeSales/${id}`, data);\r\n}\r\n\r\nexport const setProdRecipeSales = (id, data) => {\r\n return axios.post(`/set_prod_recipeSales/${id}`, data);\r\n}\r\n\r\nexport const deleteRecipeSales = (id) => {\r\n return axios.delete(`/recipeSales/${id}`)\r\n}\r\n\r\nexport const getRecipeSalesWithMaterialDetail = (id, data) => {\r\n return axios.get(`/recipe_sales_with_material_detail/${id}`, {\r\n params: data\r\n })\r\n}","/*\r\n * @Author: zjt\r\n * @Email: 13928932429@163.com\r\n * @Date: 2020-08-05 09:47:37\r\n * @LastEditTime: 2020-08-26 09:17:11\r\n * @Description: 销售项目配方\r\n */\r\nimport {\r\n getRecipeSales,\r\n getRecipeSalesById,\r\n createRecipeSales,\r\n getSalesCurrentRecipeProd,\r\n verifyRecipeSales,\r\n verifyAllRecipe,\r\n updateRecipeSales,\r\n deleteRecipeSales,\r\n setProdRecipeSales,\r\n getRecipeContainMaterial,\r\n bulkReplaceRecipeMaterial,\r\n getRecipeSalesWithMaterialDetail\r\n} from '@/api/recipeSales'\r\nimport Vue from 'vue'\r\n\r\nconst state = {\r\n recipeSalesList: [],\r\n prodRecipeSales: {},\r\n totalCounts: 0\r\n}\r\n\r\nconst actions = {\r\n async getRecipeSalesAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const recipeSalesList = await getRecipeSales(payload)\r\n commit('SETRECIPESALES', recipeSalesList.data)\r\n return recipeSalesList.data\r\n } catch (error) {\r\n throw error.message\r\n }\r\n\r\n },\r\n async getRecipeSalesByIdAction({\r\n commit\r\n }, id) {\r\n try {\r\n const recipeSales = await getRecipeSalesById(id)\r\n recipeSales.data.detail = recipeSales.data.detail.map((e) => {\r\n return {\r\n ...e.material,\r\n \"ratio\": e.ratio\r\n }\r\n })\r\n return recipeSales.data\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n // 通过材料id获取配方\r\n async getRecipeContainMaterialAction({\r\n commit\r\n }, id) {\r\n try {\r\n const recipeSalesList = await getRecipeContainMaterial(id)\r\n commit('SET_MATERIAL_SEARCH_RECIPESALES', recipeSalesList.data)\r\n return recipeSalesList.data\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n // 替换材料\r\n async bulkReplaceRecipeMaterialAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const newRecipeSales = await bulkReplaceRecipeMaterial(payload)\r\n commit(\"BULK_REPLACE_RECIPE_MATERIAL\", payload)\r\n return newRecipeSales.data\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async createRecipeSalesAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const newRecipe = await createRecipeSales(payload);\r\n return newRecipe.data\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async getSalesCurrentRecipeProdAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const recipe = await getSalesCurrentRecipeProd(payload);\r\n return recipe.data;\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n\r\n async verifyRecipeSalesAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const newRecipe = await verifyRecipeSales(payload.id, payload.data);\r\n return newRecipe.data\r\n } catch (error) {\r\n throw error\r\n }\r\n },\r\n async updateRecipeSalesAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const newRecipeSales = await updateRecipeSales(payload.id, payload.data)\r\n if (!payload.data.type) {\r\n commit(\"UPDATE_RECIPESALES\", payload)\r\n }\r\n return newRecipeSales.data\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async setProdRecipeSalesAction({\r\n commit\r\n }, payload) {\r\n try {\r\n\r\n const newRecipe = await setProdRecipeSales(payload.id, payload.data);\r\n return newRecipe.data\r\n } catch (error) {\r\n throw error\r\n }\r\n },\r\n async deleteRecipeSalesAction({\r\n commit\r\n }, payload) {\r\n try {\r\n await deleteRecipeSales(payload.id)\r\n commit('DELETE_RECIPESALES', payload.id)\r\n return payload.id\r\n } catch (error) {\r\n throw error\r\n }\r\n },\r\n async getRecipeSalesWithMaterialDetailAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const recipeSales = await getRecipeSalesWithMaterialDetail(payload.id, payload.data)\r\n return recipeSales.data\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n}\r\n\r\nconst mutations = {\r\n SETRECIPESALES(state, payload) {\r\n payload.recipeSalesList.forEach((x) => {\r\n if (x.prevRecipeSales && x.detail) {\r\n const res = new Map();\r\n x.allDetail = x.detail.concat(x.prevRecipeSales.detail).filter(x => {\r\n return !res.has(x.material._id) && res.set(x.material._id, 1)\r\n })\r\n }\r\n });\r\n state.recipeSalesList = payload.recipeSalesList\r\n state.totalCounts = payload.totalCounts\r\n },\r\n SET_MATERIAL_SEARCH_RECIPESALES(state, payload) {\r\n state.recipeSalesList = payload.recipeSalesList\r\n state.totalCounts = payload.totalCounts\r\n },\r\n UPDATE_RECIPESALES(state, recipeSales) {\r\n const index = state.recipeSalesList.findIndex(x => x._id === recipeSales.id)\r\n const newRecipeSales = state.recipeSalesList[index]\r\n if (recipeSales.data.status) {\r\n newRecipeSales.status = recipeSales.data.status\r\n }\r\n Vue.set(state.recipeSalesList, index, newRecipeSales)\r\n },\r\n BULK_REPLACE_RECIPE_MATERIAL(state, recipeSales) {\r\n\r\n },\r\n DELETE_RECIPESALES(state, id) {\r\n state.recipeSalesList = state.recipeSalesList.filter(e => e._id !== id)\r\n state.totalCounts--\r\n },\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n actions,\r\n mutations\r\n}","/*\r\n * @Author: zjt\r\n * @Email: 13928932429@163.com\r\n * @Date: 2020-08-05 15:48:39\r\n * @LastEditTime: 2020-08-13 10:20:58\r\n * @Description: 销售项目api\r\n */\r\nimport axios from '@/utils/axios'\r\n\r\nexport const getSales = (payload) => {\r\n return axios.get('/sales', {\r\n params: payload\r\n })\r\n}\r\n\r\nexport const getSalesById = (id, data) => {\r\n return axios.get(`/sales/${id}`, data)\r\n}\r\n\r\nexport const createSales = (data) => {\r\n return axios.post(`/sales`, data)\r\n}\r\n\r\nexport const updateSales = (id, data) => {\r\n return axios.put(`/sales/${id}`, data)\r\n}\r\n\r\nexport const updatePriceSales = (id, data) => {\r\n return axios.put(`/recipeSales/${id}`, data)\r\n}\r\n\r\nexport const bindSalesWithItemCodeSales = (data) => {\r\n return axios.post('/bind_sales_with_item_code_sales', data)\r\n}","import axios from '@/utils/axios'\n\nexport const getSalesLatestCost = (payload) => {\n return axios.get('/sales_latest_cost', {\n params: payload\n })\n}\n\nexport const getCalcSalesCost = (payload) => {\n return axios.get('/calc_sales_cost', {\n params: payload\n })\n}\n\nexport const getCalcSalesCostByID = (id) => {\n return axios.get(`/calc_sales_cost/${id}`)\n}\n\nexport const getCalcSalesCostAnalyzeByID = (id, payload) => {\n return axios.get(`/calc_sales_cost_analyze/${id}`, {\n params: payload\n })\n}\n\nexport const calcSalesCostById = (payload) => {\n return axios.post('/calc_sales_cost_by_id', payload)\n}\n\nexport const calcAllSalesCost = (payload) => {\n return axios.post('/calc_all_sales_cost', payload)\n}","import { getSalesLatestCost, getCalcSalesCost, getCalcSalesCostByID, getCalcSalesCostAnalyzeByID, calcSalesCostById, calcAllSalesCost } from '@/api/caclSalesCost'\r\nimport Vue from 'vue'\r\n\r\nconst state = {\r\n salesLatestCost: [],\r\n calcCost: [],\r\n salesCostAnalyze: [],\r\n totalCounts: 0,\r\n calcCostTotal:0,\r\n}\r\n\r\nconst actions = {\r\n async getSalesLatestCostAction({ commit }, payload) {\r\n try {\r\n const res = await getSalesLatestCost(payload)\r\n if (res.success) {\r\n commit('SET_SALES_LATEST_COST', res.data)\r\n return res.data\r\n } else {\r\n throw res\r\n }\r\n } catch (error) {\r\n throw error\r\n }\r\n },\r\n async getCalcSalesCostAction({ commit }, payload) {\r\n try {\r\n const res = await getCalcSalesCost(payload)\r\n commit('SET_CALC_COST', res.data)\r\n return res.data\r\n } catch (error) {\r\n throw error\r\n }\r\n },\r\n\r\n async getCalcSalesCostByIDAction({ commit }, payload) {\r\n try {\r\n const res = await getCalcSalesCostByID(payload)\r\n return res.data\r\n } catch (error) {\r\n throw error\r\n }\r\n },\r\n\r\n async getCalcSalesCostAnalyzeByIDAction({ commit }, payload) {\r\n try {\r\n const res = await getCalcSalesCostAnalyzeByID(payload.id, payload.data)\r\n commit('SET_SALES_COST_ANALYZE', res.data)\r\n return res.data\r\n } catch (error) {\r\n throw error\r\n }\r\n },\r\n\r\n async calcAllSalesCostAction({ commit }, payload) {\r\n try {\r\n await calcAllSalesCost(payload)\r\n } catch (error) {\r\n throw error\r\n }\r\n },\r\n\r\n async calcSalesCostByIdAction({ commit }, payload) {\r\n try {\r\n const res = await calcSalesCostById(payload)\r\n commit('UPDATE_SALES_LATEST_COST', res.data.sales)\r\n return res.data.result\r\n } catch (error) {\r\n throw error\r\n }\r\n },\r\n async updateOneAction({ commit }, payload) {\r\n try {\r\n commit('UPDATE_ONE_SALES_LATEST_COST', payload.row)\r\n } catch (error) {\r\n throw error\r\n }\r\n },\r\n}\r\n\r\nconst mutations = {\r\n SET_SALES_LATEST_COST(state, payload) {\r\n payload.sales.forEach(x => {\r\n x.isPriceEdit = false\r\n x.isTransPriceEdit = false\r\n x.isPromoFeeEdit = false\r\n x.isJDEdit = false\r\n if (!x.calcSalesCost&&x.promoFee) {\r\n x.promoFeeSum = x.promoFee.reduce((p, c) => {\r\n return p + c.fee;\r\n }, 0);\r\n }\r\n return\r\n });\r\n state.salesLatestCost = payload.sales\r\n state.totalCounts = payload.totalCounts\r\n },\r\n SET_CALC_COST(state, payload) {\r\n state.calcCost = payload.receiveList\r\n state.calcCostTotal = payload.totalCounts\r\n },\r\n UPDATE_SALES_LATEST_COST(state, payload) {\r\n Vue.set(state.salesLatestCost, state.salesLatestCost.findIndex(x => x._id === payload._id), payload);\r\n },\r\n UPDATE_ONE_SALES_LATEST_COST(state, payload) {\r\n Vue.set(state.salesLatestCost, state.salesLatestCost.findIndex(x => x._id === payload._id), payload);\r\n },\r\n\r\n SET_SALES_COST_ANALYZE(state, payload) {\r\n state.salesCostAnalyze = payload.salesCostList\r\n },\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n actions,\r\n mutations,\r\n}","/*\r\n * @Author: zjt\r\n * @Email: 13928932429@163.com\r\n * @Date: 2020-08-05 15:48:09\r\n * @LastEditTime: 2020-10-27 09:29:26\r\n * @Description: 销售项目store\r\n */\r\nimport {\r\n getSales,\r\n getSalesById,\r\n updatePriceSales,\r\n updateSales,\r\n createSales,\r\n bindSalesWithItemCodeSales\r\n} from '@/api/sales'\r\nimport Vue from 'vue'\r\n\r\nimport caclSalesCost from './caclSalesCost'\r\n\r\nconst state = {\r\n sales: [],\r\n totalCounts: 0\r\n}\r\n\r\nconst getters = {\r\n prodRecipeSales(state) {\r\n return state.sale\r\n },\r\n salesById: (state) => (id) => {\r\n return state.sales.find(x => x._id === id)\r\n }\r\n}\r\n\r\nconst actions = {\r\n async getSalesAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const res = await getSales(payload)\r\n commit('SETSALES', res.data)\r\n return res.data\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async getSalesByIdAction({\r\n commit\r\n }, id) {\r\n try {\r\n const sales = await getSalesById(id)\r\n return sales.data\r\n } catch (error) {\r\n throw error.message\r\n }\r\n\r\n },\r\n async createSalesAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const newSales = await createSales(payload);\r\n commit('ADDNEWSALES', newSales.data)\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async updateSalesAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const newSales = await updateSales(payload.id, payload.data)\r\n commit(\"UPDATESALES\", newSales.data)\r\n return newSales.data\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async updateSalesPriceAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const newSales = await updatePriceSales(payload.id, payload.data)\r\n commit('UPDATESALES', newSales.data)\r\n return newSales.data\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n\r\n async setProdRecipeupdateSalesAction({\r\n commit\r\n }, payload) {\r\n try {\r\n commit('UPDATESALES', payload)\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n\r\n async bindSalesWithItemCodeSalesAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const newSales = await bindSalesWithItemCodeSales(payload);\r\n // commit('BIND_SALES_WITH_ITEM_CODE_SALES', newSales.data)\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n updateSalesWithCostAction({\r\n commit\r\n }, payload) {\r\n commit('UPDATE_SALES_WITH_COST', payload)\r\n }\r\n}\r\n\r\nconst mutations = {\r\n SETSALES(state, payload) {\r\n state.sales = payload.salesList\r\n state.totalCounts = payload.totalCounts\r\n },\r\n ADDNEWSALES(state, sales) {\r\n state.sales.unshift(sales)\r\n state.totalCounts++\r\n },\r\n UPDATESALES(state, sales) {\r\n Vue.set(state.sales, state.sales.findIndex(x => x._id === sales._id), sales)\r\n },\r\n // 更新sales的allowSales同时更新caclSalesCost保持界面同步更新\r\n UPDATE_SALES_WITH_COST(state, sales) {\r\n const index = caclSalesCost.state.salesLatestCost.findIndex(x => x._id === sales.id)\r\n const salesCost = caclSalesCost.state.salesLatestCost[index]\r\n salesCost.allowSales = sales.allowSales === 'true';\r\n salesCost.prePaidOnly = sales.prePaidOnly === 'true';\r\n salesCost.isLimitVolPerMonth = sales.isLimitVolPerMonth === 'true';\r\n salesCost.limitVolPerMonth = sales.limitVolPerMonth;\r\n // salesCost.salesOrderReview = sales.salesOrderReview\r\n Vue.set(caclSalesCost.state.salesLatestCost, index, salesCost);\r\n }\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n getters,\r\n actions,\r\n mutations\r\n}","/*\r\n * @Author: zjt\r\n * @Email: 13928932429@163.com\r\n * @Date: 2020-08-06 09:36:25\r\n * @LastEditTime: 2020-08-11 11:48:29\r\n * @Description: 复配公司api\r\n */\r\nimport axios from '@/utils/axios'\r\n\r\nexport const getSacCompanys = (payload) => {\r\n return axios.get('/sacCompany', {\r\n params: payload\r\n })\r\n}\r\n\r\nexport const updateSacCompany = (id, data) => {\r\n return axios.put(`/sacCompany/${id}`, data);\r\n}\r\n\r\nexport const createSacCompany = (data) => {\r\n return axios.post(`/sacCompany`, data)\r\n}\r\n\r\nexport const deleteSacCompany = (id) => {\r\n return axios.delete(`/sacCompany/${id}`)\r\n}","/*\r\n * @Author: zjt\r\n * @Email: 13928932429@163.com\r\n * @Date: 2020-08-06 09:36:00\r\n * @LastEditTime: 2020-09-27 09:39:14\r\n * @Description: \r\n */\r\nimport {\r\n getSacCompanys,\r\n createSacCompany,\r\n updateSacCompany\r\n} from '@/api/sacCompany'\r\nimport Vue from 'vue'\r\n\r\nconst state = {\r\n sacCompanys: [],\r\n totalCounts: 0\r\n}\r\n\r\nconst getters = {\r\n getSacCompanyById: (state) => (id) => {\r\n return state.sacCompany.find(x => x._id === id)\r\n }\r\n}\r\n\r\nconst actions = {\r\n async getSacCompanysAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const sacCompany = await getSacCompanys(payload.api)\r\n commit('SETSACCOMPAYNS', sacCompany.data)\r\n return sacCompany.data\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async createSacCompanyAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const newSacCompany = await createSacCompany(payload);\r\n commit('ADDNEWSACCOMPANY', newSacCompany.data)\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async updateSacCompanyAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const newSacCompany = await updateSacCompany(payload.id, payload.data)\r\n commit('UPDATESACCOMPANY', newSacCompany.data)\r\n return newSacCompany.data\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async deleteSacCompanyAction({\r\n commit\r\n }, payload) {\r\n try {\r\n await deleteSacCompany(payload.id)\r\n } catch (error) {\r\n throw error.message\r\n }\r\n }\r\n}\r\n\r\nconst mutations = {\r\n SETSACCOMPAYNS(state, payload) {\r\n state.sacCompanys = payload.sacCompanyList\r\n state.totalCounts = payload.totalCounts\r\n },\r\n ADDNEWSACCOMPANY(state, sacCompany) {\r\n state.sacCompanys.unshift(sacCompany)\r\n state.totalCounts++\r\n },\r\n UPDATESACCOMPANY(state, sacCompany) {\r\n Vue.set(state.sacCompanys, state.sacCompanys.findIndex(x => x._id === sacCompany._id), sacCompany)\r\n },\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n getters,\r\n actions,\r\n mutations\r\n}","/*\r\n * @Author: zjt\r\n * @Email: 13928932429@163.com\r\n * @Date: 2020-08-06 16:48:27\r\n * @LastEditTime: 2020-08-12 22:17:17\r\n * @Description: 复配中心api\r\n */\r\nimport axios from '@/utils/axios'\r\n\r\nexport const getSacsList = (payload) => {\r\n return axios.get('/sac', {\r\n params: payload\r\n })\r\n}\r\n\r\nexport const getSacById = (id) => {\r\n return axios.get(`/sac/${id}`)\r\n}\r\n\r\nexport const updateSac = (id, data) => {\r\n return axios.put(`/sac/${id}`, data);\r\n}\r\n\r\nexport const createSac = (data) => {\r\n return axios.post(`/sac`, data)\r\n}\r\n\r\nexport const deleteSac = (id) => {\r\n return axios.delete(`/sac/${id}`)\r\n}\r\n\r\nexport const createSacSales = (data) => {\r\n return axios.post(`/sacSales`, data)\r\n}\r\n\r\nexport const updateSacSales = (id, data) => {\r\n return axios.put(`/sacSales/${id}`, data);\r\n}\r\n\r\nexport const createSacRecipe = (data) => {\r\n return axios.post(`/sacRecipe`, data)\r\n}\r\n\r\nexport const updateSacRecipe = (id, data) => {\r\n return axios.put(`/sacRecipe/${id}`, data);\r\n}\r\n\r\nexport const getSacRecipeList = (payload) => {\r\n return axios.get('/sacRecipe', {\r\n params: payload\r\n })\r\n}","/*\r\n * @Author: zjt\r\n * @Email: 13928932429@163.com\r\n * @Date: 2020-08-06 16:45:55\r\n * @LastEditTime: 2020-09-27 09:39:04\r\n * @Description: 复配中心store\r\n */\r\n\r\nimport {\r\n getSacById,\r\n getSacsList,\r\n updateSac,\r\n deleteSac,\r\n createSac,\r\n updateSacSales,\r\n createSacSales,\r\n updateSacRecipe,\r\n createSacRecipe,\r\n getSacRecipeList\r\n} from '@/api/sac'\r\nimport Vue from 'vue'\r\n\r\nconst state = {\r\n sacsList: [],\r\n totalCounts: 0,\r\n sac: {},\r\n}\r\n\r\nconst getters = {\r\n getLocalSacById: (state) => (id) => {\r\n return state.sac.find(x => x._id === id)\r\n }\r\n}\r\n\r\nconst actions = {\r\n async getSacRecipeAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const recipeList = await getSacRecipeList(payload);\r\n return recipeList.data\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async getSacsListAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const sac = await getSacsList(payload)\r\n commit('SETSACSLIST', sac.data);\r\n return sac.data\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async getSacByIdAction({\r\n commit\r\n }, id) {\r\n try {\r\n const sac = await getSacById(id)\r\n commit('SETSAC', sac.data)\r\n return sac.data\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async createSacAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const newSac = await createSac(payload)\r\n commit('ADDNEWSACLIST', newSac.data)\r\n return newSac.data\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async updateSacAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const sac = await updateSac(payload.id, payload.data);\r\n commit('UPDATESACLIST', sac.data)\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async deleteSacAction({\r\n commit\r\n }, payload) {\r\n try {\r\n await deleteSac(payload.id)\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async createSacSalesAction({\r\n commit\r\n }, payload) {\r\n try {\r\n await createSacSales(payload)\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async updateSacSalesAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const newSacSales = await updateSacSales(payload.id, payload.data)\r\n return newSacSales.data\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async createSacRecipeAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const recipe = await createSacRecipe(payload);\r\n return recipe.data\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async updateSacRecipeAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const newSacRecipe = await updateSacRecipe(payload.id, payload.data);\r\n return newSacRecipe.data\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n}\r\n\r\nconst mutations = {\r\n SETSACSLIST(state, payload) {\r\n state.sacsList = payload.sacsList;\r\n state.totalCounts = payload.totalCounts\r\n },\r\n SETSAC(state, payload) {\r\n state.sac = payload;\r\n },\r\n ADDNEWSACLIST(state, sac) {\r\n state.sacsList.unshift(sac)\r\n state.totalCounts++\r\n },\r\n UPDATESACLIST(state, sac) {\r\n Vue.set(state.sacsList, state.sacsList.findIndex(x => x._id === sac._id), sac)\r\n },\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n getters,\r\n actions,\r\n mutations\r\n}","/*\r\n * @Author: zjt\r\n * @Email: 13928932429@163.com\r\n * @Date: 2020-08-11 09:36:12\r\n * @LastEditTime: 2020-09-27 16:01:24\r\n * @Description: 储罐借用api\r\n */\r\nimport axios from '@/utils/axios'\r\n\r\nexport const getTankRentalList = (payload) => {\r\n return axios.get('/tankRental', {\r\n params: payload\r\n })\r\n}\r\n\r\nexport const getTankRentalByID = (id) => {\r\n return axios.get(`/tankRental/${id}`)\r\n}\r\n\r\nexport const updateTankRental = (id, data) => {\r\n return axios.put(`/tankRental/${id}`, data)\r\n}\r\n\r\nexport const createTankRental = (data) => {\r\n return axios.post(`/tankRental`, data)\r\n}\r\n\r\nexport const deleteTankRental = (id) => {\r\n return axios.delete(`/tankRental/${id}`)\r\n}","/*\r\n * @Author: zjt\r\n * @Email: 13928932429@163.com\r\n * @Date: 2020-08-11 09:05:20\r\n * @LastEditTime: 2020-09-27 09:40:08\r\n * @Description: 储罐借用store\r\n */\r\nimport {\r\n getTankRentalByID,\r\n getTankRentalList,\r\n updateTankRental,\r\n deleteTankRental,\r\n createTankRental\r\n} from '@/api/tankRental'\r\nimport Vue from 'vue'\r\n\r\nconst state = {\r\n tankRentalList: [],\r\n totalCounts: 0\r\n}\r\n\r\nconst actions = {\r\n async getTankRentalListAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const tankRentalList = await getTankRentalList(payload);\r\n commit('SETTANKRENTALLIST', tankRentalList.data)\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async getTankRentalByIDAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const tankRental = await getTankRentalByID(payload)\r\n return tankRental.data\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async createTankRentalAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const tankRental = await createTankRental(payload);\r\n commit('ADDTANKRENTAL', tankRental.data)\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async updateTankRentalAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const tankRental = await updateTankRental(payload.id, payload.data)\r\n commit('UPDATETANKRENTAL', tankRental.data)\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async deleteTankRentalAction({\r\n commit\r\n }, payload) {\r\n try {\r\n await deleteTankRental(payload)\r\n commit('DELETETANKRENTAL', payload)\r\n } catch (error) {\r\n throw error.message\r\n }\r\n }\r\n}\r\n\r\nconst mutations = {\r\n SETTANKRENTALLIST(state, payload) {\r\n state.tankRentalList = payload.tankRentalList;\r\n state.totalCounts = payload.totalCounts\r\n },\r\n ADDTANKRENTAL(state, tankRental) {\r\n state.tankRentalList.unshift(tankRental)\r\n state.totalCounts++\r\n },\r\n DELETETANKRENTAL(state, id) {\r\n state.tankRentalList = state.tankRentalList.filter(e => e._id !== id)\r\n state.totalCounts--\r\n },\r\n UPDATETANKRENTAL(state, tankRental) {\r\n Vue.set(state.tankRentalList, state.tankRentalList.findIndex(x => x._id === tankRental._id), tankRental)\r\n }\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n actions,\r\n mutations\r\n}","/*\r\n * @Author: zjt\r\n * @Email: 13928932429@163.com\r\n * @Date: 2020-08-13 10:13:59\r\n * @LastEditTime: 2020-08-30 15:06:17\r\n * @Description: 销售订单api\r\n */\r\nimport axios from '@/utils/axios'\r\n\r\nexport const getManyFactorySalesOrder = (payload) => {\r\n return axios.get('/salesOrderByManyFactory', {\r\n params: payload\r\n })\r\n}\r\n\r\nexport const getSalesOrderById = (id) => {\r\n return axios.get(`/salesOrder/${id}`)\r\n}\r\n\r\nexport const createSalesOrder = (data) => {\r\n return axios.post(`/salesOrder`, data)\r\n}\r\n\r\nexport const createSalesOrderMulti = (data) => {\r\n return axios.post(`/sales_order_multi`, data)\r\n}\r\n\r\nexport const updateSalesOrder = (id, data) => {\r\n return axios.put(`/sales_order/${id}`, data)\r\n}\r\n\r\nexport const cancelSalesOrder = (id, data) => {\r\n console.log(data)\r\n return axios.put(`/cancel_sales_order/${id}`, data)\r\n}\r\n\r\nexport const getSalesOrderList = (payload) => {\r\n return axios.get(`/sales_order`, {\r\n params: payload\r\n })\r\n}\r\n\r\nexport const changeSalesOrderProgress = (id, data) => {\r\n return axios.put(`/salesOrder/progress/${id}`, data)\r\n}\r\n\r\nexport const getSalesOrderByFactoryId = (id, payload) => {\r\n return axios.get(`/salesOrder/factory/${id}`, {\r\n params: payload\r\n })\r\n}\r\n\r\nexport const salesOrderReturn = (id, data) => {\r\n return axios.post(`/sales_order_return/${id}`, data)\r\n}\r\n\r\nexport const salesOrderVolByDay = (payload) => {\r\n return axios.get(`/sales_order_vol_by_day`, {\r\n params: payload\r\n })\r\n}\r\n\r\nexport const salesOrderVolByMonth = (payload) => {\r\n return axios.get(`/sales_order_vol_by_month`, {\r\n params: payload\r\n })\r\n}\r\n\r\nexport const getRecommendSalesOrder = (payload) => {\r\n return axios.get(`/sales_order_recommand`, {\r\n params: payload\r\n })\r\n}\r\n\r\nexport const getSalesOrderProfit = (payload) => {\r\n return axios.get(`/sales_order_profit`, {\r\n params: payload\r\n })\r\n}\r\n\r\nexport const calcSalesOrderProfit = (payload) => {\r\n return axios.post('/calc_sales_order_profit', payload)\r\n}\r\n\r\nexport const coverSalesOrdersCalc = (payload) => {\r\n return axios.post('/cover_sales_order_calc', payload)\r\n}\r\n\r\n// export const sendww = (payload) => {\r\n// return axios.get(`/sendww`, {\r\n// params: payload\r\n// })\r\n// }","/*\r\n * @Author: zjt\r\n * @Email: 13928932429@163.com\r\n * @Date: 2020-08-13 10:10:25\r\n * @LastEditTime: 2020-12-14 14:35:12\r\n * @Description: 销售订单store\r\n */\r\nimport {\r\n getManyFactorySalesOrder,\r\n updateSalesOrder,\r\n cancelSalesOrder,\r\n createSalesOrder,\r\n getSalesOrderList,\r\n changeSalesOrderProgress,\r\n getSalesOrderByFactoryId,\r\n createSalesOrderMulti,\r\n salesOrderReturn,\r\n salesOrderVolByDay,\r\n salesOrderVolByMonth,\r\n getRecommendSalesOrder,\r\n calcSalesOrderProfit,\r\n coverSalesOrdersCalc,\r\n getSalesOrderProfit\r\n} from '@/api/salesOrder'\r\nimport Vue from 'vue'\r\nimport dayjs from 'dayjs'\r\n\r\nconst state = {\r\n factorySalesOrderList: [],\r\n salesOrderList: [],\r\n totalCounts: 0,\r\n planArrivedAt: undefined,\r\n salesOrderProfitList: [],\r\n salesOrderProfitTotalCounts: [],\r\n}\r\n\r\nconst getters = {\r\n getSalesOrderById: (state) => (id) => {\r\n const index = state.salesOrder.findIndex(x => x._id === id)\r\n return index === -1 ? null : state.salesOrder[index]\r\n }\r\n}\r\n\r\nconst actions = {\r\n async getManyFactorySalesOrderAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const factorySalesOrderList = await getManyFactorySalesOrder(payload);\r\n commit('SET_FACTORY_SALES_ORDER_LIST', factorySalesOrderList.data)\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async getSalesOrderListAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const salesOrderList = await getSalesOrderList(payload);\r\n commit('SETSALESORDERLIST', salesOrderList.data)\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async getSalesOrderTableAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const salesOrderList = await getSalesOrderList(payload);\r\n commit('SET_SALES_ORDER_TABLE', salesOrderList.data)\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async createSalesOrderAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const salesOrder = await createSalesOrder(payload);\r\n commit('UPDATE_SALES_ORDER_LIST', salesOrder.data)\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async createSalesOrdMultierAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const salesOrder = await createSalesOrderMulti(payload);\r\n commit('UPDATE_SALES_ORDER_LIST', salesOrder.data)\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async updateSalesOrderAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const newSalesOrder = await updateSalesOrder(payload.id, payload.data);\r\n const {\r\n type\r\n } = payload;\r\n if (!type) {\r\n commit('UPDATESALESOREDER', newSalesOrder.data)\r\n }\r\n return newSalesOrder.data\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async cancelSalesOrderAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const salesOrder = await cancelSalesOrder(payload.id, payload.data);\r\n commit('CANCEL_SALESORDER', salesOrder.data)\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async changeSalesOrderProgressAction({\r\n commit\r\n }, payload) {\r\n try {\r\n await changeSalesOrderProgress(payload.id, payload.data)\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async getSalesOrderByFactoryIdAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const factorySalesOrder = await getSalesOrderByFactoryId(payload.id, payload.data);\r\n commit('UPDATEFACTORYSALESORDERLIST', factorySalesOrder.data)\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async cancelSalesProdOrderAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const salesOrder = await cancelSalesOrder(payload.id, payload.data);\r\n commit('CANCELSALEPRODSORDER', salesOrder.data)\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async updateSalesProdOrderAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const newSalesOrder = await updateSalesOrder(payload.id, payload.data);\r\n const {\r\n type\r\n } = payload;\r\n if (!type) {\r\n commit('UPDATE_SALES_PROD_OREDER', newSalesOrder.data)\r\n }\r\n return newSalesOrder.data\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async salesOrderReturnAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const newSalesOrder = await salesOrderReturn(payload.id, payload.data);\r\n commit('SALES_OREDER_RETURN', newSalesOrder.data)\r\n return newSalesOrder.data\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async salesOrderVolByDayAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const salesOrderVolByDayList = await salesOrderVolByDay(payload);\r\n return salesOrderVolByDayList.data\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async salesOrderVolByMonthAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const salesOrderVolByMonthList = await salesOrderVolByMonth(payload);\r\n return salesOrderVolByMonthList.data\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async getRecommendSalesOrder({}, payload) {\r\n try {\r\n const salesOrderVolByMonthList = await getRecommendSalesOrder(payload);\r\n return salesOrderVolByMonthList.data\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n\r\n async getSalesOrderProfitListAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const salesOrderProfitList = await getSalesOrderProfit(payload);\r\n commit('SET_SALES_ORDER_PROFIT_LIST', salesOrderProfitList.data)\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n\r\n async calcSalesOrderProfitAction({\r\n commit\r\n }, payload) {\r\n try {\r\n await calcSalesOrderProfit(payload)\r\n } catch (error) {\r\n throw error\r\n }\r\n },\r\n async coverSalesOrdersCalcAction({\r\n commit\r\n }, payload) {\r\n try {\r\n await coverSalesOrdersCalc(payload)\r\n } catch (error) {\r\n throw error\r\n }\r\n },\r\n}\r\n\r\nconst mutations = {\r\n SETPLANARRIVEDAT(state, payload) {\r\n state.planArrivedAt = payload\r\n },\r\n SET_FACTORY_SALES_ORDER_LIST(state, payload) {\r\n // 按照计划生产时间排序,没有则是需求时间\r\n // payload.forEach(f => {\r\n // f.salesOrderList.sort((a, b) => {\r\n // if (!a.producedAtPlan && !b.producedAtPlan) return dayjs(a.planArrivedAt).toDate() - dayjs(b.planArrivedAt).toDate();\r\n // if (a.producedAtPlan && !b.producedAtPlan) return -1;\r\n // return dayjs(a.producedAtPlan).toDate() - dayjs(b.producedAtPlan).toDate()\r\n // })\r\n // })\r\n state.factorySalesOrderList = payload\r\n },\r\n SETSALESORDERLIST(state, payload) {\r\n state.salesOrderList = salesOrderSortByindexInDay(payload.salesOrderList);\r\n state.totalCounts = payload.totalCounts\r\n },\r\n SET_SALES_ORDER_TABLE(state, payload) {\r\n state.salesOrderList = payload.salesOrderList;\r\n state.totalCounts = payload.totalCounts\r\n },\r\n UPDATEFACTORYSALESORDERLIST(state, salesOrderList) {\r\n Vue.set(state.factorySalesOrderList, state.factorySalesOrderList.findIndex(x => x._id === salesOrderList._id), salesOrderList)\r\n },\r\n UPDATEFACTORYSALESORDERDELIVERY(state, delivery) {\r\n let [salesOrderIndex, factoryIndex] = [null, null];\r\n state.factorySalesOrderList.map((x, fIndex) => {\r\n x.salesOrder.map((s, sIndex) => {\r\n if (s.delivery._id === delivery._id) {\r\n factoryIndex = fIndex;\r\n salesOrderIndex = sIndex\r\n }\r\n })\r\n });\r\n Vue.set(state.factorySalesOrderList[factoryIndex].salesOrder[salesOrderIndex], 'delivery', delivery)\r\n },\r\n UPDATE_SALES_ORDER_LIST(state, salesOrder) {\r\n let factoryIndex = null;\r\n state.factorySalesOrderList.map((x, index) => {\r\n if (x.factory._id === salesOrder[0].factory._id) factoryIndex = index\r\n });\r\n for (let i = 0; i < salesOrder.length; i++) {\r\n const data = salesOrderSort([...state.factorySalesOrderList[factoryIndex].salesOrder.filter(x => x._id !== salesOrder._id), salesOrder[i]]);\r\n state.factorySalesOrderList[factoryIndex].salesOrder = data\r\n state.factorySalesOrderList[factoryIndex].totalCounts++\r\n }\r\n },\r\n CANCEL_SALESORDER(state, salesOrder) {\r\n let factoryIndex = null;\r\n state.factorySalesOrderList.map((x, index) => {\r\n if (x.factory._id === salesOrder.factory._id) factoryIndex = index\r\n });\r\n const salesOrderList = state.factorySalesOrderList[factoryIndex].salesOrder.filter((s) => s._id !== salesOrder._id);\r\n Vue.set(state.factorySalesOrderList[factoryIndex], 'salesOrder', salesOrderList)\r\n state.factorySalesOrderList[factoryIndex].totalCounts--\r\n },\r\n UPDATESALESOREDER(state, salesOrder) {\r\n let factoryIndex = null;\r\n state.factorySalesOrderList.map((x, fIndex) => {\r\n x.salesOrder.map(s => {\r\n if (s._id === salesOrder._id) factoryIndex = fIndex;\r\n })\r\n });\r\n const data = salesOrderSort([...state.factorySalesOrderList[factoryIndex].salesOrder.filter(x => x._id !== salesOrder._id), salesOrder]);\r\n state.factorySalesOrderList[factoryIndex].salesOrder = data\r\n let statistic = 0;\r\n state.factorySalesOrderList[factoryIndex].salesOrder.map(x => statistic += x.volPlan)\r\n Vue.set(state.factorySalesOrderList[factoryIndex], 'statistic', statistic);\r\n state.salesOrderList = salesOrderSortByindexInDay(state.factorySalesOrderList[factoryIndex].salesOrder);\r\n },\r\n CANCELSALEPRODSORDER(state, salesOrder) {\r\n state.salesOrderList = state.salesOrderList.filter(x => x._id !== salesOrder._id);\r\n state.totalCounts--;\r\n },\r\n UPDATE_SALES_PROD_OREDER(state, salesOrder) {\r\n Vue.set(state.salesOrderList, state.salesOrderList.findIndex(x => x._id === salesOrder._id), salesOrder)\r\n state.salesOrderList = salesOrderSortByindexInDay(state.salesOrderList);\r\n },\r\n\r\n SALES_OREDER_RETURN(state, salesOrder) {\r\n let [salesOrderIndex, factoryIndex] = [null, null];\r\n state.factorySalesOrderList.map((x, fIndex) => {\r\n x.salesOrder.map((s, sIndex) => {\r\n if (s._id === salesOrder._id) {\r\n factoryIndex = fIndex;\r\n salesOrderIndex = sIndex\r\n }\r\n })\r\n });\r\n Vue.set(state.factorySalesOrderList[factoryIndex].salesOrder, salesOrderIndex, salesOrder);\r\n },\r\n\r\n SET_SALES_ORDER_PROFIT_LIST(state, payload) {\r\n state.salesOrderProfitList = payload.stat;\r\n state.salesOrderProfitTotalCounts = payload.totalCounts\r\n },\r\n}\r\n\r\n/**\r\n * @description 按照计划生产时间排序,没有则是需求时间\r\n * @param {Array} array 目标集合\r\n */\r\nconst salesOrderSort = (array) => {\r\n array.sort((a, b) => {\r\n if (!a.producedAtPlan && !b.producedAtPlan) return dayjs(a.planArrivedAt).toDate() - dayjs(b.planArrivedAt).toDate();\r\n if (a.producedAtPlan && !b.producedAtPlan) return -1;\r\n return dayjs(a.producedAtPlan).toDate() - dayjs(b.producedAtPlan).toDate()\r\n });\r\n return array\r\n}\r\n\r\nconst salesOrderSortByindexInDay = (array) => {\r\n array.sort((a, b) => {\r\n return a.indexInDay - b.indexInDay\r\n });\r\n return array\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n getters,\r\n actions,\r\n mutations\r\n}","/*\r\n * @Author: zjt\r\n * @Email: 13928932429@163.com\r\n * @Date: 2020-08-15 16:19:58\r\n * @LastEditTime: 2020-08-16 10:26:29\r\n * @Description: 车辆信息api\r\n */\r\nimport axios from '@/utils/axios'\r\n\r\nexport const getVehicleList = (payload) => {\r\n return axios.get('/vehicle', {\r\n params: payload\r\n })\r\n}\r\n\r\nexport const getVehicleByID = (id) => {\r\n return axios.get(`/vehicle/${id}`)\r\n}\r\n\r\nexport const updateVehicle = (id, data) => {\r\n return axios.put(`/vehicle/${id}`, data)\r\n}\r\n\r\nexport const createVehicle = (data) => {\r\n return axios.post(`/vehicle`, data)\r\n}\r\n\r\nexport const deleteVehicle = (id) => {\r\n return axios.delete(`/vehicle/${id}`)\r\n}","/*\r\n * @Author: zjt\r\n * @Email: 13928932429@163.com\r\n * @Date: 2020-08-03 10:53:27\r\n * @LastEditTime: 2020-09-27 09:43:03\r\n * @Description: 车辆信息store\r\n */\r\nimport {\r\n getVehicleByID,\r\n getVehicleList,\r\n createVehicle,\r\n updateVehicle,\r\n deleteVehicle\r\n} from '@/api/vehicle'\r\nimport Vue from 'vue'\r\n\r\nconst state = {\r\n vehicleList: [],\r\n totalCounts: 0\r\n}\r\n\r\nconst getters = {\r\n getVehicleById: (state) => (id) => {\r\n return state.vehicleList.find(x => x._id === id)\r\n },\r\n}\r\n\r\nconst actions = {\r\n async getVehicleListAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const vehicleList = await getVehicleList(payload);\r\n commit('SETVEHICLELIST', vehicleList.data)\r\n return vehicleList.data\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async getVehicleByIDAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const vehicle = await getVehicleByID(payload)\r\n return vehicle.data\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async createVehicleAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const vehicle = await createVehicle(payload);\r\n commit('ADDNEWVEHICLE', vehicle.data)\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async updateVehicleAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const vehicle = await updateVehicle(payload.id, payload.data);\r\n commit('UPDATEVEHICLE', vehicle.data)\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async deleteVehicleAction({\r\n commit\r\n }, payload) {\r\n try {\r\n await deleteVehicle(payload)\r\n } catch (error) {\r\n throw error.message\r\n }\r\n }\r\n}\r\n\r\nconst mutations = {\r\n SETVEHICLELIST(state, payload) {\r\n state.vehicleList = payload.vehicleList;\r\n state.totalCounts = payload.totalCounts\r\n },\r\n ADDNEWVEHICLE(state, vehicle) {\r\n state.vehicleList.unshift(vehicle)\r\n state.totalCounts++\r\n },\r\n UPDATEVEHICLE(state, vehicle) {\r\n Vue.set(state.vehicleList, state.vehicleList.findIndex(x => x._id === vehicle._id), vehicle)\r\n },\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n actions,\r\n getters,\r\n mutations\r\n}","/*\r\n * @Author: zjt\r\n * @Email: 13928932429@163.com\r\n * @Date: 2020-08-26 13:49:01\r\n * @LastEditTime: 2020-09-14 21:32:05\r\n * @Description: 运输单api\r\n */\r\nimport axios from '@/utils/axios'\r\n\r\nexport const getDelivery = (payload) => {\r\n return axios.get('/delivery', {\r\n params: payload\r\n })\r\n}\r\n\r\nexport const updateDelivery = (id, data) => {\r\n return axios.put(`/delivery/${id}`, data)\r\n}\r\n\r\nexport const createDelivery = (data) => {\r\n return axios.post(`/delivery`, data)\r\n}\r\n\r\nexport const getDeliveryHistory = (payload) => {\r\n return axios.get('/delivery/list/history', {\r\n params: payload\r\n })\r\n}\r\n\r\nexport const createDeliveryBySalesOrder = (id) => {\r\n return axios.get(`/delivery_by_salesorder/${id}`);\r\n}","/*\r\n * @Author: zjt\r\n * @Email: 13928932429@163.com\r\n * @Date: 2020-08-26 11:05:00\r\n * @LastEditTime: 2020-09-27 09:38:18\r\n * @Description: 运输单store\r\n */\r\nimport {\r\n getDelivery,\r\n createDelivery,\r\n updateDelivery,\r\n getDeliveryHistory,\r\n createDeliveryBySalesOrder\r\n} from '@/api/delivery'\r\n\r\nconst state = {\r\n delivery: {}\r\n}\r\n\r\nconst getters = {\r\n getDeliveryById: (state) => (id) => {\r\n return state.delivery.find(x => x._id === id)\r\n }\r\n}\r\n\r\nconst actions = {\r\n async getDeliveryAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const delivery = await getDelivery(payload)\r\n commit('SETDELIVERY', delivery.data)\r\n return delivery.data\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async createDeliveryAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const newDelivery = await createDelivery(payload)\r\n return newDelivery.data\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async updateDeliveryAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const newDelivery = await updateDelivery(payload.id, payload.data)\r\n commit('salesOrder/UPDATEFACTORYSALESORDERDELIVERY', newDelivery.data, {\r\n root: true\r\n })\r\n return newDelivery.data\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async getDeliveryHistoryAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const deliveryList = await getDeliveryHistory(payload);\r\n return deliveryList.data\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async createDeliveryBySalesOrderAction({\r\n commit\r\n }, id) {\r\n try {\r\n const delivery = await createDeliveryBySalesOrder(id)\r\n // commit('SET_DELIVERY', delivery);\r\n return delivery.data\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n}\r\n\r\nconst mutations = {\r\n SETDELIVERY(state, payload) {\r\n state.delivery = payload\r\n },\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n getters,\r\n actions,\r\n mutations\r\n}","/*\r\n * @Author: zjt\r\n * @Email: 13928932429@163.com\r\n * @Date: 2020-08-30 21:37:01\r\n * @LastEditTime: 2020-08-31 09:13:13\r\n * @Description: 销售订单评论\r\n */\r\nimport axios from '@/utils/axios'\r\n\r\nexport const getSalesOrderCommentList = (payload) => {\r\n return axios.get('/salesOrderComment', {\r\n params: payload\r\n })\r\n}\r\n\r\nexport const updateSalesOrderComment = (id, data) => {\r\n return axios.put(`/salesOrderComment/${id}`, data)\r\n}\r\n\r\nexport const createSalesOrderComment = (data) => {\r\n return axios.post(`/salesOrderComment`, data)\r\n}","/*\r\n * @Author: zjt\r\n * @Email: 13928932429@163.com\r\n * @Date: 2020-08-30 16:24:58\r\n * @LastEditTime: 2020-09-27 09:39:42\r\n * @Description: 销售订单评论\r\n */\r\nimport {\r\n getSalesOrderCommentList,\r\n createSalesOrderComment,\r\n updateSalesOrderComment\r\n} from '@/api/salesOrderComment'\r\nimport Vue from 'vue'\r\n\r\nconst state = {\r\n salesOrderCommentList: [],\r\n}\r\n\r\nconst actions = {\r\n async getSalesOrderCommentListAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const salesOrderCommentList = await getSalesOrderCommentList(payload);\r\n commit('SETSALESORDERCOMMENTLIST', salesOrderCommentList.data)\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async createSalesOrderCommentAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const newSalesOrderComment = await createSalesOrderComment(payload);\r\n commit('ADDNEWSALESORDERCOMMENT', newSalesOrderComment.data)\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async updateSalesOrderCommentAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const newcSalesOrderComment = await updateSalesOrderComment(payload.id, payload.data)\r\n commit('UPDATESALESORDERCOMMENT', newcSalesOrderComment.data)\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n}\r\n\r\nconst mutations = {\r\n SETSALESORDERCOMMENTLIST(state, payload) {\r\n state.salesOrderCommentList = payload;\r\n state.totalCounts = payload.totalCounts\r\n },\r\n ADDNEWSALESORDERCOMMENT(state, salesOrderComment) {\r\n state.salesOrderCommentList.unshift(salesOrderComment)\r\n },\r\n UPDATESALESORDERCOMMENT(state, SalesOrderComment) {\r\n Vue.set(state.salesOrderCommentList, state.salesOrderCommentList.findIndex(x => x._id === SalesOrderComment._id), SalesOrderComment)\r\n },\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n actions,\r\n mutations\r\n}","/*\r\n * @Author: zjt\r\n * @Email: 13928932429@163.com\r\n * @Date: 2020-09-27 15:40:56\r\n * @LastEditTime: 2020-09-27 15:42:10\r\n * @Description: 销售记录api\r\n */\r\nimport axios from '@/utils/axios'\r\n\r\nexport const getSalesRecordList = (payload) => {\r\n return axios.get('/salesRecord', {\r\n params: payload\r\n })\r\n}\r\n\r\n// 获取销售标签\r\nexport const getSalesRecordTags = (payload) => {\r\n return axios.get('/salesRecordTags', {\r\n params: payload\r\n })\r\n}\r\n\r\nexport const getSalesRecordByID = (id) => {\r\n return axios.get(`/salesRecord/${id}`)\r\n}\r\n\r\nexport const updateSalesRecord = (id, data) => {\r\n return axios.put(`/salesRecord/${id}`, data)\r\n}\r\n\r\nexport const createSalesRecord = (data) => {\r\n return axios.post(`/salesRecord`, data)\r\n}","/*\r\n * @Author: zjt\r\n * @Email: 13928932429@163.com\r\n * @Date: 2020-09-27 15:37:11\r\n * @LastEditTime: 2020-09-28 11:05:32\r\n * @Description: 销售记录store\r\n */\r\nimport {\r\n getSalesRecordByID,\r\n getSalesRecordList,\r\n updateSalesRecord,\r\n createSalesRecord,\r\n getSalesRecordTags\r\n} from '@/api/salesRecord'\r\nimport Vue from 'vue'\r\n\r\nconst state = {\r\n salesRecordList: [],\r\n salesRecordTags: [],\r\n totalCounts: 0\r\n}\r\n\r\nconst actions = {\r\n async getSalesRecordListAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const salesRecordList = await getSalesRecordList(payload);\r\n commit('SETSALESRECORDLIST', salesRecordList.data)\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n\r\n // 获取标签并间接修改\r\n async getSalesRecordTagsAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const res = await getSalesRecordTags(payload)\r\n commit('SETSALESRECORDTAGS', res.data);\r\n return res.data.tags\r\n } catch (error) {\r\n throw error\r\n }\r\n },\r\n async getSalesRecordByIDAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const salesRecord = await getSalesRecordByID(payload)\r\n return salesRecord.data\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async createSalesRecordAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const salesRecord = await createSalesRecord(payload);\r\n commit('ADDSALESRECORD', salesRecord.data)\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async updateSalesRecordAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const salesRecord = await updateSalesRecord(payload.id, payload.data)\r\n commit('UPDATESALESRECORD', salesRecord.data)\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n}\r\n\r\nconst mutations = {\r\n SETSALESRECORDLIST(state, payload) {\r\n state.salesRecordList = payload.salesRecordList;\r\n state.totalCounts = payload.totalCounts\r\n },\r\n // 设置销售标签属性\r\n SETSALESRECORDTAGS(state, payload) {\r\n state.salesRecordTags = payload.tags;\r\n },\r\n ADDSALESRECORD(state, salesRecord) {\r\n state.salesRecordList.unshift(salesRecord)\r\n state.totalCounts++\r\n },\r\n UPDATESALESRECORD(state, salesRecord) {\r\n Vue.set(state.salesRecordList, state.salesRecordList.findIndex(x => x._id === salesRecord._id), salesRecord)\r\n }\r\n}\r\n\r\nconst getters = {\r\n\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n actions,\r\n mutations\r\n}","import axios from '@/utils/axios'\n\n// 批量创建用户权限\nexport const createCustomerPurview = (data) => {\n return axios.post(`/customerPurview`, data)\n}\n","import { getCustomerList } from '@/api/customer';\nimport { createCustomerPurview } from '@/api/customerPurview'\nimport Vue from 'vue'\n\nconst state = {\n customerPurviews:[],\n totalCounts: 0,\n}\n\nconst actions = {\n // 创建客户权限\n async createCustomerPurviewAction({ commit }, payload) {\n try {\n const newCustomerPurview = await createCustomerPurview(payload);\n commit('ADDNEWCUSTOMERPURVIEW', newCustomerPurview.data)\n } catch (error) {\n throw error\n }\n },\n}\n\nconst mutations = {\n ADDNEWCUSTOMERPURVIEW(state, customerPurview) {\n state.customerPurviews.unshift(customerPurview)\n state.totalCounts++\n },\n}\n\nexport default {\n namespaced: true,\n state,\n actions,\n mutations\n}","/* \n* @Author: zysQd\n* @Date: 2021-04-25 11:06:38\n * @Last Modified by: zysQd\n * @Last Modified time: 2022-08-16 10:23:50\n*/\nimport axios from '@/utils/axios'\n\nexport const getTechService = (payload) => {\n return axios.get('/tech_service', {\n params: payload\n })\n}\n\nexport const createTechService = (data) => {\n return axios.post(`/tech_service`, data)\n}\n\nexport const updateTechService = (id, data) => {\n return axios.put(`/tech_service/${id}`, data)\n}\n\nexport const assignTechPerson = (id, data) => {\n return axios.put(`/tech_service/assign_tech_person/${id}`, data)\n}\n\nexport const getTechServiceById = (id, data) => {\n return axios.get(`/tech_service/${id}`, data)\n}\n\nexport const techServiceVerify = (id, data) => {\n return axios.put(`/tech_service/verify/${id}`, data)\n}\n\nexport const getTechServiceStat = (payload) => {\n return axios.get(`/tech_service_stat`, {\n params: payload\n })\n}\n","/* * @Author: zysQd * @Date: 2021-04-25 11:13:33 * @Last Modified by: zysQd * @Last Modified time: 2021-04-25 11:13:33 */\nimport { getTechService, getTechServiceStat, createTechService, updateTechService, getTechServiceById, techServiceVerify, assignTechPerson } from '@/api/technicalService'\nimport Vue from 'vue'\n\nconst state = {\n techServices: [],\n techServicesStat: [],\n totalCounts: 0,\n statTotalCounts: 0,\n}\n\nconst actions = {\n async getTechnicalServiceAction({ commit }, payload) {\n try {\n const res = await getTechService(payload)\n commit('SETTECHSERVICELIST', res.data)\n return res.data.techServiceList\n } catch (error) {\n throw error\n }\n },\n async getTechServiceStatction({ commit }, payload) {\n try {\n const res = await getTechServiceStat(payload)\n commit('SET_TECHSERVICE_STAT_LIST', res.data)\n return res.data.techServiceList\n } catch (error) {\n throw error\n }\n },\n async createTechServiceAction({ commit }, payload) {\n try {\n const newTechService = await createTechService(payload);\n commit('ADDNEWTECHSERVICE', newTechService.data)\n } catch (error) {\n throw error.message\n }\n },\n async updateTechServiceAction({ commit }, payload) {\n try {\n const newTechService = await updateTechService(payload.id, payload.data);\n commit('UPDATE_TECHNICAL', newTechService.data)\n return newTechService.data\n } catch (error) {\n throw error\n }\n },\n async assignTechPersonAction({ commit }, payload) {\n try {\n const newTechService = await assignTechPerson(payload.id, payload.data);\n commit('UPDATE_TECHNICAL', newTechService.data)\n return newTechService.data\n } catch (error) {\n throw error\n }\n },\n async getTechServiceByIdAction({ commit }, payload) {\n try {\n const currentTechService = await getTechServiceById(payload.id, payload.data);\n return currentTechService.data\n } catch (error) {\n throw error\n }\n },\n async techServiceVerifyAction({ commit }, payload) {\n try {\n const newTechService = await techServiceVerify(payload.id, payload.data);\n commit('UPDATE_TECHNICAL', newTechService.data)\n return newTechService.data\n } catch (error) {\n throw error\n }\n },\n}\n\nconst mutations = {\n SETTECHSERVICELIST(state, payload) {\n state.techServices = payload.techServiceList\n state.totalCounts = payload.totalCounts\n },\n SET_TECHSERVICE_STAT_LIST(state, payload) {\n state.techServicesStat = payload\n state.statTotalCounts = payload.statTotalCounts\n },\n ADDNEWTECHSERVICE(state, techService){\n state.techServices.unshift(techService)\n state.totalCounts++\n },\n UPDATE_TECHNICAL(state, techService) {\n Vue.set(state.techServices, state.techServices.findIndex(x => x._id === techService._id), techService);\n },\n}\n\nexport default {\n namespaced: true,\n state,\n actions,\n mutations\n}","import axios from '@/utils/axios'\n\nexport const getCustomerDevelop = (payload) => {\n return axios.get('/customer_develop', {\n params: payload\n })\n}\n\nexport const getCustomerDevelopById = (id, data) => {\n return axios.get(`/customer_develop/${id}`, data)\n}\n\nexport const creatCustomerDevelop = (data) => {\n return axios.post(`/customer_develop/submit`, data)\n}\n\nexport const customerDevelopOperate = (id, data) => {\n return axios.put(`/customer_develop/operate/${id}`, data)\n}\n\nexport const deleteCustomerDevelop = (id, data) => {\n return axios.delete(`/customer_develop/${id}`, { data: { status: data } })\n}","import { getCustomerDevelop, creatCustomerDevelop, getCustomerDevelopById, customerDevelopOperate, deleteCustomerDevelop } from '@/api/customerDevelop'\nimport Vue from 'vue'\n\nconst state = {\n customerDevelops: [],\n customerDevelopOne: {},\n customerDevelopForCustomer: [],\n totalCounts: 0,\n}\n\nconst getters = {\n customerDevelopById: (state) => (id) => {\n return state.customerDevelops.find(x => x._id === id)\n },\n getApplyingCustomerDevelop: (state) => (id) => {\n return state.customerDevelops.filter(x => x._id === id)\n }\n}\n\nconst actions = {\n async getCustomerDevelopAction({ commit }, payload) {\n try {\n const res = await getCustomerDevelop(payload)\n commit('SETCUSTOMERDEVELOPLIST', res.data)\n return res.data.customerDevelopList\n } catch (error) {\n throw error\n }\n },\n async getCustomerDevelopForCustomerAction({ commit }, payload) {\n try {\n const res = await getCustomerDevelop(payload)\n commit('SET_CUSTOMERDEVELOPLIST_FORCUSTOMER', res.data)\n return res.data.customerDevelopList\n } catch (error) {\n throw error\n }\n },\n\n async getCustomerDevelopByIdAction({ commit }, payload) {\n try {\n const customerDevelopOne = await getCustomerDevelopById(payload)\n return customerDevelopOne.data\n } catch (error) {\n throw error.message\n }\n },\n\n async creatCustomerDevelopAction({ commit }, payload) {\n try{\n const newCustomerDevelop = await creatCustomerDevelop(payload);\n commit('ADDNEWTECHSERVICE', newCustomerDevelop.data)\n }catch (error) {\n throw error.message\n }\n },\n\n async customerDevelopOperateAction({ commit }, payload) {\n try {\n const newCustomerDevelop = await customerDevelopOperate(payload.id, payload.data);\n commit('CUSTOMERDEVOPERATE', newCustomerDevelop.data)\n return newCustomerDevelop.data\n } catch (error) {\n throw error\n }\n },\n\n async deleteCustomerDevelopAction({ commit }, payload) {\n try {\n await deleteCustomerDevelop(payload.id, payload.status)\n commit('DELETECUSTOMERDEVELOP', payload.id)\n return payload.id\n } catch (error) {\n throw error.message\n }\n }\n}\n\nconst mutations = {\n SETCUSTOMERDEVELOPLIST(state, payload) {\n state.customerDevelops = payload.customerDevelopList\n state.customerDevelopForCustomer = payload.customerDevelopList\n state.totalCounts = payload.totalCounts\n },\n SET_CUSTOMERDEVELOPLIST_FORCUSTOMER(state, payload) {\n state.customerDevelopForCustomer = payload.customerDevelopList\n state.totalCounts = payload.totalCounts\n },\n ADDNEWTECHSERVICE(state, customerDevelop) {\n state.customerDevelops.unshift(customerDevelop)\n state.totalCounts++\n },\n CUSTOMERDEVOPERATE(state, customerDevelop) {\n Vue.set(state.customerDevelopForCustomer, state.customerDevelopForCustomer.findIndex(x => x._id === customerDevelop._id), customerDevelop)\n },\n DELETECUSTOMERDEVELOP(state, id) {\n state.customerDevelops = state.customerDevelops.filter(e => e._id !== id)\n state.totalCounts--\n },\n}\n\nexport default {\n namespaced: true,\n state,\n getters,\n actions,\n mutations,\n}","import axios from '@/utils/axios'\n\nexport const getMLLatestCost = (payload) => {\n return axios.get('/ml_latest_cost', {\n params: payload\n })\n}\n\nexport const getMLLatestCostDetail = (payload) => {\n return axios.get(`/ml_latest_cost_detail/${payload}`)\n}\n\nexport const caclAllML = (payload) => {\n return axios.post('/calc_all_ml', payload)\n}\n\nexport const caclOneML = (payload) => {\n return axios.post('/calc_ml_cost_one_field', {\n params: payload\n })\n}","import { getMLLatestCost, caclAllML, caclOneML, getMLLatestCostDetail } from '@/api/caclMLCost'\nimport Vue from 'vue'\n\nconst state = {\n mlLatestCostList: [],\n currentMLLatestCost: {},\n}\n\nconst actions = {\n async getMLLatestCostAction({ commit }, payload) {\n try {\n const res = await getMLLatestCost(payload)\n commit('GET_ML_LATEST_COST', res.data)\n return res.data\n } catch (error) {\n throw error\n }\n },\n async getMLLatestCostDetailAction({ commit }, payload) {\n try {\n const res = await getMLLatestCostDetail(payload)\n commit('GET_ML_LATEST_COST_Detail', res.data)\n return res.data\n } catch (error) {\n throw error\n }\n },\n async caclAllMLAction({ commit }, payload) {\n try {\n await caclAllML(payload)\n } catch (error) {\n throw error\n }\n },\n\n async caclOneMLAction({ commit }, payload) {\n try {\n await caclOneML(payload)\n } catch (error) {\n throw error\n }\n },\n}\n\nconst mutations = {\n GET_ML_LATEST_COST(state, payload) {\n state.mlLatestCostList = payload.materialList\n },\n GET_ML_LATEST_COST_Detail(state, payload) {\n state.currentMLLatestCost = payload\n }\n}\n\nexport default {\n namespaced: true,\n state,\n actions,\n mutations,\n}","import axios from '@/utils/axios'\n\nexport const createSalesPrice = (payload ) => {\n return axios.post(`/sales_price_record`, payload)\n}\n\nexport const getSalesPrice = (payload ) => {\n return axios.get(`/sales_price_record/`, {\n params: payload\n })\n}\n\nexport const deleteSalesPrice = (id) => {\n return axios.delete(`/sales_price_record/${id}`)\n}","import { createSalesPrice, getSalesPrice, getSalesPriceById, deleteSalesPrice } from '@/api/salesPriceRecord'\nimport Vue from 'vue'\n\nimport caclSalesCost from './caclSalesCost'\n\n\nconst state = {\n salesPriceRecordList: [],\n totalCounts: 0,\n}\n\nconst actions = {\n\n async getSalesPriceAction({ commit }, payload) {\n try {\n const res = await getSalesPrice(payload)\n commit('SET_SALES_PRICE_RECORD', res.data)\n return res.data.salesPriceRecordList\n } catch (error) {\n throw error\n }\n },\n\n async createSalesPriceAction({ commit }, payload) {\n try {\n const newSalesPrice = await createSalesPrice(payload.form)\n newSalesPrice.data.rePrice = payload.form.price\n newSalesPrice.data.price = payload.form.price\n newSalesPrice.data.reSales = payload.form.sales\n newSalesPrice.data.startActiveDate = payload.form.startActiveDate\n commit('CREATE_SALES_PRICE_RECORD', newSalesPrice.data)\n return newSalesPrice.data\n } catch (error) {\n throw error\n }\n },\n\n async deleteSalesPriceAction({ commit }, payload) {\n try {\n await deleteSalesPrice(payload.id)\n commit('DELETE_SALES_PRICE', payload.id)\n return payload.id\n } catch (error) {\n throw error\n }\n }\n}\n\nconst mutations = {\n SET_SALES_PRICE_RECORD(state, payload) {\n state.salesPriceRecordList = payload.salesPriceRecordList\n state.totalCounts = payload.totalCounts\n },\n\n CREATE_SALES_PRICE_RECORD(state, payload) {\n if (payload.reCalcSalesCost) {\n payload.sales.price = payload.sales.price.price\n state.salesPriceRecordList.unshift(payload.sales)\n state.totalCounts++\n Vue.set(caclSalesCost.state.salesLatestCost, caclSalesCost.state.salesLatestCost.findIndex(x => x._id === payload.sales._id), payload.sales)\n } else {\n state.salesPriceRecordList.unshift(payload)\n state.totalCounts++\n const index = caclSalesCost.state.salesLatestCost.findIndex(x => x._id === payload.reSales)\n const sales = caclSalesCost.state.salesLatestCost[index]\n sales.price = { price: payload.rePrice }\n Vue.set(caclSalesCost.state.salesLatestCost, index, sales)\n }\n },\n DELETE_SALES_PRICE(state, id) { \n state.salesPriceRecordList = state.salesPriceRecordList.filter(e => e._id !== id)\n state.totalCounts--\n },\n}\n\nexport default {\n namespaced: true,\n state,\n actions,\n mutations,\n}","import axios from '@/utils/axios'\n\nexport const createSalesTransPrice = (payload ) => {\n return axios.post(`/sales_trans_cost_record`, payload)\n}\n\nexport const getSalesTransPrice = (payload ) => {\n return axios.get(`/sales_trans_cost_record/`, {\n params: payload\n })\n}\n\nexport const deleteTransCost = (id) => {\n return axios.delete(`/sales_trans_cost_record/${id}`)\n}","import { createSalesTransPrice, getSalesTransPrice, deleteTransCost } from '@/api/salesTransCostRecord'\nimport Vue from 'vue'\n\nimport caclSalesCost from './caclSalesCost'\n\n\nconst state = {\n salesTransCostRecordList: [],\n totalCounts: 0,\n}\n\nconst actions = {\n\n async getSalesTransPriceAction({ commit }, payload) {\n try {\n const res = await getSalesTransPrice(payload)\n commit('SET_SALES_PRICE_RECORD', res.data)\n return res.data.salesTransCostRecordList\n } catch (error) {\n throw error\n }\n },\n\n async createSalesTransPriceAction({ commit }, payload) {\n try {\n const newSalesTransPrice = await createSalesTransPrice(payload.form)\n newSalesTransPrice.data.rePrice = payload.form.cost\n newSalesTransPrice.data.cost = payload.form.cost\n newSalesTransPrice.data.reSales = payload.form.sales\n newSalesTransPrice.data.startActiveDate = payload.form.startActiveDate\n commit('CREATE_SALES_PRICE_RECORD', newSalesTransPrice.data)\n return newSalesTransPrice.data\n } catch (error) {\n throw error\n }\n },\n\n async deleteTransCostAction({ commit }, payload) {\n try {\n await deleteTransCost(payload.id)\n commit('DELETE_TRANS_COST', payload.id)\n return payload.id\n } catch (error) {\n throw error\n }\n }\n}\n\nconst mutations = {\n SET_SALES_PRICE_RECORD(state, payload) {\n state.salesTransCostRecordList = payload.salesTransCostRecordList\n state.totalCounts = payload.totalCounts\n },\n\n CREATE_SALES_PRICE_RECORD(state, payload) {\n if (payload.reCalcSalesCost) {\n payload.sales.cost = payload.sales.transCost.cost\n state.salesTransCostRecordList.unshift(payload.sales)\n state.totalCounts++\n Vue.set(caclSalesCost.state.salesLatestCost, caclSalesCost.state.salesLatestCost.findIndex(x => x._id === payload.sales._id), payload.sales)\n } else {\n state.salesTransCostRecordList.unshift(payload)\n state.totalCounts++\n const index = caclSalesCost.state.salesLatestCost.findIndex(x => x._id === payload.reSales)\n const sales = caclSalesCost.state.salesLatestCost[index]\n sales.transCost = { cost: payload.rePrice }\n Vue.set(caclSalesCost.state.salesLatestCost, index, sales)\n }\n },\n DELETE_TRANS_COST(state, id) { \n state.salesTransCostRecordList = state.salesTransCostRecordList.filter(e => e._id !== id)\n state.totalCounts--\n },\n}\n\nexport default {\n namespaced: true,\n state,\n actions,\n mutations,\n}","import axios from '@/utils/axios'\r\n\r\nexport const createCustomerContact = (payload) => {\r\n return axios.post('/customer_contact', payload)\r\n}\r\n\r\nexport const getCustomerContact = (payload ) => {\r\n return axios.get(`/customer_contact/`, {\r\n params: payload\r\n })\r\n}\r\n\r\nexport const getCustomerContactById = (id) => {\r\n return axios.get(`/customer_contact/${id}`)\r\n}\r\n\r\nexport const updateCustomerContact = (id, data) => {\r\n return axios.put(`/customer_contact/${id}`, data)\r\n}\r\n\r\nexport const deleteCustomerContact = (id) => {\r\n return axios.delete(`/customer_contact/${id}`)\r\n}","import { createCustomerContact, getCustomerContact, getCustomerContactById, updateCustomerContact, deleteCustomerContact } from '@/api/customerContact'\r\nimport Vue from 'vue'\r\n\r\nconst state = {\r\n customerContactList: [],\r\n selectCustomerContact: {},\r\n totalCounts: 0,\r\n}\r\n\r\nconst actions = {\r\n\r\n async createCustomerContactAction({ commit }, payload) {\r\n try {\r\n const newCustomerContact = await createCustomerContact(payload.form)\r\n commit('CREATE_CUSTOMER_CONTACT', newCustomerContact.data)\r\n } catch (error) {\r\n throw error\r\n }\r\n },\r\n\r\n async getCustomerContactAction({ commit }, payload) {\r\n try {\r\n const res = await getCustomerContact(payload)\r\n commit('SET_CUSTOMER_CONTACT_RECORD', res.data)\r\n return res.data.customerContactList\r\n } catch (error) {\r\n throw error\r\n }\r\n },\r\n async getCustomerContactByIdAction({ commit }, id) {\r\n try {\r\n const customerContact = await getCustomerContactById(id)\r\n commit('SET_SELECT_CUSTOMER_CONTACT', customerContact.data)\r\n return customerContact.data\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n\r\n async updateCustomerContactAction({ commit }, payload) {\r\n try {\r\n const newCustomerContact = await updateCustomerContact(payload.id, payload.data)\r\n commit(\"UPDATE_CUSTOMER_CONTACT\", newCustomerContact.data)\r\n return newCustomerContact.data\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n\r\n async deleteCustomerContactAction({ commit }, payload) {\r\n try {\r\n await deleteCustomerContact(payload)\r\n commit('DELETE_CUSTOMER_CONTACT', payload)\r\n } catch (error) {\r\n throw error.message\r\n }\r\n }\r\n}\r\n\r\nconst mutations = {\r\n CREATE_CUSTOMER_CONTACT(state, payload) {\r\n state.customerContactList.unshift(payload)\r\n state.selectCustomerContact = payload\r\n state.totalCounts++\r\n },\r\n\r\n SET_CUSTOMER_CONTACT_RECORD(state, payload) {\r\n state.customerContactList = payload.customerContactList\r\n state.totalCounts = payload.totalCounts\r\n },\r\n\r\n SET_SELECT_CUSTOMER_CONTACT(state, payload) { \r\n state.selectCustomerContact = payload\r\n },\r\n\r\n UPDATE_CUSTOMER_CONTACT(state, payload) { \r\n console.log(payload);\r\n Vue.set(state.customerContactList, state.customerContactList.findIndex(x => x._id === payload._id), payload)\r\n state.selectCustomerContact = payload\r\n },\r\n\r\n DELETE_CUSTOMER_CONTACT(state, id) { \r\n state.customerContactList = state.customerContactList.filter(e => e._id !== id)\r\n state.selectCustomerContact = {}\r\n state.totalCounts--\r\n },\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n actions,\r\n mutations,\r\n}","import axios from '@/utils/axios'\r\n\r\nexport const createSalesPromoFeeRecord = (payload ) => {\r\n return axios.post(`/sales_promo_fee_record`, payload)\r\n}\r\n\r\nexport const createNoContactSalesPromoFeeRecord = (payload) => {\r\n return axios.post(`/sales_promo_fee_record_no_contact`, payload)\r\n}\r\n\r\nexport const getSalesPromoFee = (payload ) => {\r\n return axios.get(`/sales_promo_fee_record`, {\r\n params: payload\r\n })\r\n}\r\n\r\nexport const getCurrentPromoFee = (id) => {\r\n return axios.get(`/active_promo_fee/${id}`)\r\n}\r\n\r\nexport const setActivcePromoFee = (id, data) => {\r\n return axios.put(`/set_active_promo_fee/${id}`, data)\r\n}\r\n\r\nexport const updatePromoFee = (id, data) => {\r\n return axios.put(`/update_sales_promo_fee/${id}`, data)\r\n}","import { createSalesPromoFeeRecord, getSalesPromoFee, getCurrentPromoFee, setActivcePromoFee, createNoContactSalesPromoFeeRecord, updatePromoFee } from '@/api/salesPromoFeeRecord'\r\nimport Vue from 'vue'\r\n\r\nimport caclSalesCost from './caclSalesCost'\r\n\r\nconst state = {\r\n salesPromoFeeRecordList: [],\r\n currentPromoFeeList: [],\r\n promoFeeSum: 0,\r\n totalCounts: 0,\r\n currentTotalCounts: 0,\r\n}\r\n\r\nconst actions = {\r\n\r\n async getSalesPromoFeeAction({ commit }, payload) {\r\n try {\r\n const res = await getSalesPromoFee(payload)\r\n commit('SET_SALES_PROMOFEE_RECORD', res.data)\r\n return res.data.salesPromoFeeRecordList\r\n } catch (error) {\r\n throw error\r\n }\r\n },\r\n\r\n async getCurrentPromoFeeAction({ commit }, payload) {\r\n try {\r\n const res = await getCurrentPromoFee(payload.id)\r\n commit('SET_CURRENT_PROMOFEE_RECORD', res.data)\r\n return res.data\r\n } catch (error) {\r\n throw error\r\n }\r\n },\r\n\r\n async createSalesPromoFeeRecordAction({ commit }, payload) {\r\n try {\r\n const newSalesPromoFee = await createSalesPromoFeeRecord(payload.form)\r\n commit('CREATE_SALES_PROMOFEE_RECORD', newSalesPromoFee.data)\r\n } catch (error) {\r\n throw error\r\n }\r\n },\r\n\r\n async updatePromoFeeAction({ commit }, payload) {\r\n try {\r\n const newActivcePromoFee = await updatePromoFee(payload.id, payload.data)\r\n commit(\"UPDATE_SALES_PROMOFEE_RECORD\", newActivcePromoFee.data)\r\n return newActivcePromoFee\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n\r\n async setActivcePromoFeeAction({ commit }, payload) {\r\n try {\r\n const newActivcePromoFee = await setActivcePromoFee(payload.id, payload.data)\r\n commit(\"SET_ACTIVE_PROMOFEE\", payload)\r\n return newActivcePromoFee\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n\r\n async createNoContactSalesPromoFeeRecordAction({ commit }, payload) {\r\n try {\r\n const newSalesPromoFee = await createNoContactSalesPromoFeeRecord(payload.form)\r\n newSalesPromoFee.data.rePrice = payload.form.fee\r\n newSalesPromoFee.data.reSales = payload.form.sales\r\n commit('CREATE_NO_CONTACT_SALES_PROMOFEE_RECORD', newSalesPromoFee.data)\r\n return newSalesPromoFee.data\r\n } catch (error) {\r\n throw error\r\n }\r\n }\r\n}\r\n\r\nconst mutations = {\r\n SET_SALES_PROMOFEE_RECORD(state, payload) {\r\n for (let i = 0; i < state.currentPromoFeeList.length; i++) {\r\n payload.salesPromoFeeRecordList.filter(x => {\r\n if (state.currentPromoFeeList[i]._id === x._id) {\r\n x._checked = true\r\n }\r\n })\r\n }\r\n state.salesPromoFeeRecordList = payload.salesPromoFeeRecordList\r\n state.totalCounts = payload.totalCounts\r\n },\r\n\r\n SET_CURRENT_PROMOFEE_RECORD(state, payload) {\r\n state.currentPromoFeeList = payload.promoFeeList\r\n state.promoFeeSum = payload.promoFeeSum\r\n state.currentTotalCounts = payload.totalCounts\r\n },\r\n\r\n CREATE_SALES_PROMOFEE_RECORD(state, payload) {\r\n state.salesPromoFeeRecordList.unshift(payload)\r\n state.totalCounts++\r\n },\r\n CREATE_NO_CONTACT_SALES_PROMOFEE_RECORD(state, payload) {\r\n if (payload.reCalcSalesCost) {\r\n Vue.set(caclSalesCost.state.salesLatestCost, caclSalesCost.state.salesLatestCost.findIndex(x => x._id === payload.sales._id), payload.sales)\r\n } else {\r\n const index = caclSalesCost.state.salesLatestCost.findIndex(x => x._id === payload.reSales)\r\n const sales = caclSalesCost.state.salesLatestCost[index]\r\n sales.promoFee = { fee: payload.rePrice }\r\n sales.promoFeeSum = payload.rePrice\r\n Vue.set(caclSalesCost.state.salesLatestCost, index, sales)\r\n \r\n }\r\n },\r\n\r\n SET_ACTIVE_PROMOFEE(state, activePromoFee) {\r\n const index = caclSalesCost.state.salesLatestCost.findIndex(x => x._id === activePromoFee.id)\r\n const sales = caclSalesCost.state.salesLatestCost[index]\r\n sales.promoFeeSum = activePromoFee.data.promoFee.reduce((p, c) => {\r\n return p+c.fee\r\n }, 0)\r\n Vue.set(caclSalesCost.state.salesLatestCost, caclSalesCost.state.salesLatestCost.findIndex(x => x._id === activePromoFee.id), sales)\r\n },\r\n\r\n UPDATE_SALES_PROMOFEE_RECORD(state, activePromoFee) {\r\n Vue.set(state.salesPromoFeeRecordList, state.salesPromoFeeRecordList.findIndex(x => x._id === activePromoFee._id), activePromoFee)\r\n },\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n actions,\r\n mutations,\r\n}","import axios from '@/utils/axios'\n\nexport const getSemiItem = (payload) => {\n return axios.get('/semi_item', {\n params: payload\n })\n}\n\nexport const getSemiProduceFactory = (id) => {\n return axios.get(`/semi_produce_factory/${id}`)\n}\n\nexport const createSemiItem = (data) => {\n return axios.post(`/semi_item`, data)\n}\n\nexport const setSemiItemProdrecipe = (data) => {\n return axios.post(`/set_semi_item_prodrecipe`, data)\n}\n\nexport const updateSemiItem = (id, data) => {\n return axios.put(`/semi_item/${id}`, data)\n}","import { getSemiItem, getSemiProduceFactory, createSemiItem, setSemiItemProdrecipe, updateSemiItem } from '@/api/semiItem'\nimport Vue from 'vue'\n\nconst state = {\n semiItemList: [],\n totalCounts: 0,\n}\n\nconst actions = {\n async getSemiItemAction({ commit }, payload) {\n try {\n const res = await getSemiItem(payload)\n commit('SET_SEMIITEMLIST', res.data)\n return res.data.semiItemList\n } catch (error) {\n throw error\n }\n },\n async getSemiProduceFactoryAction({ commit }, payload) {\n try {\n const res = await getSemiProduceFactory(payload)\n return res.data.semiItemList\n } catch (error) {\n throw error\n }\n },\n async createSemiItemAction({ commit }, payload) {\n try {\n const newSemiItem = await createSemiItem(payload);\n commit('ADD_NEW_SEMIITEM', newSemiItem.data)\n } catch (error) {\n throw error.message\n }\n },\n async setSemiItemProdrecipeAction({ commit }, payload) {\n try {\n const res = await setSemiItemProdrecipe(payload);\n return res.data.result\n } catch (error) {\n throw error.message\n }\n },\n\n async updateSemiItemAction({ commit }, payload) {\n try {\n const newSemiItem = await updateSemiItem(payload.id, payload.data)\n commit(\"UPDATE_SEMIITEM\", newSemiItem.data)\n return newSemiItem.data\n } catch (error) {\n throw error.message\n }\n },\n\n}\n\nconst mutations = {\n SET_SEMIITEMLIST(state, payload) {\n state.semiItemList = payload.semiItemList\n state.totalCounts = payload.totalCounts\n },\n ADD_NEW_SEMIITEM(state, semiItem){\n state.semiItemList.unshift(semiItem)\n state.totalCounts++\n },\n UPDATE_SEMIITEM(state, semiItem) {\n Vue.set(state.semiItemList, state.semiItemList.findIndex(x => x._id === semiItem._id), semiItem)\n },\n\n}\n\nexport default {\n namespaced: true,\n state,\n actions,\n mutations\n}","import axios from '@/utils/axios'\n\nexport const getSemiLatestCost = (payload) => {\n return axios.get('/semi_item_latest_cost', {\n params: payload\n })\n}\n\nexport const getSemiLatestCostDetail = (payload) => {\n return axios.get(`/semi_latest_cost_detail/${payload}`)\n}\n\nexport const calcSemiCost = (payload) => {\n return axios.post('/calc_semi_cost', payload)\n}\n","import { getSemiLatestCost, calcSemiCost, getSemiLatestCostDetail } from '@/api/calcSemiCost'\nimport Vue from 'vue'\nimport _ from \"lodash\"\n\nconst state = {\n semiItemCostList: [],\n currentSemiItemCost: {},\n}\n\nconst actions = {\n async getSemiLatestCostAction({ commit }, payload) {\n try {\n const query = _.omit(payload, \"update\")\n const res = await getSemiLatestCost(query)\n if (payload && payload.update) {\n commit('UPDATE_SEMI_LATEST_COST', res.data)\n } else {\n commit('GET_SEMI_LATEST_COST', res.data)\n }\n \n return res.data\n } catch (error) {\n throw error\n }\n },\n async getSemiLatestCostDetailAction({ commit }, payload) {\n try {\n const res = await getSemiLatestCostDetail(payload)\n commit('GET_SEMI_LATEST_COST_Detail', res.data)\n return res.data\n } catch (error) {\n throw error\n }\n },\n async caclSemiCostAction({ commit }, payload) {\n try {\n const res = await calcSemiCost(payload)\n return res.data\n } catch (error) {\n throw error\n }\n },\n}\n\nconst mutations = {\n GET_SEMI_LATEST_COST(state, payload) {\n state.semiItemCostList = payload\n },\n GET_SEMI_LATEST_COST_Detail(state, payload) {\n state.currentSemiItemCost = payload\n },\n UPDATE_SEMI_LATEST_COST(state, payload) {\n Vue.set(state.semiItemCostList, state.semiItemCostList.findIndex(x => x._id === payload[0]._id), payload[0]);\n\n }\n}\n\nexport default {\n namespaced: true,\n state,\n actions,\n mutations,\n}","import axios from '@/utils/axios'\n\nexport const getStorageTankList = (payload) => {\n return axios.get('/storageTank', {\n params: payload\n })\n}\n\nexport const getStorageTankByID = (id) => {\n return axios.get(`/storageTank/${id}`)\n}\n\nexport const updateStorageTank = (id, data) => {\n return axios.put(`/storageTank/${id}`, data)\n}\n\nexport const createStorageTank = (data) => {\n return axios.post(`/storageTank`, data)\n}\n\nexport const deleteStorageTank = (id) => {\n return axios.delete(`/storageTank/${id}`)\n}","import { getStorageTankList, createStorageTank } from '@/api/storageTank'\nimport Vue from 'vue'\n\nconst state = {\n storageTankList: [],\n totalCounts: 0\n}\n\nconst actions = {\n async getStorageTankListAction({ commit }, payload) {\n try {\n const storageTankList = await getStorageTankList(payload);\n commit('SETSTORAGETANKLIST', storageTankList.data)\n } catch (error) {\n throw error.message\n }\n },\n async getTankRentalByIDAction({ commit }, payload) {\n try {\n const tankRental = await getTankRentalByID(payload)\n return tankRental.data\n } catch (error) {\n throw error.message\n }\n },\n async createStorageTankAction({ commit }, payload) {\n try {\n const storageTank = await createStorageTank(payload);\n commit('ADD_STORAGETANK', storageTank.data)\n } catch (error) {\n throw error.message\n }\n },\n async updateTankRentalAction({ commit }, payload) {\n try {\n const tankRental = await updateTankRental(payload.id, payload.data)\n commit('UPDATETANKRENTAL', tankRental.data)\n } catch (error) {\n throw error.message\n }\n },\n async deleteTankRentalAction({ commit }, payload) {\n try {\n await deleteTankRental(payload)\n commit('DELETETANKRENTAL', payload)\n } catch (error) {\n throw error.message\n }\n }\n}\n\nconst mutations = {\n SETSTORAGETANKLIST(state, payload) {\n state.storageTankList = payload.storageTankList;\n state.totalCounts = payload.totalCounts\n },\n ADD_STORAGETANK(state, storageTank) {\n state.storageTankList.unshift(storageTank)\n state.totalCounts++\n },\n DELETETANKRENTAL(state, id) {\n state.storageTankList = state.storageTankList.filter(e => e._id !== id)\n state.totalCounts--\n },\n UPDATETANKRENTAL(state, tankRental) {\n Vue.set(state.storageTankList, state.storageTankList.findIndex(x => x._id === tankRental._id), tankRental)\n }\n}\n\nexport default {\n namespaced: true,\n state,\n actions,\n mutations\n}","import axios from '@/utils/axios'\r\n\r\n// export const createSalesTransPrice = (payload ) => {\r\n// return axios.post(`/sales_trans_cost_record`, payload)\r\n// }\r\n\r\nexport const getSalesStatVol = (payload ) => {\r\n return axios.get(`/sales_stat_for_vol`, {\r\n params: payload\r\n })\r\n}\r\n\r\nexport const getSalesStatReceive = (payload ) => {\r\n return axios.get(`/sales_stat_for_receive`, {\r\n params: payload\r\n })\r\n}\r\n\r\nexport const getMySalesStatSum = (payload ) => {\r\n return axios.get(`/my_sales_stat_sum`, {\r\n params: payload\r\n })\r\n}\r\n\r\nexport const getStatViewB = (payload ) => {\r\n return axios.get(`/stat_view_B`, {\r\n params: payload\r\n })\r\n}\r\n\r\nexport const getStatViewC = (payload ) => {\r\n return axios.get(`/stat_view_C`, {\r\n params: payload\r\n })\r\n}\r\n\r\nexport const postSalesStatVol = (data) => {\r\n return axios.post(`/sales_stat_for_vol`, data)\r\n}\r\n\r\nexport const postSalesStatReceive = (data) => {\r\n return axios.post(`/sales_stat_for_receive`, data)\r\n}\r\n\r\nexport const addReceiveTask = (id, data) => {\r\n return axios.put(`/add_receive_task/${id}`, data)\r\n}\r\n\r\nexport const setReceiveTask = (id, data) => {\r\n return axios.put(`/set_receive_task/${id}`, data)\r\n}\r\n\r\nexport const autoSetReceiveTask = (data) => {\r\n return axios.post(`/auto_set_receive_task`, data)\r\n}\r\n\r\nexport const getDuiZhangDan = (payload) => {\r\n return axios.get(`/get_duizhangdan`, {\r\n params: payload\r\n })\r\n}","import {\r\n getSalesStatVol,\r\n getSalesStatReceive,\r\n postSalesStatVol,\r\n postSalesStatReceive,\r\n getMySalesStatSum,\r\n getStatViewB,\r\n getStatViewC,\r\n addReceiveTask,\r\n autoSetReceiveTask,\r\n setReceiveTask,\r\n getDuiZhangDan\r\n} from '@/api/salesStat'\r\nimport Vue from 'vue'\r\n\r\nconst state = {\r\n salesStatVol: [],\r\n volTotalCounts: 0,\r\n salesStatReceive: [],\r\n receiveTotalCounts: 0,\r\n salesStatSum: {},\r\n statViewB: [],\r\n statViewBCounts: 0,\r\n statViewC: [],\r\n statViewCCounts: 0,\r\n duizhangdan: [],\r\n}\r\n\r\nconst getters = {}\r\n\r\nconst actions = {\r\n async getSalesStatVolAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const res = await getSalesStatVol(payload)\r\n commit('SET_SALES_STAT_VOL', res.data)\r\n return res.data\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async getMySalesStatSumAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const res = await getMySalesStatSum(payload)\r\n commit('SET_MY_SALES_STAT_SUM', res.data)\r\n return res.data\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async getSalesStatReceiveAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const res = await getSalesStatReceive(payload)\r\n commit('SET_SALES_STAT_RECEIVE', res.data)\r\n return res.data\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async getStatViewBAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const res = await getStatViewB(payload)\r\n commit('SET_STAT_VIEW_B', res.data)\r\n return res.data\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async getStatViewCAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const res = await getStatViewC(payload)\r\n commit('SET_STAT_VIEW_C', res.data)\r\n return res.data\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async postSalesStatVolAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const statVol = await postSalesStatVol(payload);\r\n commit('POST_SALES_STAT_VOL', statVol.data)\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async postSalesStatReceiveAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const statReceive = await postSalesStatReceive(payload);\r\n commit('POST_SALES_STAT_RECEIVE', statReceive.data)\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n\r\n async updateReciveTaskAction({ commit }, payload) {\r\n try {\r\n const salesStat = await addReceiveTask(payload.id, { year: payload.year, month: payload.month, setReceiveTask: payload.setReceiveTask })\r\n commit('UPDATE_RECIVE_TASK', salesStat.data.salesStat)\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n\r\n async setReceiveTaskAction({ commit }, payload) {\r\n try {\r\n const salesStat = await setReceiveTask(payload.id, payload.data)\r\n commit('UPDATE_RECIVE_TASK', salesStat.data.salesStat)\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n\r\n async autoSetReceiveTaskAction({ commit }, payload) {\r\n try {\r\n const salesStat = await autoSetReceiveTask(payload)\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n\r\n async getDuiZhangDanAction({ commit }, payload) {\r\n try {\r\n const res = await getDuiZhangDan(payload)\r\n commit('SET_DUIZHANGDAN', res.data)\r\n return res.data\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n}\r\n\r\nconst mutations = {\r\n SET_SALES_STAT_VOL(state, payload) {\r\n state.salesStatVol = payload.salesList\r\n state.volTotalCounts = payload.totalCounts\r\n },\r\n SET_SALES_STAT_RECEIVE(state, payload) {\r\n state.salesStatReceive = payload.customerList\r\n state.receiveTotalCounts = payload.totalCounts\r\n },\r\n SET_MY_SALES_STAT_SUM(state, payload) {\r\n if (payload.length > 0) {\r\n state.salesStatSum = payload[0]\r\n } else {\r\n state.salesStatSum = []\r\n }\r\n },\r\n SET_STAT_VIEW_B(state, payload) {\r\n state.statViewB = payload.salesStat\r\n state.statViewBCounts = payload.totalCounts\r\n },\r\n SET_STAT_VIEW_C(state, payload) {\r\n state.statViewC = payload.salesStat\r\n state.statViewCCounts = payload.totalCounts\r\n },\r\n SET_DUIZHANGDAN(state, payload) {\r\n state.duizhangdan = payload.list\r\n // state.volTotalCounts = payload.totalCounts\r\n },\r\n POST_SALES_STAT_VOL(state, statVol) {\r\n const index = state.salesStatVol.findIndex(x => x._id === statVol.sales)\r\n const data = state.salesStatVol[index]\r\n data.salesStat.estSalesVolume = statVol.estSalesVolume\r\n Vue.set(state.salesStatVol, index, data)\r\n // Vue.set(state.salesStatVol, state.salesStatVol.findIndex(x => x._id === statVol.sales), statVol)\r\n },\r\n POST_SALES_STAT_RECEIVE(state, statVol) {\r\n const index = state.salesStatReceive.findIndex(x => x._id === statVol.customer)\r\n const data = state.salesStatReceive[index]\r\n data.salesStat.estReceive = statVol.estReceive\r\n Vue.set(state.salesStatReceive, index, data)\r\n // Vue.set(state.salesStatReceive, state.salesStatReceive.findIndex(x => x._id === statVol._id), statVol)\r\n },\r\n\r\n UPDATE_RECIVE_TASK(state, salesStat) {\r\n const index = state.statViewB.findIndex(x => x._id === salesStat._id)\r\n const updateStat = state.statViewB[index];\r\n updateStat.arTable = salesStat.arTable;\r\n updateStat.receiveTaskSum = salesStat.receiveTaskSum;\r\n Vue.set(state.statViewB, index, updateStat)\r\n },\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n getters,\r\n actions,\r\n mutations\r\n}","import vue from '@/main' // 引入this\nimport Vue from 'vue'\n\nconst state = {\n receiveList: [],\n totalCounts:0\n}\n\nconst actions = {\n async getReceiveListAction({ commit }, payload) {\n try {\n const res = await vue.$socket.emit(\"receive:get\", payload);\n commit('SET_RECEIVE', res)\n return res\n } catch (error) {\n throw error\n }\n },\n async createReceiveAction({ commit }, payload) {\n try {\n const res = await vue.$socket.emit(\"receive:create\", payload);\n commit('ADD_NEWRECEIVE', res)\n } catch (error) {\n throw error\n }\n },\n async updateReceiveAction({ commit }, payload) {\n try {\n const newReceive = await vue.$socket.emit(\"receive:update\", {id:payload.id, updateData:payload.data});\n commit(\"UPDATE_RECEIVE\", newReceive)\n return newReceive\n } catch (error) {\n throw error.message\n }\n },\n async deleteReceiveAction({ commit }, payload) {\n try {\n await vue.$socket.emit(\"receive:delete\", payload);\n commit('DELETE_RECEIVE', payload)\n return payload.id\n } catch (error) {\n throw error\n }\n },\n socketAddReceiveAction({ commit }, payload) {\n try {\n commit(\"ADD_NEWRECEIVE\", payload)\n } catch (error) {\n throw error.message\n }\n },\n socketUpdateReceiveAction({ commit }, payload) {\n try {\n commit(\"UPDATE_RECEIVE\", payload)\n } catch (error) {\n throw error.message\n }\n },\n // socketDeleteReceiveAction({ commit }, payload) {\n // try {\n // commit(\"DELETE_RECEIVE\", payload)\n // } catch (error) {\n // throw error.message\n // }\n // },\n}\n\nconst mutations = {\n SET_RECEIVE(state, payload) {\n state.receiveList = payload.receiveList\n state.totalCounts = payload.totalCounts\n },\n ADD_NEWRECEIVE(state, receive) {\n state.receiveList.unshift(receive)\n state.totalCounts++\n },\n UPDATE_RECEIVE(state, receiveList) {\n Vue.set(state.receiveList, state.receiveList.findIndex(x => x._id === receiveList._id), receiveList)\n },\n DELETE_RECEIVE(state, id) {\n state.receiveList = state.receiveList.filter(e => e._id !== id)\n state.totalCounts--\n },\n}\n\nexport default {\n namespaced: true,\n state,\n actions,\n mutations,\n}","import axios from '@/utils/axios'\n\nexport const getBankAccount = (payload) => {\n return axios.get('/receive_account', {\n params: payload\n })\n}\n\nexport const getSimpleBankAccount = (payload) => {\n return axios.get('/simple_receive_account', {\n params: payload\n })\n}\n\nexport const createAccount = (data) => {\n return axios.post('/receive_account', data)\n}\n\nexport const updateBankAccount = (id, data) => {\n return axios.put(`/receive_account/${id}`, data)\n}\n\nexport const deletePurchase = (id) => {\n return axios.delete(`/calcPurchase/${id}`)\n}","import { getBankAccount, createAccount, updateBankAccount, getSimpleBankAccount } from '@/api/bankAccount'\nimport Vue from 'vue'\n\nconst state = {\n bankAccount: [],\n simpleBankAccount: [],\n totalCounts: 0,\n}\n\nconst actions = {\n async getBankAccountAction({ commit }, payload) {\n try {\n const res = await getBankAccount(payload)\n commit('SET_RECEIVE_ACCOUNT', res.data)\n return res.data\n } catch (error) {\n throw error.message\n }\n },\n async getSimpleBankAccountAction({ commit }, payload) {\n try {\n const res = await getSimpleBankAccount(payload)\n commit('SET_SIMPLE_RECEIVE_ACCOUNT', res.data)\n return res.data\n } catch (error) {\n throw error.message\n }\n },\n async createAccountAction({ commit }, payload) {\n try {\n const newAccount = await createAccount(payload);\n commit('ADD_ACCOUNT', newAccount.data)\n } catch (error) {\n throw error.message\n }\n },\n\n async updateBankAccountAction({ commit }, payload) {\n try {\n const receive = await updateBankAccount(payload.id, payload.data)\n commit(\"UPDATE_RECEIVE_ACCOUNT\", receive.data)\n return receive.data\n } catch (error) {\n throw error.message\n }\n },\n}\n\nconst mutations = {\n SET_RECEIVE_ACCOUNT(state, payload) {\n state.bankAccount = payload.receiveList\n state.totalCounts = payload.totalCounts\n },\n SET_SIMPLE_RECEIVE_ACCOUNT(state, payload) {\n state.simpleBankAccount = payload.receiveList\n state.totalCounts = payload.totalCounts\n },\n ADD_ACCOUNT(state, newAccount) {\n state.bankAccount.unshift(newAccount)\n state.totalCounts++\n },\n\n UPDATE_RECEIVE_ACCOUNT(state, receive) {\n Vue.set(state.bankAccount, state.bankAccount.findIndex(x => x._id === receive._id), receive)\n },\n}\n\nexport default {\n namespaced: true,\n state,\n actions,\n mutations\n}","import axios from '@/utils/axios'\r\n\r\nexport const getTaskList = (payload) => {\r\n return axios.get('/task', {\r\n params: payload\r\n })\r\n}\r\n\r\nexport const getTaskByID = (id) => {\r\n return axios.get(`/task/${id}`)\r\n}\r\n\r\nexport const updateTask = (id, data) => {\r\n return axios.put(`/task/${id}`, data)\r\n}\r\n\r\nexport const createTask = (data) => {\r\n return axios.post(`/task`, data)\r\n}\r\n\r\nexport const deleteTask = (id) => {\r\n return axios.delete(`/task/${id}`)\r\n}\r\n\r\n// task record\r\nexport const createTaskRecord = (taskId, data) => {\r\n return axios.post(`/task_record/${taskId}`, data)\r\n}\r\n\r\nexport const updateTaskRecord = (taskRecordId, data) => {\r\n return axios.put(`/task_record/${taskRecordId}`, data)\r\n}\r\n\r\nexport const deleteTaskRecord = (taskId, data) => {\r\n return axios.delete(`/task_record/${taskId}`, {\r\n params: data\r\n })\r\n}\r\n\r\nexport const setUserReceiveTask = (data) => {\r\n return axios.post(`/set_receive_task`, data)\r\n}\r\n\r\nexport const getUserReceiveTask = (payload) => {\r\n return axios.get('/get_receive_task', {\r\n params: payload\r\n })\r\n}\r\n\r\nexport const notifyUserReceiveTaskWW = (data) => {\r\n return axios.post(`/notify_receive_task`, data)\r\n}","import { notifyUserReceiveTaskWW, getUserReceiveTask, setUserReceiveTask, getTaskByID, getTaskList, updateTask, deleteTask, createTask, updateTaskRecord, deleteTaskRecord, createTaskRecord } from '@/api/task'\r\nimport Vue from 'vue'\r\n\r\nconst state = {\r\n taskList: [],\r\n totalCounts: 0\r\n}\r\n\r\nconst actions = {\r\n async getTaskListAction({ commit }, payload) {\r\n try {\r\n const taskList = await getTaskList(payload);\r\n commit('SET_TASKLIST', taskList.data)\r\n return taskList.data\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async getTaskByIDAction({ commit }, payload) {\r\n try {\r\n const task = await getTaskByID(payload)\r\n return task.data\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async createTaskAction({ commit }, payload) {\r\n try {\r\n const task = await createTask(payload);\r\n commit('ADD_TASK', task.data)\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async updateTaskAction({ commit }, payload) {\r\n try {\r\n commit('TEMP_UPDATE_TASK', { ...payload.data, _id: payload.id})\r\n const task = await updateTask(payload.id, payload.data)\r\n commit('UPDATE_TASK', task.data)\r\n } catch (error) {\r\n commit('UPDATE_TASK_ERROR', payload.id)\r\n throw error.message\r\n }\r\n },\r\n async deleteTaskAction({ commit }, payload) {\r\n try {\r\n await deleteTask(payload)\r\n commit('DELETE_TASK', payload)\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n // task record\r\n async createTaskRecordAction({ commit }, payload) {\r\n try {\r\n const task = await createTaskRecord(payload.taskId, payload.data);\r\n commit('UPDATE_TASK', task.data)\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async updateTaskRecordAction({ commit }, payload) {\r\n try {\r\n const task = await updateTaskRecord(payload.recordId, payload.data)\r\n commit('UPDATE_TASK', task.data)\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async deleteTaskRecordAction({ commit }, payload) {\r\n try {\r\n const task = await deleteTaskRecord(payload.taskId, payload.data)\r\n commit('UPDATE_TASK', task.data)\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async setUserReceiveTaskAction({ commit }, payload) {\r\n try {\r\n await setUserReceiveTask(payload)\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async getUserReceiveTaskAction({ commit }, payload) {\r\n try {\r\n const taskList = await getUserReceiveTask(payload)\r\n commit('SET_TASKLIST', taskList.data)\r\n return taskList.data\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async notifyUserReceiveTaskWWAction({ commit }, payload) {\r\n try {\r\n await notifyUserReceiveTaskWW(payload)\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n}\r\n\r\nconst mutations = {\r\n SET_TASKLIST(state, payload) {\r\n state.taskList = payload.taskList;\r\n state.totalCounts = payload.totalCounts\r\n },\r\n ADD_TASK(state, task) {\r\n state.taskList.unshift(task)\r\n state.totalCounts++\r\n },\r\n DELETE_TASK(state, id) {\r\n state.taskList = state.taskList.filter(e => e._id !== id)\r\n state.totalCounts--\r\n },\r\n UPDATE_TASK(state, task) {\r\n Vue.set(state.taskList, state.taskList.findIndex(x => x._id === task._id), {...task, editError: null})\r\n },\r\n // 用于先本地修改内容(修改完后,再发布请求)\r\n TEMP_UPDATE_TASK(state, task) {\r\n const localTask = state.taskList.find(x => x._id === task._id);\r\n Vue.set(state.taskList, state.taskList.findIndex(x => x._id === task._id), {...localTask, ...task})\r\n },\r\n // 标记更新错误\r\n UPDATE_TASK_ERROR(state, id) {\r\n const localTask = state.taskList.find(x => x._id === id);\r\n Vue.set(state.taskList, state.taskList.findIndex(x => x._id === task._id), {...localTask, editError: '未修改成功'})\r\n }\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n actions,\r\n mutations\r\n}","import axios from '@/utils/axios'\n\nexport const getCommentList = (payload) => {\n return axios.get('/comment', {\n params: payload\n })\n}\n\nexport const createComment = (data) => {\n return axios.post(`/comment`, data)\n}\n\n// export const getCommentSimpleList = (payload) => {\n// return axios.get('/comment_simple_list', {\n// params: payload\n// })\n// }\n\n// export const getUserCommentRolesCount = (payload) => {\n// return axios.get('/user_comment_roles_count', {\n// params: payload\n// })\n// }\n\n// export const getCommentById = (id) => {\n// return axios.get(`/comment/${id}`);\n// }\n\n// export const updateComment = (id, data) => {\n// return axios.put(`/comment/${id}`, data);\n// }\n\n// export const updateManyComment = (data) => {\n// return axios.put(`/many_comment`, data);\n// }\n\n// export const deleteComment = (id) => {\n// return axios.delete(`/comment/${id}`)\n// }","/*\r\n * @Author: zjt\r\n * @Email: 13928932429@163.com\r\n * @Date: 2020-08-03 08:51:30\r\n * @LastEditTime: 2020-09-27 09:38:06\r\n * @Description: 客户store\r\n */\r\nimport {\r\n getCommentList,\r\n updateComment,\r\n deleteComment,\r\n createComment,\r\n getCommentById\r\n} from '@/api/comment'\r\nimport Vue from 'vue'\r\n\r\nconst state = {\r\n commentList: [],\r\n totalCounts: 0,\r\n}\r\n\r\nconst actions = {\r\n async getCommentsAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const res = await getCommentList(payload)\r\n commit('SET_COMMENT_LIST', res.data);\r\n return res.data.commentList\r\n } catch (error) {\r\n throw error\r\n }\r\n },\r\n // async getCommentByIdAction({ commit }, id) {\r\n // try {\r\n // const comment = await getCommentById(id)\r\n // commit('SET_SELECT_Comment', comment.data);\r\n // return comment.data\r\n // } catch (error) {\r\n // throw error.message\r\n // }\r\n // },\r\n async createCommentAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const newComment = await createComment(payload);\r\n commit('ADD_COMMENT', newComment.data)\r\n return newComment\r\n } catch (error) {\r\n throw error\r\n }\r\n },\r\n // async updateCommentAction({ commit }, payload) {\r\n // try {\r\n // const newComment = await updateComment(payload.id, payload.data);\r\n // commit('UPDATEComment', newComment.data)\r\n // return newComment.data\r\n // } catch (error) {\r\n // throw error\r\n // }\r\n // },\r\n // async deleteCommentAction({ commit }, payload) {\r\n // try {\r\n // await deleteComment(payload.id)\r\n // commit('DELETEComment', payload.id)\r\n // return payload.id\r\n // } catch (error) {\r\n // throw error\r\n // }\r\n // }\r\n}\r\n\r\nconst mutations = {\r\n SET_COMMENT_LIST(state, payload) {\r\n state.commentList = payload.receiveList\r\n state.totalCounts = payload.totalCounts\r\n },\r\n // SET_Comment_SIMPLE_LIST(state, payload) {\r\n // state.commentsSimple = payload.commentList\r\n // },\r\n // SET_USER_Comment_ROLES_COUNT(state, payload) {\r\n // state.userCommentRolesCount = payload\r\n // },\r\n // SETCANAPPLYCommentLIST(state, payload) {\r\n // state.comments = payload.commentList.filter(x => {return !x.hasOwnProperty('commentDevelop')} )\r\n // state.totalCounts = payload.totalCounts\r\n // },\r\n // // 修改 客户详情页列表的state\r\n // SETDETAILCommentLIST(state, payload) {\r\n // state.detailComments = payload.commentList\r\n // state.totalCounts = payload.totalCounts\r\n // },\r\n ADD_COMMENT(state, comment) {\r\n state.commentList.unshift(comment)\r\n state.totalCounts++\r\n },\r\n // UPDATEComment(state, comment) {\r\n // Vue.set(state.comments, state.comments.findIndex(x => x._id === comment._id), comment);\r\n // state.selectComment = comment\r\n // },\r\n // DELETEComment(state, id) {\r\n // state.comments = state.comments.filter(e => e._id !== id)\r\n // state.totalCounts--\r\n // },\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n actions,\r\n mutations\r\n}","import axios from '@/utils/axios'\n\nexport const getPayment = (payload) => {\n return axios.get('/payment', {\n params: payload\n })\n}\n\nexport const createPayment = (data) => {\n return axios.post('/payment', data)\n}\n\nexport const updatePayment = (id, data) => {\n return axios.put(`/payment/${id}`, data)\n}\n\nexport const getPaymentById = (id) => {\n return axios.get(`/payment/${id}`)\n}\n\nexport const deletePayment = (id) => {\n return axios.delete(`/payment/${id}`)\n}","/*\r\n * @Author: zjt\r\n * @Email: 13928932429@163.com\r\n * @Date: 2020-08-05 15:48:09\r\n * @LastEditTime: 2020-10-27 09:29:26\r\n * @Description: 销售项目store\r\n */\r\nimport {\r\n getPayment,\r\n getPaymentById,\r\n updatePayment,\r\n createPayment,\r\n deletePayment\r\n} from '@/api/payment'\r\nimport Vue from 'vue'\r\n\r\nconst state = {\r\n paymentList: [],\r\n totalCounts: 0\r\n}\r\n\r\nconst getters = {}\r\n\r\nconst actions = {\r\n async getPaymentAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const res = await getPayment(payload)\r\n commit('SET_PAYMENT', res.data)\r\n return res.data\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async createPaymentAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const newPayment = await createPayment(payload);\r\n commit('ADD_PAYMENT', newPayment.data)\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async updatePaymentAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const newPayment = await updatePayment(payload.id, payload.data)\r\n commit(\"UPDATE_PAYMENT\", newPayment.data.payment)\r\n return newPayment.data\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async deletePaymentAction({\r\n commit\r\n }, payload) {\r\n try {\r\n await deletePayment(payload)\r\n commit('DELETE_PAYMENT', payload)\r\n } catch (error) {\r\n throw error.message\r\n }\r\n }\r\n}\r\n\r\nconst mutations = {\r\n SET_PAYMENT(state, payload) {\r\n state.paymentList = payload.paymentList\r\n state.totalCounts = payload.totalCounts\r\n },\r\n UPDATE_PAYMENT(state, payment) {\r\n Vue.set(state.paymentList, state.paymentList.findIndex(x => x._id === payment._id), payment)\r\n },\r\n ADD_PAYMENT(state, payment) {\r\n state.paymentList.unshift(payment)\r\n state.totalCounts++\r\n },\r\n // UPDATESALES(state, sales) {\r\n // Vue.set(state.sales, state.sales.findIndex(x => x._id === sales._id), sales)\r\n // },\r\n DELETE_PAYMENT(state, id) {\r\n state.paymentList = state.paymentList.filter(e => e._id !== id)\r\n state.totalCounts--\r\n },\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n getters,\r\n actions,\r\n mutations\r\n}","import axios from '@/utils/axios'\n\nexport const getSupplier = (payload) => {\n return axios.get('/supplier', {\n params: payload\n })\n}\n\nexport const createSupplier = (data) => {\n return axios.post('/supplier', data)\n}\n\nexport const getSupplierById = (id) => {\n return axios.get(`/supplier/${id}`)\n}\n\nexport const updateSupplier = (id, data) => {\n return axios.put(`/supplier/${id}`, data)\n}\n\nexport const deleteSupplier = (id) => {\n return axios.delete(`/supplier/${id}`)\n}","import { getSupplier, getSupplierById, updateSupplier, createSupplier, deleteSupplier } from '@/api/supplier'\nimport Vue from 'vue'\n\nconst state = {\n supplierList: [],\n totalCounts: 0\n}\n\nconst getters = {\n}\n\nconst actions = {\n async getSupplierAction({ commit }, payload) {\n try {\n const res = await getSupplier(payload)\n commit('SET_SUPPLIER', res.data)\n return res.data\n } catch (error) {\n throw error.message\n }\n },\n // async getSalesByIdAction({ commit }, id) {\n // try {\n // const sales = await getSalesById(id)\n // return sales.data\n // } catch (error) {\n // throw error.message\n // }\n\n // },\n async createSupplierAction({ commit }, payload) {\n try {\n const newSupplier = await createSupplier(payload);\n commit('ADD_SUPPLIER', newSupplier.data)\n } catch (error) {\n throw error.message\n }\n },\n async updateSupplierAction({ commit }, payload) {\n try {\n const newSupplier = await updateSupplier(payload.id, payload.data)\n commit(\"UPDATE_SUPPLIER\", newSupplier.data)\n return newSupplier.data\n } catch (error) {\n throw error.message\n }\n },\n async deleteSupplierAction({ commit }, payload) {\n try {\n await deleteSupplier(payload)\n commit('DELETE_SUPPLIER', payload)\n } catch (error) {\n throw error.message\n }\n }\n}\n\nconst mutations = {\n SET_SUPPLIER(state, payload) {\n state.supplierList = payload.supplierList\n state.totalCounts = payload.totalCounts\n },\n UPDATE_SUPPLIER(state, supplier) {\n Vue.set(state.supplierList, state.supplierList.findIndex(x => x._id === supplier._id), supplier)\n },\n ADD_SUPPLIER(state, sales) {\n state.supplierList.unshift(sales)\n state.totalCounts++\n },\n // UPDATESALES(state, sales) {\n // Vue.set(state.sales, state.sales.findIndex(x => x._id === sales._id), sales)\n // },\n DELETE_SUPPLIER(state, id) {\n state.supplierList = state.supplierList.filter(e => e._id !== id)\n state.totalCounts--\n },\n}\n\nexport default {\n namespaced: true,\n state,\n getters,\n actions,\n mutations\n}","import axios from '@/utils/axios'\n\nexport const getEntity = (payload) => {\n return axios.get('/entity', {\n params: payload\n })\n}\n\nexport const createEntity = (data) => {\n return axios.post('/entity', data)\n}\n\nexport const getEntityById = (id) => {\n return axios.get(`/entity/${id}`)\n}\n\nexport const updateEntity = (id, data) => {\n return axios.put(`/entity/${id}`, data)\n}\n\nexport const deleteEntity = (id) => {\n return axios.delete(`/entity/${id}`)\n}","import { getEntity, getEntityById, updateEntity, createEntity, deleteEntity } from '@/api/entity'\nimport Vue from 'vue'\n\nconst state = {\n entityList: [],\n totalCounts: 0\n}\n\nconst getters = {\n}\n\nconst actions = {\n async getEntityAction({ commit }, payload) {\n try {\n const res = await getEntity(payload)\n commit('SET_ENTITY', res.data)\n return res.data\n } catch (error) {\n throw error.message\n }\n },\n async createEntityAction({ commit }, payload) {\n try {\n const newEntity = await createEntity(payload);\n commit('ADD_ENTITY', newEntity.data)\n } catch (error) {\n throw error.message\n }\n },\n async updateEntityAction({ commit }, payload) {\n try {\n const newEntity = await updateEntity(payload.id, payload.data)\n commit(\"UPDATE_ENTITY\", newEntity.data)\n return newEntity.data\n } catch (error) {\n throw error.message\n }\n },\n async deleteEntityAction({ commit }, payload) {\n try {\n await deleteEntity(payload)\n commit('DELETE_ENTITY', payload)\n } catch (error) {\n throw error.message\n }\n }\n}\n\nconst mutations = {\n SET_ENTITY(state, payload) {\n state.entityList = payload.entityList\n state.totalCounts = payload.totalCounts\n },\n UPDATE_ENTITY(state, entity) {\n Vue.set(state.entityList, state.entityList.findIndex(x => x._id === entity._id), entity)\n },\n ADD_ENTITY(state, sales) {\n state.entityList.unshift(sales)\n state.totalCounts++\n },\n // UPDATESALES(state, sales) {\n // Vue.set(state.sales, state.sales.findIndex(x => x._id === sales._id), sales)\n // },\n DELETE_ENTITY(state, id) {\n state.entityList = state.entityList.filter(e => e._id !== id)\n state.totalCounts--\n },\n}\n\nexport default {\n namespaced: true,\n state,\n getters,\n actions,\n mutations\n}","import axios from '@/utils/axios'\n\nexport const getOutStore = (payload) => {\n return axios.get('/out_store', {\n params: payload\n })\n}\n\nexport const getOutStoreStat = (payload) => {\n return axios.get('/out_store_stat', {\n params: payload\n })\n}\n\nexport const loadOutStoreInSalesStat = (data) => {\n return axios.post(`/load_out_store_in_sales_stat`, data)\n}\n\n// export const updateMaterial = (id, data) => {\n// return axios.put(`/material/${id}`, data)\n// }\n\n\n// export const getMaterialById = (id) => {\n// return axios.get(`/material/${id}`)\n// }\n\n// export const getRawMaterialWithPrice = (payload) => {\n// return axios.get('/raw_material_latest_price', {\n// params: payload\n// })\n// }\n\n// export const getSemiMaterialWithCost = (payload) => {\n// return axios.get('/semi_material_latest_cost', {\n// params: payload\n// })\n// }\n\n// export const createWater = (data) => {\n// return axios.post('/waterMaterial', data)\n// }","import { getOutStore, loadOutStoreInSalesStat, getOutStoreStat } from '@/api/outStore'\nimport Vue from 'vue'\n\nconst state = {\n entityList: [],\n outStoreStat:[],\n totalCounts: 0\n}\n\nconst actions = {\n async getOutStoreAction({ commit }, payload) {\n try {\n const res = await getOutStore(payload)\n commit('SET_OUT_STORE', res.data)\n return res.data\n } catch (error) {\n throw error.message\n }\n },\n\n async getOutStoreStatAction({ commit }, payload) {\n try {\n const res = await getOutStoreStat(payload)\n commit('SET_OUT_STORE_STAT', res.data)\n return res.data\n } catch (error) {\n throw error.message\n }\n },\n\n async loadOutStoreInSalesStatAction({ commit }, payload) {\n try {\n const res = await loadOutStoreInSalesStat(payload)\n // commit('LOAD_OUT_STORE_INSALES_STAT', res.data)\n return res.data\n } catch (error) {\n throw error.message\n }\n },\n}\n\nconst mutations = {\n SET_OUT_STORE(state, outstore) {\n state.entityList = outstore.entityList\n state.totalCounts = outstore.totalCounts\n },\n SET_OUT_STORE_STAT(state, outstore) {\n state.outStoreStat = outstore.outStoreStat\n },\n}\n\nexport default {\n namespaced: true,\n state,\n actions,\n mutations\n}","import axios from '@/utils/axios'\n\nexport const getBill = (payload) => {\n return axios.get('/bill', {\n params: payload\n })\n}\n\nexport const createBill = (data) => {\n return axios.post('/bill', data)\n}\n\nexport const updateBill = (id, data) => {\n return axios.put(`/bill/${id}`, data)\n}\n\nexport const deleteBill = (id) => {\n return axios.delete(`/bill/${id}`)\n}","import { getBill, updateBill, deleteBill, createBill } from '@/api/bill'\r\nimport Vue from 'vue'\r\n\r\nconst state = {\r\n billList: [],\r\n totalCounts: 0,\r\n}\r\n\r\nconst actions = {\r\n async getBillAction({ commit }, payload) {\r\n try {\r\n const billList = await getBill(payload);\r\n commit('SET_BILL_LIST', billList.data)\r\n return billList.data\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async getBillByIDAction({ commit }, payload) {\r\n try {\r\n const bill = await getBillByID(payload)\r\n return bill.data\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async createBillAction({ commit }, payload) {\r\n try {\r\n const bill = await createBill(payload);\r\n commit('ADD_BILL', bill.data)\r\n return bill.data\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async updateBillAction({ commit }, payload) {\r\n try {\r\n const bill = await updateBill(payload.id, payload.data)\r\n commit('UPDATE_BILL', bill.data)\r\n return bill.data\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async deleteBillAction({ commit }, payload) {\r\n try {\r\n await deleteBill(payload)\r\n commit('DELETE_BILL', payload)\r\n } catch (error) {\r\n throw error.message\r\n }\r\n }\r\n}\r\n\r\nconst mutations = {\r\n SET_BILL_LIST(state, payload) {\r\n state.billList = payload.list;\r\n state.totalCounts = payload.totalCounts\r\n },\r\n ADD_BILL(state, bill) {\r\n state.billList.unshift(bill)\r\n state.totalCounts++\r\n },\r\n DELETE_BILL(state, id) {\r\n state.billList = state.billList.filter(e => e._id !== id)\r\n state.totalCounts--\r\n },\r\n UPDATE_BILL(state, bill) {\r\n Vue.set(state.billList, state.billList.findIndex(x => x._id === bill._id), bill)\r\n }\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n actions,\r\n mutations\r\n}","import {\r\n getStatViewC,\r\n} from '@/api/salesStat'\r\nimport {\r\n getCustomerFullDetailById,\r\n} from '@/api/customer'\r\nimport Vue from 'vue'\r\n\r\nconst state = {\r\n statViewC: [],\r\n statViewCCounts: 0,\r\n selectedCustomer: null,\r\n monthlyVolStat: [],\r\n monthlyReceiveStat: [],\r\n sixtyDayOrders: [],\r\n receiveList: [],\r\n salesStat: [],\r\n artableDate: {},\r\n}\r\n\r\nconst getters = {\r\n // datasource的格式模板\r\n // return [\r\n // ['product', '2015', '2016', '2017'],\r\n // ['Matcha Latte', 43.3, 85.8, 93.7],\r\n // ['Milk Tea', 83.1, 73.4, 55.1],\r\n // ['Cheese Cocoa', 86.4, 65.2, 82.5],\r\n // ['Walnut Brownie', 72.4, 53.9, 39.1]\r\n // ]\r\n monthlyVolStatChartDataSource: (state) => {\r\n const finalData = [['月份']];\r\n for (let month = 1; month < 13; month++) {\r\n finalData.push([`${month}月`]) \r\n }\r\n for (const volStat of state.monthlyVolStat) {\r\n const index = volStat._id.month;\r\n finalData[index].push(volStat.volPlanSum.toFixed(0))\r\n }\r\n return finalData;\r\n },\r\n monthlyReceiveStatChartDataSource: (state) => {\r\n const finalData = [['月份']];\r\n for (let month = 1; month < 13; month++) {\r\n finalData.push([`${month}月`]) \r\n }\r\n for (const stat of state.monthlyReceiveStat) {\r\n const index = stat._id.month;\r\n finalData[index].push((stat.amount/10000).toFixed(0))\r\n }\r\n return finalData;\r\n },\r\n}\r\n\r\nconst actions = {\r\n async getStatViewCAction({ commit }, payload) {\r\n try {\r\n const res = await getStatViewC(payload)\r\n commit('SET_STAT_VIEW_C', res.data)\r\n return res.data\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async selectCustomerAction({ commit }, customer) {\r\n try {\r\n commit('SET_SELECTED_CUSTOMER', customer)\r\n const res = await getCustomerFullDetailById(customer._id)\r\n commit('SET_SELECTED_CUSTOMER', res.data.customer)\r\n commit('SET_CUSTOMER_DETAIL', res.data)\r\n return customer\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n}\r\n\r\nconst mutations = {\r\n SET_STAT_VIEW_C(state, payload) {\r\n state.statViewC = payload.salesStat\r\n state.statViewCCounts = payload.totalCounts\r\n },\r\n SET_SELECTED_CUSTOMER(state, payload) {\r\n state.selectedCustomer = payload\r\n },\r\n SET_CUSTOMER_DETAIL(state, payload) {\r\n state.monthlyVolStat = payload.monthlyVolStat\r\n state.monthlyReceiveStat = payload.monthlyReceiveStat\r\n state.sixtyDayOrders = payload.sixtyDayOrders\r\n state.receiveList = payload.receiveList\r\n state.salesStat = payload.salesStat\r\n state.artableDate = payload.artableDate\r\n },\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n getters,\r\n actions,\r\n mutations\r\n}","import axios from '@/utils/axios'\r\n\r\nexport const getCustomerQZUpdateForm = (payload) => {\r\n return axios.get('/customer_qz_update_form', {\r\n params: payload\r\n })\r\n}\r\n\r\nexport const createCustomerQZUpdateForm = (data) => {\r\n return axios.post('/customer_qz_update_form', data)\r\n}\r\n\r\nexport const reviewCustomerQZUpdateForm = (id, data) => {\r\n return axios.post(`/customer_qz_update_form_review/${id}`, data)\r\n}\r\n\r\nexport const deleteCustomerQZUpdateForm = (id) => {\r\n return axios.delete(`/customer_qz_update_form/${id}`)\r\n}\r\n\r\nexport const removeBannedUserQZ = (data) => {\r\n return axios.post('/remove_banned_user_qz', data)\r\n}","/*\r\n * @Author: zjt\r\n * @Email: 13928932429@163.com\r\n * @Date: 2020-08-05 15:48:09\r\n * @LastEditTime: 2020-10-27 09:29:26\r\n * @Description: 销售项目store\r\n */\r\nimport {\r\n getCustomerQZUpdateForm,\r\n createCustomerQZUpdateForm,\r\n reviewCustomerQZUpdateForm,\r\n deleteCustomerQZUpdateForm,\r\n removeBannedUserQZ\r\n} from '@/api/customerQZUpdateForm';\r\nimport Vue from 'vue'\r\nimport customer from './customer'\r\n\r\nconst state = {\r\n customerQZUpdateFormList: [],\r\n totalCounts: 0\r\n}\r\n\r\nconst getters = {}\r\n\r\nconst actions = {\r\n async getCustomerQZUpdateFormAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const res = await getCustomerQZUpdateForm(payload)\r\n commit('SET_CUSTOMER_QZ_UPDATE_FORM', res.data)\r\n return res.data\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async createCustomerQZUpdateFormAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const newCustomerQZUpdateForm = await createCustomerQZUpdateForm(payload);\r\n commit('ADD_CUSTOMER_QZ_UPDATE_FORM', newCustomerQZUpdateForm.data)\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async reviewCustomerQZUpdateFormAction({\r\n commit\r\n }, payload) {\r\n try {\r\n await reviewCustomerQZUpdateForm(payload.id, payload.data)\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async deleteCustomerQZUpdateFormAction({\r\n commit\r\n }, payload) {\r\n try {\r\n await deleteCustomerQZUpdateForm(payload)\r\n commit('DELETE_CUSTOMER_QZ_UPDATE_FORM', payload)\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async removeBannedUserQZAction({\r\n commit\r\n }, payload) {\r\n try {\r\n await removeBannedUserQZ(payload)\r\n } catch (error) {\r\n throw error.message\r\n }\r\n }\r\n}\r\n\r\nconst mutations = {\r\n SET_CUSTOMER_QZ_UPDATE_FORM(state, payload) {\r\n state.customerQZUpdateFormList = payload.updateFormList\r\n state.totalCounts = payload.totalCounts\r\n },\r\n ADD_CUSTOMER_QZ_UPDATE_FORM(state, customerQZUpdateForm) {\r\n state.customerQZUpdateFormList.unshift(customerQZUpdateForm)\r\n const index = customer.state.customerQZList.findIndex(x => x._id === customerQZUpdateForm.customer._id)\r\n const qz = customer.state.customerQZList[index]\r\n qz.comissionDivDev = customerQZUpdateForm.comissionDivDev\r\n qz.comissionDivMaintain = customerQZUpdateForm.comissionDivMaintain\r\n qz.comissionDivPayment = customerQZUpdateForm.comissionDivPayment\r\n qz.regionalCharger = customerQZUpdateForm.regionalCharger\r\n qz.salesVisibleMember = customerQZUpdateForm.salesVisibleMember\r\n qz.techVisibleMember = customerQZUpdateForm.techVisibleMember\r\n qz.devSales = customerQZUpdateForm.devSales\r\n qz.maintainSales = customerQZUpdateForm.maintainSales\r\n qz.paymentSales = customerQZUpdateForm.paymentSales\r\n Vue.set(customer.state.customerQZList, index, qz)\r\n state.totalCounts++\r\n },\r\n DELETE_CUSTOMER_QZ_UPDATE_FORM(state, id) {\r\n state.customerQZUpdateFormList = state.customerQZUpdateFormList.filter(e => e._id !== id)\r\n state.totalCounts--\r\n },\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n getters,\r\n actions,\r\n mutations\r\n}","import { getDuizhangdan, updateDuizhangdan, deleteDuizhangdan, createDuizhangdan } from '@/api/duizhangdan'\r\nimport Vue from 'vue'\r\n\r\nconst state = {\r\n duizhangdanList: [],\r\n totalCounts: 0,\r\n}\r\n\r\nconst actions = {\r\n async getDuizhangdanAction({ commit }, payload) {\r\n try {\r\n const duizhangdanList = await getDuizhangdan(payload);\r\n commit('SET_DUIZHANGDAN_LIST', duizhangdanList.data)\r\n return duizhangdanList.data\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async getDuizhangdanByIDAction({ commit }, payload) {\r\n try {\r\n const duizhangdan = await getDuizhangdanByID(payload)\r\n return duizhangdan.data\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async createDuizhangdanAction({ commit }, payload) {\r\n try {\r\n const duizhangdan = await createDuizhangdan(payload);\r\n commit('ADD_DUIZHANGDAN', duizhangdan.data)\r\n return duizhangdan.data\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async updateDuizhangdanAction({ commit }, payload) {\r\n try {\r\n const duizhangdan = await updateDuizhangdan(payload.id, payload.data)\r\n commit('UPDATE_DUIZHANGDAN', duizhangdan.data)\r\n return duizhangdan.data\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async deleteDuizhangdanAction({ commit }, payload) {\r\n try {\r\n await deleteDuizhangdan(payload)\r\n commit('DELETE_DUIZHANGDAN', payload)\r\n } catch (error) {\r\n throw error.message\r\n }\r\n }\r\n}\r\n\r\nconst mutations = {\r\n SET_DUIZHANGDAN_LIST(state, payload) {\r\n state.duizhangdanList = payload.list;\r\n state.totalCounts = payload.totalCounts\r\n },\r\n ADD_DUIZHANGDAN(state, duizhangdan) {\r\n state.duizhangdanList.unshift(duizhangdan)\r\n state.totalCounts++\r\n },\r\n DELETE_DUIZHANGDAN(state, id) {\r\n state.duizhangdanList = state.duizhangdanList.filter(e => e._id !== id)\r\n state.totalCounts--\r\n },\r\n UPDATE_DUIZHANGDAN(state, duizhangdan) {\r\n Vue.set(state.duizhangdanList, state.duizhangdanList.findIndex(x => x._id === duizhangdan._id), duizhangdan)\r\n }\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n actions,\r\n mutations\r\n}","/*\r\n * @Author: zjt\r\n * @Email: 13928932429@163.com\r\n * @Date: 2020-07-31 14:01:30\r\n * @LastEditTime: 2020-09-27 17:28:48\r\n * @Description: vuex根目录\r\n */\r\nimport Vue from 'vue'\r\nimport Vuex from 'vuex'\r\nimport auth from './modules/auth'\r\nimport customer from './modules/customer'\r\nimport department from './modules/department'\r\nimport company from './modules/company'\r\nimport user from './modules/user'\r\nimport material from './modules/material'\r\nimport factory from './modules/factory'\r\nimport purchase from './modules/purchase'\r\nimport recipeSemi from './modules/recipeSemi'\r\nimport recipeSales from './modules/recipeSales'\r\nimport sales from './modules/sales'\r\nimport sacCompany from './modules/sacCompany'\r\nimport sac from './modules/sac'\r\nimport tankRental from './modules/tankRental'\r\nimport salesOrder from './modules/salesOrder'\r\nimport vehicle from './modules/vehicle'\r\nimport delivery from './modules/delivery'\r\nimport salesOrderComment from './modules/salesOrderComment'\r\nimport salesRecord from './modules/salesRecord'\r\nimport customerPurview from './modules/customerPurview'\r\nimport technicalService from './modules/technicalService'\r\nimport customerDevelop from './modules/customerDevelop'\r\nimport caclSalesCost from './modules/caclSalesCost'\r\nimport caclMLCost from './modules/caclMLCost'\r\nimport salesPriceRecord from './modules/salesPriceRecord'\r\nimport salesTransCostRecord from './modules/salesTransCostRecord'\r\nimport customerContact from './modules/customerContact'\r\nimport salesPromoFeeRecord from './modules/salesPromoFeeRecord'\r\nimport semiItem from './modules/semiItem'\r\nimport calcSemiCost from './modules/calcSemiCost'\r\nimport storageTank from './modules/storageTank'\r\nimport salesStat from './modules/salesStat'\r\nimport receiveIO from './modules/socketIo/receiveIO'\r\nimport bankAccount from './modules/bankAccount'\r\nimport task from './modules/task'\r\nimport receive from './modules/receive'\r\nimport comment from './modules/comment'\r\nimport payment from './modules/payment'\r\nimport supplier from './modules/supplier'\r\nimport entity from './modules/entity'\r\nimport outStore from './modules/outStore'\r\nimport bill from './modules/bill'\r\nimport customerAnalyze from './modules/pages/customerAnalyze'\r\nimport customerQZUpdateForm from './modules/customerQZUpdateForm'\r\nimport duizhangdan from './modules/duizhangdan'\r\n\r\nVue.use(Vuex)\r\n\r\nexport default new Vuex.Store({\r\n modules: {\r\n auth,\r\n factory,\r\n sac,\r\n customer,\r\n delivery,\r\n vehicle,\r\n salesOrder,\r\n department,\r\n sacCompany,\r\n recipeSemi,\r\n material,\r\n company,\r\n user,\r\n purchase,\r\n sales,\r\n recipeSales,\r\n tankRental,\r\n salesOrderComment,\r\n salesRecord,\r\n customerPurview,\r\n technicalService,\r\n customerDevelop,\r\n caclSalesCost,\r\n caclMLCost,\r\n salesPriceRecord,\r\n salesTransCostRecord,\r\n customerContact,\r\n salesPromoFeeRecord,\r\n calcSemiCost,\r\n semiItem,\r\n storageTank,\r\n salesStat,\r\n receive,\r\n receiveIO,\r\n bankAccount,\r\n task,\r\n comment,\r\n payment,\r\n supplier,\r\n entity,\r\n outStore,\r\n bill,\r\n customerAnalyze,\r\n customerQZUpdateForm,\r\n duizhangdan\r\n },\r\n})","/*\r\n * @Author: zjt\r\n * @Email: 13928932429@163.com\r\n * @Date: 2020-07-31 14:01:30\r\n * @LastEditTime: 2021-06-25 13:50:54\r\n * @Description: \r\n */\r\nimport Vue from 'vue'\r\nimport App from './App.vue'\r\nimport router from './router'\r\nimport ViewUI from 'view-design';\r\nimport store from './store'\r\nimport Print from 'vue-print-nb'\r\nimport 'view-design/dist/styles/iview.css';\r\nimport VueSocketIO from 'vue-socket.io'\r\nimport SocketIO from 'socket.io-client'\r\n\r\nconst IS_PROD = ['production', 'prod'].includes(process.env.NODE_ENV)\r\n\r\nVue.config.productionTip = false\r\nVue.use(ViewUI);\r\nVue.use(Print);\r\nlet baseURL = \"\";\r\nif (process.env.NODE_ENV === \"production\" && process.env.type === \"analyz\") {\r\n // baseURL = \"\";\r\n} else if (IS_PROD) {\r\n baseURL = \"//zidaiot.com/base\";\r\n // baseURL = \"//192.168.4.56:9000/base\";\r\n} else {\r\n baseURL = \"//localhost:9000/base\";\r\n}\r\nconst token = localStorage.getItem(\"token\");\r\n\r\nVue.use(new VueSocketIO({\r\n debug: false,\r\n connection: SocketIO(baseURL + '?token=' + token),\r\n reconnect: true,\r\n vuex: {\r\n store,\r\n actionPrefix: 'SOCKET_',\r\n mutationPrefix: 'SOCKET_'\r\n }\r\n}))\r\n\r\n\r\nlet vueThis = new Vue({\r\n router,\r\n store,\r\n render: h => h(App)\r\n}).$mount('#app')\r\n\r\nexport default vueThis","import axios from '@/utils/axios'\r\n\r\nexport const getReceive = (payload) => {\r\n return axios.get('/receive', {\r\n params: payload\r\n })\r\n}\r\n\r\nexport const createReceive = (data) => {\r\n return axios.post('/receive', data)\r\n}\r\n\r\nexport const updateReceive = (id, data) => {\r\n return axios.put(`/receive/${id}`, data)\r\n}\r\n\r\nexport const getReceiveById = (id) => {\r\n return axios.get(`/receive/${id}`)\r\n}\r\n\r\nexport const deleteReceive = (id) => {\r\n return axios.delete(`/receive/${id}`)\r\n}\r\n\r\nexport const invalidReceive = (id, data) => {\r\n return axios.put(`/invalid_receive/${id}`, data)\r\n}\r\n\r\nexport const getReceiveStat = (payload) => {\r\n return axios.get('/receive_stat', {\r\n params: payload\r\n })\r\n}\r\n\r\nexport const getCustomerDefaultReceiveInfo = (id, data) => {\r\n return axios.get(`/cus_default_receive_info/${id}`, data)\r\n}","import { getReceive, getReceiveById, updateReceive, createReceive, deleteReceive, invalidReceive, getReceiveStat, getCustomerDefaultReceiveInfo } from '@/api/receive'\r\nimport Vue from 'vue'\r\n\r\nconst state = {\r\n receiveList: [],\r\n receiveStatList: [],\r\n totalCounts: 0,\r\n billsList: [],\r\n}\r\n\r\nconst getters = {\r\n}\r\n\r\nconst actions = {\r\n async getReceiveAction({ commit }, payload) {\r\n try {\r\n const res = await getReceive(payload)\r\n commit('SET_RECEIVE', res.data)\r\n return res.data\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async getReceiveByIdAction({ commit }, id) {\r\n try {\r\n const receive = await getReceiveById(id)\r\n return receive.data\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async createReceiveAction({ commit }, payload) {\r\n try {\r\n const newReceive = await createReceive(payload);\r\n commit('ADD_RECEIVE', newReceive.data)\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n\r\n async updateReceiveAction({ commit }, payload) {\r\n try {\r\n const newReceive = await updateReceive(payload.id, payload.data)\r\n commit(\"UPDATE_RECEIVE\", newReceive.data)\r\n return newReceive.data\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async updateLocalReceiveAction({ commit }, payload) {\r\n try {\r\n commit(\"UPDATE_LOCAL_RECEIVE\", payload)\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async invalidReceiveAction({ commit }, payload) {\r\n try {\r\n const newReceive = await invalidReceive(payload.id, payload.data)\r\n commit(\"INVALID_RECEIVE\", payload)\r\n return newReceive\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async deleteReceiveAction({ commit }, payload) {\r\n try {\r\n await deleteReceive(payload)\r\n commit('DELETE_RECEIVE', payload)\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n\r\n async getReceiveStatAction({ commit }, payload) {\r\n try {\r\n const res = await getReceiveStat(payload)\r\n commit('SET_RECEIVE_STAT', res.data)\r\n return res.data\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n\r\n async getCustomerDefaultReceiveInfoAction({ commit }, id) {\r\n try {\r\n const receive = await getCustomerDefaultReceiveInfo(id)\r\n return receive.data\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n}\r\n\r\nconst mutations = {\r\n SET_RECEIVE(state, payload) {\r\n state.receiveList = payload.receiveList\r\n state.totalCounts = payload.totalCounts\r\n },\r\n UPDATE_RECEIVE(state, receive) {\r\n Vue.set(state.receiveList, state.receiveList.findIndex(x => x._id === receive._id), receive)\r\n },\r\n UPDATE_LOCAL_RECEIVE(state, payload) {\r\n const index = state.receiveList.findIndex(x => x._id === payload.id)\r\n const newReceive = state.receiveList[index]\r\n newReceive.bill = payload.data\r\n newReceive.amount = payload.data.amount\r\n Vue.set(state.receiveList, state.receiveList.findIndex(x => x._id === payload._id), newReceive)\r\n },\r\n INVALID_RECEIVE(state, receive) {\r\n if (receive.data.invalid) {\r\n state.receiveList = state.receiveList.filter(e => e._id !== receive.id)\r\n state.totalCounts--\r\n } else {\r\n const index = state.receiveList.findIndex(x => x._id === receive.id)\r\n const newReceive = state.receiveList[index]\r\n newReceive.invalid = false\r\n Vue.set(state.receiveList, state.receiveList.findIndex(x => x._id === receive.id), newReceive)\r\n }\r\n },\r\n ADD_RECEIVE(state, sales) {\r\n state.receiveList.unshift(sales)\r\n state.totalCounts++\r\n },\r\n // UPDATESALES(state, sales) {\r\n // Vue.set(state.sales, state.sales.findIndex(x => x._id === sales._id), sales)\r\n // },\r\n DELETE_RECEIVE(state, id) {\r\n state.receiveList = state.receiveList.filter(e => e._id !== id)\r\n state.totalCounts--\r\n },\r\n\r\n SET_RECEIVE_STAT(state, payload) {\r\n state.receiveStatList = payload.receiveStatList\r\n state.totalCounts = payload.totalCounts\r\n },\r\n\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n getters,\r\n actions,\r\n mutations\r\n}","/*\r\n * @Author: zjt\r\n * @Email: 13928932429@163.com\r\n * @Date: 2020-07-31 14:01:30\r\n * @LastEditTime: 2020-10-08 17:55:17\r\n * @Description: 路由根目录\r\n */\r\nimport Vue from \"vue\";\r\nimport Router from \"vue-router\";\r\n\r\nconst Home = () => import(\"@/views/Home\");\r\nconst CustomerPage = () => import(\"@/views/CustomerPage\");\r\nconst CustomerAnalyzePage = () => import(\"@/views/CustomerPage/CustomerAnalyze\");\r\nconst CustomerDetail = () => import(\"@/views/CustomerPage/CustomerDetail\");\r\nconst SignupPage = () => import(\"@/views/LandingPage/Signup\");\r\nconst SignupCompanyPage = () => import(\"@/views/LandingPage/SignupCompany\");\r\nconst LandingPage = () => import(\"@/views/LandingPage\");\r\nconst LoginPage = () => import(\"@/views/LandingPage/Login\");\r\nconst UserManagementPage = () => import(\"@/views/UserManagementPage\");\r\nconst RawMaterialPage = () => import('@/views/RawMaterialPage')\r\nconst MaterialSearchAndReplace = () => import('@/views/RecipePage/MaterialSearchAndReplace')\r\nconst FactoryPage = () => import('@/views/FactoryPage')\r\nconst SemiMaterialPage = () => import('@/views/SemiMaterialPage')\r\nconst SalesPage = () => import('@/views/SalesPage')\r\nconst EditSalesPlan = () => import('@/views/SalesPlanPage/EditSalesPlan')\r\nconst EditReceivePlan = () => import('@/views/SalesPlanPage/EditReceivePlan')\r\nconst SalesPlanPage = () => import('@/views/SalesPlanPage')\r\nconst ProductPage = () => import('@/views/ProductPage')\r\nconst SACPage = () => import('@/views/SACPage')\r\nconst SACCompanyPage = () => import('@/views/SACCompanyPage')\r\nconst SACDetail = () => import('@/views/SACPage/SACDetail')\r\nconst CompanyPage = () => import('@/views/CompanyPage')\r\nconst TankRental = () => import('@/views/TankRentalPage')\r\nconst SalesOrderPage = () => import('@/views/SalesOrderPage')\r\nconst VehiclePage = () => import('@/views/VehiclePage')\r\nconst SalesProdOrderPage = () => import('@/views/SalesProdOrderPage')\r\nconst UserSetting = () => import('@/views/UserSetting')\r\nconst InstrumentPanel = () => import('@/views/InstrumentPanel')\r\nconst SalesRecord = () => import('@/views/SalesRecord')\r\nconst TechnicalServicePage = () => import('@/views/TechnicalServicePage')\r\nconst CustomerDevelopPage = () => import('@/views/CustomerDevelopPage')\r\nconst ChangePassword = () => import('@/views/LandingPage/ChangePassword')\r\nconst CaclPurchasePage = () => import('@/views/CaclPurchasePage')\r\nconst CaclMLCostPage = () => import('@/views/CaclMLCostPage')\r\nconst CaclSalesCost = () => import('@/views/CaclSalesCost')\r\nconst RecipePage = () => import('@/views/RecipePage')\r\nconst SemiItemPage = () => import('@/views/SemiItemPage')\r\nconst CustomerPermissionsPage = () => import('@/views/CustomerPage/CustomerPermissions')\r\nconst CaclSalesCostAnalyze = () => import('@/views/CaclSalesCost/CaclSalesCostAnalyze')\r\nconst SalesContract = () => import('@/views/SalesContract')\r\nconst SemiContrastPage = () => import('@/views/CaclMLCostPage/SemiContrast')\r\nconst StorageTankPage = () => import('@/views/StorageTankPage')\r\nconst ReceivePage = () => import('@/views/ReceivePage')\r\nconst JDItemCodeCheckPage = () => import('@/views/JDItemCodeCheckPage')\r\nconst BankAccountPage = () => import('@/views/BankAccountPage')\r\nconst TaskPage = () => import('@/views/TaskPage')\r\nconst CalcCostPage = () => import('@/views/CalcCostPage')\r\nconst PaymentPage = () => import('@/views/PaymentPage')\r\nconst SupplierPage = () => import('@/views/SupplierPage')\r\nconst EntityPage = () => import('@/views/EntityPage')\r\nconst ImportFileProcessPage = () => import('@/views/ImportFileProcessPage')\r\nconst ReceiveChartPage = () => import('@/views/ReceiveChartPage')\r\nconst OutStoreStatPage = () => import('@/views/OutStoreStatPage')\r\nconst TechServiceStatPage = () => import('@/views/TechServiceStatPage')\r\nconst BillPage = () => import('@/views/BillPage')\r\nconst ImportARTablePage = () => import('@/views/ImportARTablePage')\r\nconst ImportCustomerQZTablePage = () => import('@/views/ImportCustomerQZTablePage')\r\nconst CustomerContactPage = () => import('@/views/CustomerContactPage')\r\nconst SalesPromoFeePage = () => import('@/views/SalesPromoFeePage')\r\nconst ReceiveTaskPage = () => import('@/views/ReceiveTaskPage')\r\nconst SalesOrderVolPag = () => import('@/views/SalesOrderVolPag')\r\nconst CustomerQzUpdateFormReview = () => import('@/views/CustomerQzUpdateFormReview')\r\nconst ReceiveTaskStatPage = () => import('@/views/ReceiveTaskStatPage')\r\nconst DuizhangdanPage = () => import('@/views/DuizhangdanPage')\r\nconst DuizhangdanListPage = () => import('@/views/DuizhangdanListPage')\r\nconst SalesOrderProfitPage = () => import('@/views/SalesOrderProfitPage')\r\nconst SalesOrderTablePage = () => import('@/views/SalesOrderTablePage')\r\n\r\nVue.use(Router);\r\n// 获取原型对象上push函数\r\nconst originalPush = Router.prototype.push\r\n// 修改原型对象中push方法\r\nRouter.prototype.push = function push(location) {\r\n return originalPush.call(this, location).catch(err => err)\r\n}\r\nconst routeList = [{\r\n path: \"task\",\r\n name: \"task\",\r\n component: TaskPage,\r\n meta: {\r\n namezh: \"任务\"\r\n },\r\n },\r\n {\r\n path: \"receive_task_stat\",\r\n name: \"receive_task_stat\",\r\n component: ReceiveTaskStatPage,\r\n meta: {\r\n namezh: \"回款任务统计\"\r\n },\r\n },\r\n {\r\n path: \"salesRecord\",\r\n name: \"salesRecord\",\r\n component: SalesRecord,\r\n meta: {\r\n namezh: \"销售记录\"\r\n },\r\n },\r\n {\r\n path: \"customer\",\r\n name: \"customer\",\r\n component: CustomerPage,\r\n meta: {\r\n namezh: \"客户\"\r\n },\r\n children: [{\r\n path: \"customer_detail\",\r\n name: 'customerDetail',\r\n component: CustomerDetail,\r\n meta: {\r\n namezh: \"客户详细\"\r\n }\r\n }],\r\n },\r\n {\r\n path: \"customer_analyze\",\r\n name: \"customerAnalyze\",\r\n component: CustomerAnalyzePage,\r\n meta: {\r\n namezh: \"客户分析\"\r\n },\r\n },\r\n {\r\n path: \"customerPermissions\",\r\n name: \"customerPermissions\",\r\n component: CustomerPermissionsPage,\r\n meta: {\r\n namezh: \"客户权限管理\"\r\n },\r\n },\r\n {\r\n path: \"receive\",\r\n name: \"receive\",\r\n component: ReceivePage,\r\n meta: {\r\n namezh: \"回款记录\"\r\n },\r\n },\r\n {\r\n path: \"receive_chart\",\r\n name: \"receive_chart\",\r\n component: ReceiveChartPage,\r\n meta: {\r\n namezh: \"回款统计\"\r\n },\r\n },\r\n {\r\n path: \"bill\",\r\n name: \"bill\",\r\n component: BillPage,\r\n meta: {\r\n namezh: \"票据\"\r\n },\r\n },\r\n {\r\n path: \"instrumentPanel\",\r\n name: \"instrumentPanel\",\r\n component: InstrumentPanel,\r\n meta: {\r\n namezh: \"仪表盘\"\r\n }\r\n },\r\n {\r\n path: 'usermanagement',\r\n name: 'usermanagement',\r\n component: UserManagementPage,\r\n meta: {\r\n namezh: \"用户和权限\"\r\n }\r\n },\r\n {\r\n path: 'raw_material',\r\n name: 'raw_material',\r\n component: RawMaterialPage,\r\n meta: {\r\n namezh: \"材料管理\"\r\n }\r\n },\r\n {\r\n path: 'materialSearchAndReplace',\r\n name: 'materialSearchAndReplace',\r\n component: MaterialSearchAndReplace,\r\n meta: {\r\n namezh: \"原材料搜查与替换\"\r\n }\r\n },\r\n {\r\n path: 'semi_material',\r\n name: 'semi_material',\r\n component: SemiMaterialPage,\r\n meta: {\r\n namezh: \"母液管理\"\r\n }\r\n },\r\n {\r\n path: 'semi_Item',\r\n name: 'semi_Item',\r\n component: SemiItemPage,\r\n meta: {\r\n namezh: \"母液管理\"\r\n }\r\n },\r\n {\r\n path: 'product',\r\n name: 'product',\r\n component: ProductPage,\r\n meta: {\r\n namezh: \"产品管理\"\r\n }\r\n },\r\n {\r\n path: 'caclPurchase',\r\n name: 'caclPurchase',\r\n component: CaclPurchasePage,\r\n meta: {\r\n namezh: \"材料成本\"\r\n }\r\n },\r\n {\r\n path: 'caclMLCost',\r\n name: 'caclMLCost',\r\n component: CaclMLCostPage,\r\n meta: {\r\n namezh: \"母液成本\"\r\n }\r\n },\r\n {\r\n path: 'semiContrast',\r\n name: 'semiContrast',\r\n component: SemiContrastPage,\r\n meta: {\r\n namezh: \"母液比较\"\r\n }\r\n },\r\n {\r\n path: 'caclSalesCost',\r\n name: 'caclSalesCost',\r\n component: CaclSalesCost,\r\n meta: {\r\n namezh: \"客户成本\"\r\n },\r\n },\r\n {\r\n path: 'calcCost',\r\n name: 'calcCost',\r\n component: CalcCostPage,\r\n meta: {\r\n namezh: \"成本核算\"\r\n },\r\n },\r\n {\r\n path: 'caclSalesCostAnalyze',\r\n name: 'caclSalesCostAnalyze',\r\n component: CaclSalesCostAnalyze,\r\n meta: {\r\n namezh: \"客户成本历史分析\"\r\n }\r\n },\r\n {\r\n path: 'sales',\r\n name: 'sales',\r\n component: SalesPage,\r\n meta: {\r\n namezh: \"销售项目\"\r\n }\r\n },\r\n {\r\n path: 'jd_item_code_check',\r\n name: 'JDItemCodeCheck',\r\n component: JDItemCodeCheckPage,\r\n meta: {\r\n namezh: \"金蝶云物料对比\"\r\n }\r\n },\r\n {\r\n path: 'salesPlan',\r\n name: 'salesPlan',\r\n component: SalesPlanPage,\r\n children: [{\r\n path: \"edit_salesPlan\",\r\n name: 'salesPlanVol',\r\n component: EditSalesPlan,\r\n meta: {\r\n namezh: \"销量计划\"\r\n }\r\n },\r\n {\r\n path: \"edit_receivePlan\",\r\n name: 'salesPlanReceive',\r\n component: EditReceivePlan,\r\n meta: {\r\n namezh: \"回款计划\"\r\n }\r\n }\r\n ],\r\n meta: {\r\n namezh: \"销售计划\",\r\n }\r\n },\r\n {\r\n path: 'recipe',\r\n name: 'recipe',\r\n component: RecipePage,\r\n meta: {\r\n namezh: \"配方管理\"\r\n }\r\n },\r\n {\r\n path: 'tech_service',\r\n name: 'tech_service',\r\n component: TechnicalServicePage,\r\n meta: {\r\n namezh: \"技术服务\"\r\n }\r\n },\r\n {\r\n path: 'customer_develop',\r\n name: 'customer_develop',\r\n component: CustomerDevelopPage,\r\n meta: {\r\n namezh: \"客户开发\"\r\n }\r\n },\r\n {\r\n path: 'factory',\r\n name: 'factory',\r\n component: FactoryPage,\r\n meta: {\r\n namezh: \"工厂\"\r\n }\r\n },\r\n // {\r\n // path: 'sac/:id',\r\n // name: 'sac',\r\n // component: SACDetail,\r\n // meta: { namezh: \"复配中心\" },\r\n // },\r\n // {\r\n // path: 'sac',\r\n // name: 'sac',\r\n // component: SACPage,\r\n // meta: { namezh: \"智能复配中心\" },\r\n // },\r\n // {\r\n // path: 'sac_company',\r\n // name: 'sac_company',\r\n // component: SACCompanyPage,\r\n // meta: { namezh: \"智能复配中心-公司\" },\r\n // },\r\n {\r\n path: 'company',\r\n name: 'company',\r\n component: CompanyPage,\r\n meta: {\r\n namezh: \"公司\"\r\n },\r\n },\r\n {\r\n path: 'storageTank',\r\n name: 'storageTank',\r\n component: StorageTankPage,\r\n meta: {\r\n namezh: \"储罐列表\"\r\n },\r\n },\r\n {\r\n path: 'tankRental',\r\n name: 'tankRental',\r\n component: TankRental,\r\n meta: {\r\n namezh: \"储罐借用\"\r\n },\r\n },\r\n {\r\n path: 'sales_order',\r\n name: 'sales_order',\r\n component: SalesOrderPage,\r\n meta: {\r\n namezh: \"销售订单\"\r\n }\r\n },\r\n {\r\n path: 'sales_contract',\r\n name: 'sales_contract',\r\n component: SalesContract,\r\n meta: {\r\n namezh: \"销售合同\"\r\n }\r\n },\r\n {\r\n path: 'vehicle',\r\n name: 'vehicle',\r\n component: VehiclePage,\r\n meta: {\r\n namezh: \"车辆信息\"\r\n }\r\n },\r\n {\r\n path: 'sales_prod_order',\r\n name: 'sales_prod_order',\r\n component: SalesProdOrderPage,\r\n meta: {\r\n namezh: \"销售生产订单\"\r\n }\r\n },\r\n {\r\n path: 'bank_account',\r\n name: 'bankAccount',\r\n component: BankAccountPage,\r\n meta: {\r\n namezh: \"收款账号\"\r\n }\r\n },\r\n {\r\n path: 'payment',\r\n name: 'payment',\r\n component: PaymentPage,\r\n meta: {\r\n namezh: \"付款记录\"\r\n }\r\n },\r\n {\r\n path: 'supplier',\r\n name: 'supplier',\r\n component: SupplierPage,\r\n meta: {\r\n namezh: \"供应商\"\r\n }\r\n },\r\n {\r\n path: 'entity',\r\n name: 'entity',\r\n component: EntityPage,\r\n meta: {\r\n namezh: \"机构\"\r\n }\r\n },\r\n {\r\n path: 'importFileProcess',\r\n name: 'importFileProcess',\r\n component: ImportFileProcessPage,\r\n meta: {\r\n namezh: \"出库单\"\r\n }\r\n },\r\n {\r\n path: 'outStoreStat',\r\n name: 'outStoreStat',\r\n component: OutStoreStatPage,\r\n meta: {\r\n namezh: \"出库单统计\"\r\n }\r\n },\r\n {\r\n path: 'importARTable',\r\n name: 'importARTable',\r\n component: ImportARTablePage,\r\n meta: {\r\n namezh: \"账龄\"\r\n }\r\n },\r\n {\r\n path: 'tech_service_stat',\r\n name: 'tech_service_stat',\r\n component: TechServiceStatPage,\r\n meta: {\r\n namezh: \"技服统计\"\r\n }\r\n },\r\n {\r\n path: 'import_customer_qz_table',\r\n name: 'import_customer_qz_table',\r\n component: ImportCustomerQZTablePage,\r\n meta: {\r\n namezh: \"权责表\"\r\n }\r\n },\r\n {\r\n path: 'customer_qz_review',\r\n name: 'customer_qz_review',\r\n component: CustomerQzUpdateFormReview,\r\n meta: {\r\n namezh: \"权责审核\"\r\n }\r\n },\r\n {\r\n path: 'customer_contact',\r\n name: 'customer_contact',\r\n component: CustomerContactPage,\r\n meta: {\r\n namezh: \"联系人\"\r\n }\r\n },\r\n {\r\n path: 'sales_promo_fee',\r\n name: 'sales_promo_fee',\r\n component: SalesPromoFeePage,\r\n meta: {\r\n namezh: \"业务费\"\r\n }\r\n },\r\n {\r\n path: 'receive_task',\r\n name: 'receive_task',\r\n component: ReceiveTaskPage,\r\n meta: {\r\n namezh: \"回款任务\"\r\n }\r\n },\r\n {\r\n path: 'sales_order_vol',\r\n name: 'sales_order_vol',\r\n component: SalesOrderVolPag,\r\n meta: {\r\n namezh: \"销量统计\"\r\n }\r\n },\r\n {\r\n path: 'duizhangdan_list',\r\n name: 'duizhangdan_list',\r\n component: DuizhangdanListPage,\r\n meta: {\r\n namezh: \"对账单列表\"\r\n }\r\n },\r\n {\r\n path: 'sales_order_profit',\r\n name: 'sales_order_profit',\r\n component: SalesOrderProfitPage,\r\n meta: {\r\n namezh: \"客户利润\"\r\n }\r\n },\r\n {\r\n path: 'sales_order_table',\r\n name: 'sales_order_table',\r\n component: SalesOrderTablePage,\r\n meta: {\r\n namezh: \"销售订单列表\"\r\n }\r\n },\r\n];\r\n\r\nconst router = new Router({\r\n mode: \"history\",\r\n routes: [{\r\n path: \"/home\",\r\n name: \"home\",\r\n component: Home,\r\n children: routeList,\r\n },\r\n {\r\n path: \"/\",\r\n name: \"landing\",\r\n component: LandingPage,\r\n meta: {\r\n namezh: \"界面\"\r\n },\r\n },\r\n {\r\n path: \"/login\",\r\n name: \"login\",\r\n component: LoginPage,\r\n meta: {\r\n namezh: \"登录\"\r\n },\r\n },\r\n {\r\n path: \"/signup\",\r\n name: \"signup\",\r\n component: SignupPage,\r\n meta: {\r\n namezh: \"注册\"\r\n },\r\n },\r\n {\r\n path: \"/signup_company\",\r\n name: \"signup_company\",\r\n component: SignupCompanyPage,\r\n meta: {\r\n namezh: \"注册公司\"\r\n },\r\n },\r\n {\r\n path: \"/changePassword\",\r\n name: \"changePassword\",\r\n component: ChangePassword,\r\n meta: {\r\n namezh: \"重置密码\"\r\n },\r\n },\r\n\r\n {\r\n path: \"*\",\r\n redirect: \"/404\",\r\n name: \"404\",\r\n component: LandingPage,\r\n hidden: true,\r\n },\r\n ],\r\n});\r\n\r\nrouter.beforeEach((to, from, next) => {\r\n // redirect to login page if not logged in and trying to access a restricted page\r\n const publicPages = [\"/login\", \"/signup\", \"/\"];\r\n const authRequired = !publicPages.includes(to.path);\r\n const loggedIn = localStorage.getItem(\"token\");\r\n\r\n if (authRequired && !loggedIn) {\r\n return next(\"/login\");\r\n }\r\n next();\r\n});\r\n\r\nexport default router;","/*\r\n * @Author: zjt\r\n * @Email: 13928932429@163.com\r\n * @Date: 2020-07-31 14:42:41\r\n * @LastEditTime: 2021-06-25 09:56:04\r\n * @Description: axios配置\r\n */\r\nimport axios from 'axios'\r\nimport router from '../router/index'\r\n\r\nconst IS_PROD = ['production', 'prod'].includes(process.env.NODE_ENV)\r\n\r\nexport let baseURL = \"\";\r\nif (process.env.NODE_ENV === \"production\" && process.env.type === \"analyz\") {\r\n // baseURL = \"\";\r\n} else if (IS_PROD) {\r\n baseURL = \"//zidaiot.com/api\";\r\n // baseURL = \"//192.168.4.56:9000/api\";\r\n} else {\r\n baseURL = \"//127.0.0.1:9000/api\";\r\n}\r\n\r\nlet instance = axios.create({\r\n baseURL,\r\n withCredentials: false,\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n }\r\n});\r\n\r\n// Add a request interceptor\r\ninstance.interceptors.request.use(function (config) {\r\n // Do something before request is sent\r\n let token = localStorage.getItem(\"token\");\r\n config.headers[\"token\"] = token;\r\n return config;\r\n}, function (error) {\r\n // Do something with request error\r\n return Promise.reject(error.response.data);\r\n});\r\n\r\n// Add a response interceptor\r\ninstance.interceptors.response.use(function (response) {\r\n // Do something with response data\r\n return response.data;\r\n}, function (error) {\r\n // Do something with response error\r\n if (error.response.status === 401) {\r\n localStorage.removeItem(\"token\");\r\n router.push(\"/login\");\r\n }\r\n if (error.response.status === 403) {\r\n return '您没有这个权限'\r\n }\r\n return Promise.reject(error.response.data);\r\n});\r\n\r\nexport default instance;","/*\r\n * @Author: zjt\r\n * @Email: 13928932429@163.com\r\n * @Date: 2020-08-03 08:51:30\r\n * @LastEditTime: 2020-09-27 09:38:06\r\n * @Description: 客户store\r\n */\r\nimport {\r\n getCustomerList,\r\n updateCustomer,\r\n updateManyCustomer,\r\n deleteCustomer,\r\n createCustomer,\r\n getCustomerSimpleList,\r\n getUserCustomerRolesCount,\r\n getCustomerById,\r\n getCustomerQZList,\r\n getCustomerQzById,\r\n getAllCustomerList,\r\n reloadCustomerStatus\r\n} from '@/api/customer'\r\nimport Vue from 'vue'\r\n\r\nconst state = {\r\n customers: [],\r\n customerQZList: [],\r\n currentCustomerQz: null,\r\n customersSimple: [],\r\n customer: {},\r\n bulkCustomers: [],\r\n detailCustomers: [],\r\n userCustomerRolesCount: [],\r\n detailCustomersId: '',\r\n selectCustomer: {},\r\n totalCounts: 0,\r\n}\r\n\r\nconst getters = {\r\n // getCustomerById: (state) => (id) => {\r\n // return state.customers.find(x => x._id === id)\r\n // },\r\n getDetailCustomerById: (state) => (id) => {\r\n return state.detailCustomers.find(x => x._id === id)\r\n },\r\n}\r\n\r\nconst actions = {\r\n async getCustomersAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const res = await getCustomerList(payload)\r\n commit('SETCUSTOMERLIST', res.data);\r\n return res.data.customerList\r\n } catch (error) {\r\n throw error\r\n }\r\n },\r\n\r\n async getCustomerSimpleListAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const res = await getCustomerSimpleList(payload)\r\n commit('SET_CUSTOMER_SIMPLE_LIST', res.data);\r\n return res.data\r\n } catch (error) {\r\n throw error\r\n }\r\n },\r\n\r\n async getAllCustomerListAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const res = await getAllCustomerList(payload)\r\n commit('SET_ALL_CUSTOMER_LIST', res.data);\r\n return res.data\r\n } catch (error) {\r\n throw error\r\n }\r\n },\r\n\r\n async getCustomerByIdAction({\r\n commit\r\n }, id) {\r\n try {\r\n const customer = await getCustomerById(id)\r\n commit('SET_SELECT_CUSTOMER', customer.data);\r\n return customer.data\r\n } catch (error) {\r\n throw error.message\r\n }\r\n },\r\n async getCanApplyCustomersAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const res = await getCustomerSimpleList(payload)\r\n commit('SETCANAPPLYCUSTOMERLIST', res.data);\r\n return res.data.customerList\r\n } catch (error) {\r\n throw error\r\n }\r\n },\r\n // 批量权限的获取客户列表\r\n async getbulkcustomersAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const res = await getCustomerList(payload)\r\n commit('SETBULKCUSTOMERLIST', res.data);\r\n return res.data.customerList\r\n } catch (error) {\r\n throw error\r\n }\r\n },\r\n // 客户详情页的获取客户列表\r\n async getDetailCustomersAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const res = await getCustomerSimpleList(payload)\r\n commit('SETDETAILCUSTOMERLIST', res.data);\r\n return res.data.customerList\r\n } catch (error) {\r\n throw error\r\n }\r\n },\r\n // 获取客户权限统计\r\n async getUserCustomerRolesCountAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const res = await getUserCustomerRolesCount(payload)\r\n commit('SET_USER_CUSTOMER_ROLES_COUNT', res.data);\r\n return res.data\r\n } catch (error) {\r\n throw error\r\n }\r\n },\r\n // 保存客户详情页的客户ID\r\n setDetailCustomersIdAction({\r\n commit\r\n }, id) {\r\n commit('SETDETAILCUSTOMERSID', id)\r\n },\r\n // 保存详细页点击的客户信息\r\n saveSelectCustomerAction({\r\n commit\r\n }, payload) {\r\n commit('SET_SELECT_CUSTOMER', payload)\r\n },\r\n\r\n async createCustomerAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const newCustomer = await createCustomer(payload);\r\n commit('ADDNEWCUSTOMER', newCustomer.data)\r\n } catch (error) {\r\n throw error\r\n }\r\n },\r\n async updateCustomerAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const newCustomer = await updateCustomer(payload.id, payload.data);\r\n commit('UPDATECUSTOMER', newCustomer.data)\r\n return newCustomer.data\r\n } catch (error) {\r\n throw error\r\n }\r\n },\r\n async updateManyCustomerAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const newCustomer = await updateManyCustomer(payload)\r\n commit('UPDATEMANYCUSTOMER', newCustomer.data)\r\n return newCustomer.data\r\n } catch (error) {\r\n throw error\r\n }\r\n },\r\n async deleteCustomerAction({\r\n commit\r\n }, payload) {\r\n try {\r\n await deleteCustomer(payload.id)\r\n commit('DELETECUSTOMER', payload.id)\r\n return payload.id\r\n } catch (error) {\r\n throw error\r\n }\r\n },\r\n // 客户权责表\r\n async getCustomerQZListAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const res = await getCustomerQZList(payload)\r\n commit('SET_CUSTOMER_QZ_LIST', res.data);\r\n return res.data.customerList\r\n } catch (error) {\r\n throw error\r\n }\r\n },\r\n async getCustomerQZByIdAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const res = await getCustomerQzById(payload)\r\n commit('SET_CURRENT_CUSTOMER_QZ', res.data);\r\n return res.data\r\n } catch (error) {\r\n throw error\r\n }\r\n },\r\n // 重置客户的状态\r\n async reloadCustomerStatusAction({\r\n commit\r\n }, payload) {\r\n try {\r\n const res = await reloadCustomerStatus(payload)\r\n return res;\r\n } catch (error) {\r\n throw error\r\n }\r\n },\r\n}\r\n\r\nconst mutations = {\r\n SETCUSTOMERLIST(state, payload) {\r\n state.customers = payload.customerList\r\n state.totalCounts = payload.totalCounts\r\n },\r\n SET_CUSTOMER_SIMPLE_LIST(state, payload) {\r\n state.customersSimple = payload.customerList\r\n },\r\n SET_ALL_CUSTOMER_LIST(state, payload) {\r\n state.customersSimple = payload.customerList\r\n },\r\n SET_USER_CUSTOMER_ROLES_COUNT(state, payload) {\r\n state.userCustomerRolesCount = payload\r\n },\r\n SETCANAPPLYCUSTOMERLIST(state, payload) {\r\n state.customers = payload.customerList.filter(x => {\r\n return !x.hasOwnProperty('customerDevelop')\r\n })\r\n state.totalCounts = payload.totalCounts\r\n },\r\n // 修改 批量权限客户列表的state\r\n SETBULKCUSTOMERLIST(state, payload) {\r\n state.bulkCustomers = payload.customerList\r\n },\r\n // 修改 客户详情页列表的state\r\n SETDETAILCUSTOMERLIST(state, payload) {\r\n state.detailCustomers = payload.customerList\r\n state.totalCounts = payload.totalCounts\r\n },\r\n // 修改客户详情页的客户ID\r\n SETDETAILCUSTOMERSID(state, id) {\r\n state.detailCustomersId = id\r\n },\r\n // 客户详情页信息\r\n SET_SELECT_CUSTOMER(state, payload) {\r\n state.selectCustomer = payload\r\n },\r\n ADDNEWCUSTOMER(state, customer) {\r\n state.customers.unshift(customer)\r\n state.totalCounts++\r\n },\r\n UPDATECUSTOMER(state, customer) {\r\n Vue.set(state.customers, state.customers.findIndex(x => x._id === customer._id), customer);\r\n state.selectCustomer = customer\r\n },\r\n UPDATEMANYCUSTOMER(state, payload) {},\r\n DELETECUSTOMER(state, id) {\r\n state.customers = state.customers.filter(e => e._id !== id)\r\n state.totalCounts--\r\n },\r\n SET_CUSTOMER_QZ_LIST(state, payload) {\r\n state.customerQZList = payload.customerList\r\n state.totalCounts = payload.totalCounts\r\n },\r\n SET_CURRENT_CUSTOMER_QZ(state, payload) {\r\n state.currentCustomerQz = payload\r\n },\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n getters,\r\n actions,\r\n mutations\r\n}","/*\r\n * @Author: zjt\r\n * @Email: 13928932429@163.com\r\n * @Date: 2020-08-03 08:53:21\r\n * @LastEditTime: 2020-09-09 14:15:33\r\n * @Description: 客户api\r\n */\r\nimport axios from '@/utils/axios'\r\n\r\nexport const getCustomerList = (payload) => {\r\n return axios.get('/customer', {\r\n params: payload\r\n })\r\n}\r\n\r\nexport const getCustomerSimpleList = (payload) => {\r\n return axios.get('/customer_simple_list', {\r\n params: payload\r\n })\r\n}\r\n\r\nexport const getAllCustomerList = (payload) => {\r\n return axios.get('/all_customer_list', {\r\n params: payload\r\n })\r\n}\r\n\r\nexport const getUserCustomerRolesCount = (payload) => {\r\n return axios.get('/user_customer_roles_count', {\r\n params: payload\r\n })\r\n}\r\n\r\nexport const getCustomerById = (id) => {\r\n return axios.get(`/customer/${id}`);\r\n}\r\n\r\nexport const updateCustomer = (id, data) => {\r\n return axios.put(`/customer/${id}`, data);\r\n}\r\n\r\nexport const updateManyCustomer = (data) => {\r\n return axios.put(`/many_customer`, data);\r\n}\r\n\r\nexport const deleteCustomer = (id) => {\r\n return axios.delete(`/customer/${id}`)\r\n}\r\n\r\nexport const createCustomer = (data) => {\r\n return axios.post(`/customer`, data)\r\n}\r\n\r\nexport const getCustomerQZList = (payload) => {\r\n return axios.get('/customer_qz_list', {\r\n params: payload\r\n })\r\n}\r\n\r\nexport const getCustomerQzById = (id) => {\r\n return axios.get(`/customer_qz/${id}`);\r\n}\r\n\r\nexport const reloadCustomerStatus = (data) => {\r\n return axios.post(`/reload_customer_status`, data)\r\n}\r\n\r\nexport const getCustomerFullDetailById = (id) => {\r\n return axios.get(`/customer_full_detail/${id}`);\r\n}"],"sourceRoot":""}