From 48f92c9014ffbb2d0c213724a1555b9a8f499a15 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E8=A3=95=E8=B4=A2?= Date: Tue, 31 May 2022 03:34:38 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=8C=E6=AD=A5sys-ui=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/common/admin.js | 10 + src/api/common/bMap.js | 15 + src/api/common/code.js | 283 ++++++ src/api/mdp/app/appBizType.js | 31 + src/api/mdp/app/appMdpDef.js | 29 + src/api/mdp/app/appShopConfig.js | 30 + src/api/mdp/app/appTpAuth.js | 29 + src/api/mdp/app/appTpPay.js | 30 + src/api/mdp/app/shopLocation.js | 14 + src/api/mdp/im/group/imGroupMessage.js | 30 + src/api/mdp/im/prichat/imPrichatMessage.js | 33 + src/api/mdp/mallm/shop/shop.js | 12 + src/api/mdp/mallm/shop/shopLocation.js | 9 + src/api/mdp/menu/menuBranch.js | 29 + src/api/mdp/menu/menuDef.js | 49 + src/api/mdp/menu/menuFavorite.js | 37 + src/api/mdp/menu/menuModule.js | 44 + src/api/mdp/menu/menuModuleBranch.js | 48 + src/api/mdp/menu/menuRole.js | 36 + src/api/mdp/meta/pushLink.js | 34 + src/api/mdp/mo/moOrder.js | 45 + src/api/mdp/mo/moOrderModule.js | 44 + src/api/mdp/plat/bankAccount.js | 30 + src/api/mdp/plat/platform.js | 30 + src/api/mdp/sys/branchConfig.js | 44 + src/api/mdp/sys/branchInterests.js | 47 + src/api/mdp/sys/branchModule.js | 49 + src/api/mdp/sys/deptLocation.js | 33 + src/api/mdp/sys/module.js | 43 + src/api/mdp/sys/operDataTrail.js | 28 + src/api/mdp/sys/post/postRole.js | 33 + src/api/mdp/sys/qx.js | 29 + src/api/mdp/sys/region.js | 26 + src/api/mdp/sys/roleQx.js | 29 + src/api/mdp/sys/thirdPartyAccount.js | 25 + src/api/mdp/sys/userRole.js | 35 + src/api/mdp/sys/userTpa.js | 36 + src/api/mdp/sys/userTpaApply.js | 30 + src/api/mdp/workflow/re/actAssignee.js | 29 + src/assets/image/goodImgNoShow.png | Bin 0 -> 10770 bytes src/assets/image/image_not_found_small.jpg | Bin 0 -> 3198 bytes src/assets/image/platform/email.png | Bin 0 -> 885 bytes src/assets/image/platform/ew_code.png | Bin 0 -> 318 bytes src/assets/image/platform/phone.png | Bin 0 -> 355 bytes src/assets/image/sys/invite/email-0.png | Bin 0 -> 21264 bytes src/assets/image/sys/invite/email-1.png | Bin 0 -> 28454 bytes src/assets/image/sys/invite/ew-code-0.png | Bin 0 -> 8907 bytes src/assets/image/sys/invite/ew-code-1.png | Bin 0 -> 10072 bytes src/assets/image/sys/invite/phone-0.png | Bin 0 -> 11035 bytes src/assets/image/sys/invite/phone-1.png | Bin 0 -> 13076 bytes src/assets/shopDecoration/NoticeBar.png | Bin 0 -> 5352 bytes src/assets/shopDecoration/bottom.png | Bin 0 -> 2977 bytes src/assets/shopDecoration/layoutFive.png | Bin 0 -> 921 bytes src/assets/shopDecoration/layoutFour.png | Bin 0 -> 977 bytes src/assets/shopDecoration/layoutOne.png | Bin 0 -> 1060 bytes src/assets/shopDecoration/layoutSix.png | Bin 0 -> 1788 bytes src/assets/shopDecoration/layoutThree.png | Bin 0 -> 1218 bytes src/assets/shopDecoration/layoutTwo.png | Bin 0 -> 1411 bytes src/assets/shopDecoration/top.png | Bin 0 -> 5526 bytes src/common/js/md5.min.js | 10 + src/components/ExtInfos/Index.vue | 211 +++++ src/components/MyTransfer/index.vue | 96 ++ src/components/TopModules/top_modules_oa.js | 85 ++ src/components/TopModules/top_modules_sys.js | 85 ++ src/components/Upload/singleImage.vue | 123 +++ src/components/Upload/singleImage2.vue | 118 +++ src/components/Upload/singleImage3.vue | 145 +++ .../selectShopLocation/selectDept.vue | 184 ++++ src/icons/svg/edit.svg | 1 + src/icons/svg/eye-open.svg | 1 + src/icons/svg/list.svg | 1 + src/icons/svg/nested.svg | 1 + src/icons/svg/return.svg | 1 + src/icons/svg/shopping.svg | 1 + src/icons/svg/tree-table.svg | 1 + src/icons/svg/tree.svg | 1 + src/lang/zh_arc.js | 29 + src/lang/zh_mallm.js | 102 ++ src/lang/zh_mk.js | 59 ++ src/lang/zh_sys.js | 55 ++ src/mock/mdp/pub/branch.js | 13 + src/mock/mdp/pub/branchMock.js | 152 +++ src/mock/mdp/pub/company.js | 18 + src/mock/mdp/pub/companyMock.js | 172 ++++ src/mock/mdp/pub/cust.js | 14 + src/mock/mdp/pub/custMock.js | 156 ++++ src/mock/mdp/pub/dist.js | 14 + src/mock/mdp/pub/distMock.js | 156 ++++ src/mock/mdp/pub/supplier.js | 14 + src/mock/mdp/pub/supplierMock.js | 156 ++++ src/mock/mdp/sys/category.js | 14 + src/mock/mdp/sys/categoryMock.js | 156 ++++ src/mock/mdp/sys/code.js | 21 + src/mock/mdp/sys/codeDetail.js | 31 + src/mock/mdp/sys/codeDetailMock.js | 224 +++++ src/mock/mdp/sys/codeMock.js | 186 ++++ src/mock/mdp/sys/codeSecond.js | 18 + src/mock/mdp/sys/codeSecondMock.js | 172 ++++ src/mock/mdp/sys/company.js | 17 + src/mock/mdp/sys/companyCategory.js | 13 + src/mock/mdp/sys/companyCategoryMock.js | 152 +++ src/mock/mdp/sys/companyMock.js | 168 ++++ src/mock/mdp/sys/dept.js | 22 + src/mock/mdp/sys/deptExtinfo.js | 13 + src/mock/mdp/sys/deptExtinfoMock.js | 152 +++ src/mock/mdp/sys/deptMch.js | 25 + src/mock/mdp/sys/deptMchMock.js | 200 ++++ src/mock/mdp/sys/deptMock.js | 188 ++++ src/mock/mdp/sys/operDataTrail.js | 19 + src/mock/mdp/sys/operDataTrailMock.js | 176 ++++ src/mock/mdp/sys/qx.js | 17 + src/mock/mdp/sys/qxMock.js | 168 ++++ src/mock/mdp/sys/region.js | 15 + src/mock/mdp/sys/regionMock.js | 160 ++++ src/mock/mdp/sys/role.js | 23 + src/mock/mdp/sys/roleMock.js | 192 ++++ src/mock/mdp/sys/roleQx.js | 14 + src/mock/mdp/sys/roleQxMock.js | 156 ++++ src/mock/mdp/sys/thirdPartyAccount.js | 24 + src/mock/mdp/sys/thirdPartyAccountMock.js | 196 ++++ src/mock/mdp/sys/user.js | 35 + src/mock/mdp/sys/userExtinfo.js | 18 + src/mock/mdp/sys/userExtinfoMock.js | 172 ++++ src/mock/mdp/sys/userMock.js | 240 +++++ src/mock/mdp/sys/userRole.js | 23 + src/mock/mdp/sys/userRoleMock.js | 192 ++++ src/router/routes_sys.js | 119 +++ src/views/charts/keyboard.vue | 24 + src/views/charts/line.vue | 24 + src/views/charts/mixChart.vue | 24 + src/views/clipboard/index.vue | 45 + src/views/excel/exportExcel.vue | 108 +++ src/views/excel/selectExcel.vue | 95 ++ src/views/excel/uploadExcel.vue | 30 + src/views/mdp/app/appMdpDef/AppMdpDefAdd.vue | 145 +++ src/views/mdp/app/appMdpDef/AppMdpDefEdit.vue | 143 +++ src/views/mdp/app/appMdpDef/AppMdpDefMng.vue | 545 +++++++++++ .../app/appShopConfig/AppShopConfigAdd.vue | 165 ++++ .../app/appShopConfig/AppShopConfigEdit.vue | 160 ++++ .../app/appShopConfig/AppShopConfigMng.vue | 254 +++++ .../app/appShopConfig/AppShopConfigSet.vue | 335 +++++++ src/views/mdp/app/appTpAuth/AppTpAuthAdd.vue | 284 ++++++ src/views/mdp/app/appTpAuth/AppTpAuthEdit.vue | 295 ++++++ src/views/mdp/app/appTpAuth/AppTpAuthMng.vue | 275 ++++++ src/views/mdp/app/appTpPay/AppTpPayAdd.vue | 353 +++++++ src/views/mdp/app/appTpPay/AppTpPayEdit.vue | 341 +++++++ src/views/mdp/app/appTpPay/AppTpPayMng.vue | 253 +++++ src/views/mdp/app/selectShop.vue | 120 +++ .../selectShopLocationBySysDept.vue | 144 +++ src/views/mdp/form/formField/FormFieldAdd.vue | 389 ++++++++ .../mdp/form/formField/FormFieldEdit.vue | 169 ++++ src/views/mdp/form/formField/FormFieldMng.vue | 292 ++++++ .../mdp/menu/menuBranch/MenuBranchAdd.vue | 116 +++ .../mdp/menu/menuBranch/MenuBranchEdit.vue | 111 +++ .../mdp/menu/menuBranch/MenuBranchMng.vue | 241 +++++ src/views/mdp/menu/menuDef/MenuButtons.vue | 310 ++++++ src/views/mdp/menu/menuDef/MenuDefAdd.vue | 183 ++++ src/views/mdp/menu/menuDef/MenuDefEdit.vue | 187 ++++ src/views/mdp/menu/menuDef/MenuDefImport.vue | 308 ++++++ src/views/mdp/menu/menuDef/MenuDefMng.vue | 394 ++++++++ src/views/mdp/menu/menuDef/MenuTree.vue | 260 ++++++ .../menu/menuFavorite/MenuFavoriteEdit.vue | 178 ++++ .../mdp/menu/menuFavorite/MenuFavoriteMng.vue | 380 ++++++++ .../mdp/menu/menuModule/MenuModuleComplex.vue | 384 ++++++++ .../mdp/menu/menuModule/MenuModuleEdit.vue | 205 ++++ .../mdp/menu/menuModule/MenuModuleMng.vue | 373 ++++++++ .../mdp/menu/menuModule/ModuleSelect.vue | 205 ++++ .../MenuModuleBranchComplex.vue | 345 +++++++ .../menuModuleBranch/MenuModuleBranchEdit.vue | 200 ++++ .../menuModuleBranch/MenuModuleBranchMng.vue | 323 +++++++ src/views/mdp/menu/menuRole/MenuRoleAdd.vue | 117 +++ src/views/mdp/menu/menuRole/MenuRoleEdit.vue | 112 +++ src/views/mdp/menu/menuRole/MenuRoleMng.vue | 241 +++++ src/views/mdp/menu/menuRole/MenuRoleSet.vue | 182 ++++ src/views/mdp/menu/menuRole/RoleMenuSet.vue | 125 +++ src/views/mdp/meta/item/ItemList.vue | 287 ++++++ src/views/mdp/meta/item/ItemSetData.vue | 247 +++++ .../mdp/meta/item/ItemSetDataFixdItemCode.vue | 84 ++ src/views/mdp/meta/item/ItemSetDataRoute.vue | 103 ++ src/views/mdp/meta/pushLink/PushLinkEdit.vue | 153 +++ src/views/mdp/meta/pushLink/PushLinkMng.vue | 257 +++++ src/views/mdp/meta/sysParam/SysParamSet.vue | 323 +++++++ src/views/mdp/mo/moOrder/MoOrderEdit.vue | 326 +++++++ src/views/mdp/mo/moOrder/MoOrderMng.vue | 426 +++++++++ src/views/mdp/mo/moOrder/MyMoOrderMng.vue | 241 +++++ .../mo/moOrderModule/MoOrderModuleEdit.vue | 208 +++++ .../mdp/mo/moOrderModule/MoOrderModuleMng.vue | 329 +++++++ .../openAccount/openAccountMng.vue | 458 +++++++++ .../mdp/plat/bankAccount/BankAccountAdd.vue | 144 +++ .../mdp/plat/bankAccount/BankAccountEdit.vue | 147 +++ .../mdp/plat/bankAccount/BankAccountMng.vue | 160 ++++ .../plat/bankAccount/BankAccountMng_old.vue | 259 +++++ src/views/mdp/plat/platform/PlatformMng.vue | 402 ++++++++ src/views/mdp/sys/branch/BranchMng.vue | 513 ++++++++++ src/views/mdp/sys/branch/BranchSet.vue | 325 +++++++ .../mdp/sys/branchConfig/BranchConfigEdit.vue | 146 +++ .../mdp/sys/branchConfig/BranchConfigMng.vue | 332 +++++++ .../branchInterests/BranchInterestsEdit.vue | 233 +++++ .../branchInterests/BranchInterestsMng.vue | 451 +++++++++ .../mdp/sys/branchModule/BranchModuleEdit.vue | 199 ++++ .../mdp/sys/branchModule/BranchModuleMng.vue | 323 +++++++ src/views/mdp/sys/dept/DeptAdd.vue | 209 +++++ src/views/mdp/sys/dept/DeptEdit.vue | 178 ++++ src/views/mdp/sys/dept/DeptLocationEdit.vue | 395 ++++++++ src/views/mdp/sys/dept/DeptLocationEdit2.vue | 474 ++++++++++ src/views/mdp/sys/dept/DeptMng.vue | 884 ++++++++++++++++++ src/views/mdp/sys/dept/DeptSelect.vue | 374 ++++++++ .../mdp/sys/deptLocation/DeptLocationAdd.vue | 128 +++ .../mdp/sys/deptLocation/DeptLocationEdit.vue | 123 +++ .../mdp/sys/deptLocation/DeptLocationMng.vue | 245 +++++ src/views/mdp/sys/module/ModuleEdit.vue | 192 ++++ src/views/mdp/sys/module/ModuleMng.vue | 341 +++++++ src/views/mdp/sys/module/ModuleSelect.vue | 205 ++++ .../sys/operDataTrail/OperDataTrailMng.vue | 322 +++++++ .../mdp/sys/post/deptPost/DeptPostAdd.vue | 117 +++ .../mdp/sys/post/deptPost/DeptPostEdit.vue | 112 +++ .../mdp/sys/post/deptPost/DeptPostMng.vue | 190 ++++ src/views/mdp/sys/post/deptPost/PostDepts.vue | 191 ++++ .../mdp/sys/post/deptPost/PostSelect.vue | 208 +++++ .../sys/post/deptPostUser/DeptPostUserAdd.vue | 132 +++ .../post/deptPostUser/DeptPostUserEdit.vue | 127 +++ .../post/deptPostUser/DeptPostUserMenu.vue | 288 ++++++ .../sys/post/deptPostUser/DeptPostUserMng.vue | 411 ++++++++ .../post/deptPostUser/DeptPostUserRole.vue | 282 ++++++ src/views/mdp/sys/post/post/PostAdd.vue | 146 +++ src/views/mdp/sys/post/post/PostEdit.vue | 141 +++ src/views/mdp/sys/post/post/PostMng.vue | 511 ++++++++++ .../mdp/sys/post/postRole/PostRoleAdd.vue | 114 +++ .../mdp/sys/post/postRole/PostRoleEdit.vue | 106 +++ .../mdp/sys/post/postRole/PostRoleMng.vue | 363 +++++++ .../mdp/sys/post/postRole/RoleSelect.vue | 258 +++++ .../mdp/sys/post/postRole/SetRolesToPost.vue | 185 ++++ src/views/mdp/sys/qx/QxAdd.vue | 136 +++ src/views/mdp/sys/qx/QxEdit.vue | 135 +++ src/views/mdp/sys/qx/QxMng.vue | 321 +++++++ src/views/mdp/sys/region/RegionAdd.vue | 123 +++ src/views/mdp/sys/region/RegionEdit.vue | 121 +++ src/views/mdp/sys/region/RegionMng.vue | 266 ++++++ src/views/mdp/sys/role/RoleAdd.vue | 142 +++ src/views/mdp/sys/role/RoleEdit.vue | 136 +++ src/views/mdp/sys/role/RoleMng.vue | 464 +++++++++ src/views/mdp/sys/roleQx/RoleQxMng.vue | 289 ++++++ .../ThirdPartyAccountMng.vue | 339 +++++++ src/views/mdp/sys/user/BranchAdm.vue | 170 ++++ src/views/mdp/sys/user/ChangeEmailStepOne.vue | 168 ++++ src/views/mdp/sys/user/ChangeEmailStepTwo.vue | 114 +++ src/views/mdp/sys/user/MemMemberMng.vue | 280 ++++++ src/views/mdp/sys/user/UserAdd.vue | 238 +++++ src/views/mdp/sys/user/UserEdit.vue | 220 +++++ src/views/mdp/sys/user/UserInvite.vue | 298 ++++++ src/views/mdp/sys/user/UserMng.vue | 843 +++++++++++++++++ src/views/mdp/sys/user/UserTpaMng.vue | 293 ++++++ src/views/mdp/sys/user/UsersSelectOnly.vue | 325 +++++++ src/views/mdp/sys/userDept/DeptPostSelect.vue | 247 +++++ src/views/mdp/sys/userDept/UserDeptList.vue | 255 +++++ .../userLoginRecord/UserLoginRecordEdit.vue | 195 ++++ .../userLoginRecord/UserLoginRecordMng.vue | 419 +++++++++ src/views/mdp/sys/userRole/UserRoleEdit.vue | 185 ++++ src/views/mdp/sys/userRole/UserRoleList.vue | 162 ++++ src/views/mdp/sys/userTpa/UserTpaAdd.vue | 164 ++++ src/views/mdp/sys/userTpa/UserTpaEdit.vue | 159 ++++ src/views/mdp/sys/userTpa/UserTpaMng.vue | 257 +++++ .../mdp/sys/userTpaApply/UserTpaApplyAdd.vue | 144 +++ .../mdp/sys/userTpaApply/UserTpaApplyEdit.vue | 142 +++ .../mdp/sys/userTpaApply/UserTpaApplyMng.vue | 377 ++++++++ src/views/myWork/message/archive.vue | 97 ++ src/views/myWork/message/groupIm.vue | 98 ++ src/views/myWork/message/prichatIm.vue | 110 +++ src/views/order/addUsersIndex.vue | 325 +++++++ src/views/order/renewIndex.vue | 134 +++ src/views/qiniu/upload.vue | 40 + 271 files changed, 41854 insertions(+) create mode 100644 src/api/common/admin.js create mode 100644 src/api/common/bMap.js create mode 100644 src/api/common/code.js create mode 100644 src/api/mdp/app/appBizType.js create mode 100644 src/api/mdp/app/appMdpDef.js create mode 100644 src/api/mdp/app/appShopConfig.js create mode 100644 src/api/mdp/app/appTpAuth.js create mode 100644 src/api/mdp/app/appTpPay.js create mode 100644 src/api/mdp/app/shopLocation.js create mode 100644 src/api/mdp/im/group/imGroupMessage.js create mode 100644 src/api/mdp/im/prichat/imPrichatMessage.js create mode 100644 src/api/mdp/mallm/shop/shop.js create mode 100644 src/api/mdp/mallm/shop/shopLocation.js create mode 100644 src/api/mdp/menu/menuBranch.js create mode 100644 src/api/mdp/menu/menuDef.js create mode 100644 src/api/mdp/menu/menuFavorite.js create mode 100644 src/api/mdp/menu/menuModule.js create mode 100644 src/api/mdp/menu/menuModuleBranch.js create mode 100644 src/api/mdp/menu/menuRole.js create mode 100644 src/api/mdp/meta/pushLink.js create mode 100644 src/api/mdp/mo/moOrder.js create mode 100644 src/api/mdp/mo/moOrderModule.js create mode 100644 src/api/mdp/plat/bankAccount.js create mode 100644 src/api/mdp/plat/platform.js create mode 100644 src/api/mdp/sys/branchConfig.js create mode 100644 src/api/mdp/sys/branchInterests.js create mode 100644 src/api/mdp/sys/branchModule.js create mode 100644 src/api/mdp/sys/deptLocation.js create mode 100644 src/api/mdp/sys/module.js create mode 100644 src/api/mdp/sys/operDataTrail.js create mode 100644 src/api/mdp/sys/post/postRole.js create mode 100644 src/api/mdp/sys/qx.js create mode 100644 src/api/mdp/sys/region.js create mode 100644 src/api/mdp/sys/roleQx.js create mode 100644 src/api/mdp/sys/thirdPartyAccount.js create mode 100644 src/api/mdp/sys/userRole.js create mode 100644 src/api/mdp/sys/userTpa.js create mode 100644 src/api/mdp/sys/userTpaApply.js create mode 100644 src/api/mdp/workflow/re/actAssignee.js create mode 100644 src/assets/image/goodImgNoShow.png create mode 100644 src/assets/image/image_not_found_small.jpg create mode 100644 src/assets/image/platform/email.png create mode 100644 src/assets/image/platform/ew_code.png create mode 100644 src/assets/image/platform/phone.png create mode 100644 src/assets/image/sys/invite/email-0.png create mode 100644 src/assets/image/sys/invite/email-1.png create mode 100644 src/assets/image/sys/invite/ew-code-0.png create mode 100644 src/assets/image/sys/invite/ew-code-1.png create mode 100644 src/assets/image/sys/invite/phone-0.png create mode 100644 src/assets/image/sys/invite/phone-1.png create mode 100644 src/assets/shopDecoration/NoticeBar.png create mode 100644 src/assets/shopDecoration/bottom.png create mode 100644 src/assets/shopDecoration/layoutFive.png create mode 100644 src/assets/shopDecoration/layoutFour.png create mode 100644 src/assets/shopDecoration/layoutOne.png create mode 100644 src/assets/shopDecoration/layoutSix.png create mode 100644 src/assets/shopDecoration/layoutThree.png create mode 100644 src/assets/shopDecoration/layoutTwo.png create mode 100644 src/assets/shopDecoration/top.png create mode 100644 src/common/js/md5.min.js create mode 100644 src/components/ExtInfos/Index.vue create mode 100644 src/components/MyTransfer/index.vue create mode 100644 src/components/TopModules/top_modules_oa.js create mode 100644 src/components/TopModules/top_modules_sys.js create mode 100644 src/components/Upload/singleImage.vue create mode 100644 src/components/Upload/singleImage2.vue create mode 100644 src/components/Upload/singleImage3.vue create mode 100644 src/components/selectShopLocation/selectDept.vue create mode 100644 src/icons/svg/edit.svg create mode 100644 src/icons/svg/eye-open.svg create mode 100644 src/icons/svg/list.svg create mode 100644 src/icons/svg/nested.svg create mode 100644 src/icons/svg/return.svg create mode 100644 src/icons/svg/shopping.svg create mode 100644 src/icons/svg/tree-table.svg create mode 100644 src/icons/svg/tree.svg create mode 100644 src/lang/zh_arc.js create mode 100644 src/lang/zh_mallm.js create mode 100644 src/lang/zh_mk.js create mode 100644 src/lang/zh_sys.js create mode 100644 src/mock/mdp/pub/branch.js create mode 100644 src/mock/mdp/pub/branchMock.js create mode 100644 src/mock/mdp/pub/company.js create mode 100644 src/mock/mdp/pub/companyMock.js create mode 100644 src/mock/mdp/pub/cust.js create mode 100644 src/mock/mdp/pub/custMock.js create mode 100644 src/mock/mdp/pub/dist.js create mode 100644 src/mock/mdp/pub/distMock.js create mode 100644 src/mock/mdp/pub/supplier.js create mode 100644 src/mock/mdp/pub/supplierMock.js create mode 100644 src/mock/mdp/sys/category.js create mode 100644 src/mock/mdp/sys/categoryMock.js create mode 100644 src/mock/mdp/sys/code.js create mode 100644 src/mock/mdp/sys/codeDetail.js create mode 100644 src/mock/mdp/sys/codeDetailMock.js create mode 100644 src/mock/mdp/sys/codeMock.js create mode 100644 src/mock/mdp/sys/codeSecond.js create mode 100644 src/mock/mdp/sys/codeSecondMock.js create mode 100644 src/mock/mdp/sys/company.js create mode 100644 src/mock/mdp/sys/companyCategory.js create mode 100644 src/mock/mdp/sys/companyCategoryMock.js create mode 100644 src/mock/mdp/sys/companyMock.js create mode 100644 src/mock/mdp/sys/dept.js create mode 100644 src/mock/mdp/sys/deptExtinfo.js create mode 100644 src/mock/mdp/sys/deptExtinfoMock.js create mode 100644 src/mock/mdp/sys/deptMch.js create mode 100644 src/mock/mdp/sys/deptMchMock.js create mode 100644 src/mock/mdp/sys/deptMock.js create mode 100644 src/mock/mdp/sys/operDataTrail.js create mode 100644 src/mock/mdp/sys/operDataTrailMock.js create mode 100644 src/mock/mdp/sys/qx.js create mode 100644 src/mock/mdp/sys/qxMock.js create mode 100644 src/mock/mdp/sys/region.js create mode 100644 src/mock/mdp/sys/regionMock.js create mode 100644 src/mock/mdp/sys/role.js create mode 100644 src/mock/mdp/sys/roleMock.js create mode 100644 src/mock/mdp/sys/roleQx.js create mode 100644 src/mock/mdp/sys/roleQxMock.js create mode 100644 src/mock/mdp/sys/thirdPartyAccount.js create mode 100644 src/mock/mdp/sys/thirdPartyAccountMock.js create mode 100644 src/mock/mdp/sys/user.js create mode 100644 src/mock/mdp/sys/userExtinfo.js create mode 100644 src/mock/mdp/sys/userExtinfoMock.js create mode 100644 src/mock/mdp/sys/userMock.js create mode 100644 src/mock/mdp/sys/userRole.js create mode 100644 src/mock/mdp/sys/userRoleMock.js create mode 100644 src/router/routes_sys.js create mode 100644 src/views/charts/keyboard.vue create mode 100644 src/views/charts/line.vue create mode 100644 src/views/charts/mixChart.vue create mode 100644 src/views/clipboard/index.vue create mode 100644 src/views/excel/exportExcel.vue create mode 100644 src/views/excel/selectExcel.vue create mode 100644 src/views/excel/uploadExcel.vue create mode 100644 src/views/mdp/app/appMdpDef/AppMdpDefAdd.vue create mode 100644 src/views/mdp/app/appMdpDef/AppMdpDefEdit.vue create mode 100644 src/views/mdp/app/appMdpDef/AppMdpDefMng.vue create mode 100644 src/views/mdp/app/appShopConfig/AppShopConfigAdd.vue create mode 100644 src/views/mdp/app/appShopConfig/AppShopConfigEdit.vue create mode 100644 src/views/mdp/app/appShopConfig/AppShopConfigMng.vue create mode 100644 src/views/mdp/app/appShopConfig/AppShopConfigSet.vue create mode 100644 src/views/mdp/app/appTpAuth/AppTpAuthAdd.vue create mode 100644 src/views/mdp/app/appTpAuth/AppTpAuthEdit.vue create mode 100644 src/views/mdp/app/appTpAuth/AppTpAuthMng.vue create mode 100644 src/views/mdp/app/appTpPay/AppTpPayAdd.vue create mode 100644 src/views/mdp/app/appTpPay/AppTpPayEdit.vue create mode 100644 src/views/mdp/app/appTpPay/AppTpPayMng.vue create mode 100644 src/views/mdp/app/selectShop.vue create mode 100644 src/views/mdp/app/selectShopLocationBySysDept/selectShopLocationBySysDept.vue create mode 100644 src/views/mdp/form/formField/FormFieldAdd.vue create mode 100644 src/views/mdp/form/formField/FormFieldEdit.vue create mode 100644 src/views/mdp/form/formField/FormFieldMng.vue create mode 100644 src/views/mdp/menu/menuBranch/MenuBranchAdd.vue create mode 100644 src/views/mdp/menu/menuBranch/MenuBranchEdit.vue create mode 100644 src/views/mdp/menu/menuBranch/MenuBranchMng.vue create mode 100644 src/views/mdp/menu/menuDef/MenuButtons.vue create mode 100644 src/views/mdp/menu/menuDef/MenuDefAdd.vue create mode 100644 src/views/mdp/menu/menuDef/MenuDefEdit.vue create mode 100644 src/views/mdp/menu/menuDef/MenuDefImport.vue create mode 100644 src/views/mdp/menu/menuDef/MenuDefMng.vue create mode 100644 src/views/mdp/menu/menuDef/MenuTree.vue create mode 100644 src/views/mdp/menu/menuFavorite/MenuFavoriteEdit.vue create mode 100644 src/views/mdp/menu/menuFavorite/MenuFavoriteMng.vue create mode 100644 src/views/mdp/menu/menuModule/MenuModuleComplex.vue create mode 100644 src/views/mdp/menu/menuModule/MenuModuleEdit.vue create mode 100644 src/views/mdp/menu/menuModule/MenuModuleMng.vue create mode 100644 src/views/mdp/menu/menuModule/ModuleSelect.vue create mode 100644 src/views/mdp/menu/menuModuleBranch/MenuModuleBranchComplex.vue create mode 100644 src/views/mdp/menu/menuModuleBranch/MenuModuleBranchEdit.vue create mode 100644 src/views/mdp/menu/menuModuleBranch/MenuModuleBranchMng.vue create mode 100644 src/views/mdp/menu/menuRole/MenuRoleAdd.vue create mode 100644 src/views/mdp/menu/menuRole/MenuRoleEdit.vue create mode 100644 src/views/mdp/menu/menuRole/MenuRoleMng.vue create mode 100644 src/views/mdp/menu/menuRole/MenuRoleSet.vue create mode 100644 src/views/mdp/menu/menuRole/RoleMenuSet.vue create mode 100644 src/views/mdp/meta/item/ItemList.vue create mode 100644 src/views/mdp/meta/item/ItemSetData.vue create mode 100644 src/views/mdp/meta/item/ItemSetDataFixdItemCode.vue create mode 100644 src/views/mdp/meta/item/ItemSetDataRoute.vue create mode 100644 src/views/mdp/meta/pushLink/PushLinkEdit.vue create mode 100644 src/views/mdp/meta/pushLink/PushLinkMng.vue create mode 100644 src/views/mdp/meta/sysParam/SysParamSet.vue create mode 100644 src/views/mdp/mo/moOrder/MoOrderEdit.vue create mode 100644 src/views/mdp/mo/moOrder/MoOrderMng.vue create mode 100644 src/views/mdp/mo/moOrder/MyMoOrderMng.vue create mode 100644 src/views/mdp/mo/moOrderModule/MoOrderModuleEdit.vue create mode 100644 src/views/mdp/mo/moOrderModule/MoOrderModuleMng.vue create mode 100644 src/views/mdp/openAccount/openAccount/openAccountMng.vue create mode 100644 src/views/mdp/plat/bankAccount/BankAccountAdd.vue create mode 100644 src/views/mdp/plat/bankAccount/BankAccountEdit.vue create mode 100644 src/views/mdp/plat/bankAccount/BankAccountMng.vue create mode 100644 src/views/mdp/plat/bankAccount/BankAccountMng_old.vue create mode 100644 src/views/mdp/plat/platform/PlatformMng.vue create mode 100644 src/views/mdp/sys/branch/BranchMng.vue create mode 100644 src/views/mdp/sys/branch/BranchSet.vue create mode 100644 src/views/mdp/sys/branchConfig/BranchConfigEdit.vue create mode 100644 src/views/mdp/sys/branchConfig/BranchConfigMng.vue create mode 100644 src/views/mdp/sys/branchInterests/BranchInterestsEdit.vue create mode 100644 src/views/mdp/sys/branchInterests/BranchInterestsMng.vue create mode 100644 src/views/mdp/sys/branchModule/BranchModuleEdit.vue create mode 100644 src/views/mdp/sys/branchModule/BranchModuleMng.vue create mode 100644 src/views/mdp/sys/dept/DeptAdd.vue create mode 100644 src/views/mdp/sys/dept/DeptEdit.vue create mode 100644 src/views/mdp/sys/dept/DeptLocationEdit.vue create mode 100644 src/views/mdp/sys/dept/DeptLocationEdit2.vue create mode 100644 src/views/mdp/sys/dept/DeptMng.vue create mode 100644 src/views/mdp/sys/dept/DeptSelect.vue create mode 100644 src/views/mdp/sys/deptLocation/DeptLocationAdd.vue create mode 100644 src/views/mdp/sys/deptLocation/DeptLocationEdit.vue create mode 100644 src/views/mdp/sys/deptLocation/DeptLocationMng.vue create mode 100644 src/views/mdp/sys/module/ModuleEdit.vue create mode 100644 src/views/mdp/sys/module/ModuleMng.vue create mode 100644 src/views/mdp/sys/module/ModuleSelect.vue create mode 100644 src/views/mdp/sys/operDataTrail/OperDataTrailMng.vue create mode 100644 src/views/mdp/sys/post/deptPost/DeptPostAdd.vue create mode 100644 src/views/mdp/sys/post/deptPost/DeptPostEdit.vue create mode 100644 src/views/mdp/sys/post/deptPost/DeptPostMng.vue create mode 100644 src/views/mdp/sys/post/deptPost/PostDepts.vue create mode 100644 src/views/mdp/sys/post/deptPost/PostSelect.vue create mode 100644 src/views/mdp/sys/post/deptPostUser/DeptPostUserAdd.vue create mode 100644 src/views/mdp/sys/post/deptPostUser/DeptPostUserEdit.vue create mode 100644 src/views/mdp/sys/post/deptPostUser/DeptPostUserMenu.vue create mode 100644 src/views/mdp/sys/post/deptPostUser/DeptPostUserMng.vue create mode 100644 src/views/mdp/sys/post/deptPostUser/DeptPostUserRole.vue create mode 100644 src/views/mdp/sys/post/post/PostAdd.vue create mode 100644 src/views/mdp/sys/post/post/PostEdit.vue create mode 100644 src/views/mdp/sys/post/post/PostMng.vue create mode 100644 src/views/mdp/sys/post/postRole/PostRoleAdd.vue create mode 100644 src/views/mdp/sys/post/postRole/PostRoleEdit.vue create mode 100644 src/views/mdp/sys/post/postRole/PostRoleMng.vue create mode 100644 src/views/mdp/sys/post/postRole/RoleSelect.vue create mode 100644 src/views/mdp/sys/post/postRole/SetRolesToPost.vue create mode 100644 src/views/mdp/sys/qx/QxAdd.vue create mode 100644 src/views/mdp/sys/qx/QxEdit.vue create mode 100644 src/views/mdp/sys/qx/QxMng.vue create mode 100644 src/views/mdp/sys/region/RegionAdd.vue create mode 100644 src/views/mdp/sys/region/RegionEdit.vue create mode 100644 src/views/mdp/sys/region/RegionMng.vue create mode 100644 src/views/mdp/sys/role/RoleAdd.vue create mode 100644 src/views/mdp/sys/role/RoleEdit.vue create mode 100644 src/views/mdp/sys/role/RoleMng.vue create mode 100644 src/views/mdp/sys/roleQx/RoleQxMng.vue create mode 100644 src/views/mdp/sys/thirdPartyAccount/ThirdPartyAccountMng.vue create mode 100644 src/views/mdp/sys/user/BranchAdm.vue create mode 100644 src/views/mdp/sys/user/ChangeEmailStepOne.vue create mode 100644 src/views/mdp/sys/user/ChangeEmailStepTwo.vue create mode 100644 src/views/mdp/sys/user/MemMemberMng.vue create mode 100644 src/views/mdp/sys/user/UserAdd.vue create mode 100644 src/views/mdp/sys/user/UserEdit.vue create mode 100644 src/views/mdp/sys/user/UserInvite.vue create mode 100644 src/views/mdp/sys/user/UserMng.vue create mode 100644 src/views/mdp/sys/user/UserTpaMng.vue create mode 100644 src/views/mdp/sys/user/UsersSelectOnly.vue create mode 100644 src/views/mdp/sys/userDept/DeptPostSelect.vue create mode 100644 src/views/mdp/sys/userDept/UserDeptList.vue create mode 100644 src/views/mdp/sys/userLoginRecord/UserLoginRecordEdit.vue create mode 100644 src/views/mdp/sys/userLoginRecord/UserLoginRecordMng.vue create mode 100644 src/views/mdp/sys/userRole/UserRoleEdit.vue create mode 100644 src/views/mdp/sys/userRole/UserRoleList.vue create mode 100644 src/views/mdp/sys/userTpa/UserTpaAdd.vue create mode 100644 src/views/mdp/sys/userTpa/UserTpaEdit.vue create mode 100644 src/views/mdp/sys/userTpa/UserTpaMng.vue create mode 100644 src/views/mdp/sys/userTpaApply/UserTpaApplyAdd.vue create mode 100644 src/views/mdp/sys/userTpaApply/UserTpaApplyEdit.vue create mode 100644 src/views/mdp/sys/userTpaApply/UserTpaApplyMng.vue create mode 100644 src/views/myWork/message/archive.vue create mode 100644 src/views/myWork/message/groupIm.vue create mode 100644 src/views/myWork/message/prichatIm.vue create mode 100644 src/views/order/addUsersIndex.vue create mode 100644 src/views/order/renewIndex.vue create mode 100644 src/views/qiniu/upload.vue diff --git a/src/api/common/admin.js b/src/api/common/admin.js new file mode 100644 index 00000000..ebe62ea9 --- /dev/null +++ b/src/api/common/admin.js @@ -0,0 +1,10 @@ +import axios from '@/utils/request' + +import config from '@/common/config' + +let base = config.getSysBasePath(); + +//没用到的api请注释掉 + +export const listAdmin = params => { return axios.post(`${base}/pub/admin/list`, params) }; + diff --git a/src/api/common/bMap.js b/src/api/common/bMap.js new file mode 100644 index 00000000..f981c4c4 --- /dev/null +++ b/src/api/common/bMap.js @@ -0,0 +1,15 @@ +import axios from '@/utils/request' + + + + +/** + * 商品信息 + *1 默认只开放普通查询,所有查询,只要上传 分页参数 {currentPage:当前页码从1开始,pageSize:每页记录数,total:总记录【数如果是0后台会自动计算总记录数非0不会自动计算】},后台都会自动按分页查询 其它 api用到再打开,没用到的api请注释掉, + *2 查询、新增、修改的参数格式 params={id:'商品编号 主键',categoryId:'分类编号',goodsSn:'商品编码',name:'商品名称',brandId:'品牌编号',goodsNumber:'商品数量',keywords:'关键词',goodsBrief:'商品简介',goodsDesc:'商品详情',isOnSale:'是否在售',addTime:'添加时间',sortOrder:'排序',isDelete:'是否已删除',attributeCategory:'商品属性分类',isNew:'是否是新品',goodsUnit:'商品单位',primaryPicUrl:'商品主图',listPicUrl:'商品列表图',primaryProductId:'主产品编号',promotionDesc:'推广描述',promotionTag:'推广标签',isLimited:'是否限制',isHot:'是否热销',shopLocationId:'商品所属门店编号',retailPrice:'零售价格',wholesalePrice:'批发价格',purchasePrice:'进货价格',floorPrice:'最低价格'} + **/ +// '/api/m1/bMap/' target: 'https://api.map.baidu.com/ +// https://api.map.baidu.com/?qt=rgc&x=12609455&y=2620453.94&dis_poi=100&poi_num=10&latest_admin=1&ie=utf-8&oue=1&fromproduct=jsapi&res=api&callback=BMap._rd._cbk30753&ak=T4lll3sQi7ZdbnVb1INOCrxequ1kp4PG +// 百度地图api,点转纤细 +// export const pointToLocation = params => { return axios.get(`https://api.map.baidu.com/`, { params: params }) } +export const pointToLocation = params => { return axios.get(`/bmap`, { params: params }) } diff --git a/src/api/common/code.js b/src/api/common/code.js new file mode 100644 index 00000000..b908d363 --- /dev/null +++ b/src/api/common/code.js @@ -0,0 +1,283 @@ +import axios from '@/utils/request' + +import config from '@/common/config' + +let base = config.getSysBasePath(); + +/*** + * { + * + * } + */ +var cacheOptions={}; + +var cacheSeconds={}; + +var cacheOptionsBySecondCodeRows={}; + +var cacheCompanyDepts=null; + +var cacheCompanyEmployees=null; + +//默认只开放普通查询,所有查询,只要上传 分页参数 {currentPage:1,pageSize:10,total:0},后台都会自动按分页查询 其它 api用到再打开,没用到的api请注释掉, + +//普通查询 +export const listCode = params => { return axios.get(`${base}/sys/code/list`, { params: params }); }; + +//关键字模糊查询 {字段1:v1,字段2:v1,字段3:v1},字段驼峰命名,条件之间默认为or关系 +export const listCodeKey = params => { + + return axios.get(`${base}/sys/code/listKey`, { params: params }); + +}; + + +/** + * 查询下拉选项目 参数为数组型参数 如 selectOptions( { fieldNames:['sex','age','student'],code:'all' } ),code为数据分类 + * 返回结果为: + * res.data.data:{ + * sex:[{codeName:男,codeValue:1,ifdefault:'1'},{codeName:女,codeValue:2,ifdefault:'0'}], + * age:[{codeName:1岁,codeValue:1,ifdefault:'1'},{codeName:2岁,codeValue:2,ifdefault:'0'},{codeName:3岁,codeValue:3,ifdefault:'0'}] + * } + */ +export const selectCacheOptions = params => { + + let code=params.code; + let fieldNames=params.fieldNames; + if(!cacheOptions[code]){ + return new Promise((resolve, reject) => { + axios.get(`${base}/sys/code/selectOptions`, { params:params }).then(res=>{ + let options=res.data.data; + cacheOptions[code]=options; + resolve({ + data: {data:options} + }); + }); + + }); + + }else{ + let codeOptions=cacheOptions[code]; + var lostFieldNames=[]; + var cacheHasOptions={}; + fieldNames.forEach(item=>{ + if(codeOptions[item]){ + cacheHasOptions[item]=codeOptions[item]; + }else{ + lostFieldNames.push(item); + } + }); + if(lostFieldNames.length>0){ + return new Promise((resolve, reject) => { + axios.get(`${base}/sys/code/selectOptions`, { params:{code:code,fieldNames:lostFieldNames} }).then(res=>{ + let options2=res.data.data; + lostFieldNames.forEach(item=>{ + codeOptions[item]=options2[item]; + cacheHasOptions[item]=options2[item]; + cacheOptions[code]=codeOptions; + + }); + resolve( { + data: {data:cacheHasOptions} + }); + }); + + }); + + }else{ + return new Promise((resolve, reject) => { + resolve( { + data: {data:cacheHasOptions} + }); + }); + } + + } + + +}; +/** + * 查询下拉选项目 参数为数组型参数 如 selectOptionsBySecondCodeRows( {secondCodeRows:['secondCodeRow1','secondCodeRow2']} ) + * 返回结果为: + * res.data.data:{ + * secondCodeRow1:[{codeName:男,codeValue:1,ifdefault:'1'},{codeName:女,codeValue:2,ifdefault:'0'}], + * secondCodeRow1:[{codeName:1岁,codeValue:1,ifdefault:'1'},{codeName:2岁,codeValue:2,ifdefault:'0'},{codeName:3岁,codeValue:3,ifdefault:'0'}] + * } + */ +export const selectOptionsBySecondCodeRows = params => { + let secondCodeRows=params.secondCodeRows; + var lostSecondCodeRows=[]; + var cacheHasOptions={}; + secondCodeRows.forEach(item=>{ + if(cacheOptionsBySecondCodeRows[item]){ + cacheHasOptions[item]=cacheOptionsBySecondCodeRows[item]; + }else{ + lostSecondCodeRows.push(item); + } + }); + if(lostSecondCodeRows.length>0){ + return new Promise((resolve, reject) => { + axios.get(`${base}/sys/code/selectOptionsBySecondCodeRows`, { params:{secondCodeRows:lostSecondCodeRows }}).then(res=>{ + let options2=res.data.data; + lostSecondCodeRows.forEach(item=>{ + cacheOptionsBySecondCodeRows[item]=options2[item]; + cacheHasOptions[item]=options2[item]; + }); + resolve( { + data: {data:cacheHasOptions} + }); + }); + + }); + + }else{ + return new Promise((resolve, reject) => { + resolve( { + data: {data:cacheHasOptions} + }); + }); + } +}; +/** + * 查询下拉选项目 参数为数组型参数 如 selectOptions( { fieldNames:['sex','age','student'],code:'all' } ),code为数据分类 + * 返回结果为: + * res.data.data:{ + * sex:[{codeName:男,codeValue:1,ifdefault:'1'},{codeName:女,codeValue:2,ifdefault:'0'}], + * age:[{codeName:1岁,codeValue:1,ifdefault:'1'},{codeName:2岁,codeValue:2,ifdefault:'0'},{codeName:3岁,codeValue:3,ifdefault:'0'}] + * } + */ +export const selectOptions = params => { + return axios.get(`${base}/sys/code/selectOptions`, { params:params }) +}; +//获取代码对应的名称 用于数据反显 如 getCodeName(options.sex,'1'); +export const getCodeName = (options,codeValue)=>{ + if(!options)return codeValue; + let code=options.filter(i=>i.codeValue==codeValue); + if(code.length>0){ + return code[0].codeName + }else{ + return codeValue + } +}; + +/** + * 获取某个字段的默认值 + * getDefaultValue(options.sex,'1'); + */ +export const getDefaultValue = (fieldOptions,defaultValue) =>{ + if(fieldOptions==null || fieldOptions.length==0){ + return defaultValue; + } + let defaultV=defaultValue; + fieldOptions.forEach(i=>{ + if(i.ifdefault=='1'){ + defaultV=i.codeValue; + } + }); + return defaultV; +}; + +/** +* 根据一级分类列表查询所有的二级分类 +* @param codes 分类编码 列表 如['JCBM_TPL','SystemParas'] +* @return 返回如下格式的map。secondCodeRow为主键,dtcodeId为编码,dtcodeName中文描述 +* { +* JCBM_TPL:[{secondCodeRow:'xxxx',dtcodeId:1,dtcodeName:男},{secondCodeRow:'xxxx',dtcodeid:1,dtcodeName:男}], +* SystemParas:[{secondCodeRow:'xxxx',dtcodeId:3,dtcodeName:其它},{secondCodeRow:'xxxx',dtcodeid:2,dtcodeName:其它2}] +* } +*/ +export const selectSeconds = params => { return axios.get(`${base}/sys/code/selectSeconds`, { params:params }); }; + +/** +* 根据一级分类列表查询所有的二级分类 +* @param codes 分类编码 列表 如['JCBM_TPL','SystemParas'] +* @return 返回如下格式的map。secondCodeRow为主键,dtcodeId为编码,dtcodeName中文描述 +* { +* JCBM_TPL:[{secondCodeRow:'xxxx',dtcodeId:1,dtcodeName:男},{secondCodeRow:'xxxx',dtcodeid:1,dtcodeName:男}], +* SystemParas:[{secondCodeRow:'xxxx',dtcodeId:3,dtcodeName:其它},{secondCodeRow:'xxxx',dtcodeid:2,dtcodeName:其它2}] +* } +*/ +export const selectCacheSeconds = params => { + let codes=params.codes; + let lostCodes=[]; + codes.forEach(item=>{ + if(!cacheSeconds[item]){ + lostCodes.push(item); + } + }); + if(lostCodes.length>0){ + return new Promise((resolve, reject) => { + selectSeconds({codes:lostCodes}).then(res=>{ + let seconds=res.data.data; + lostCodes.forEach(item=>{ + cacheSeconds[item]=seconds[item]; + }); + let result={}; + codes.forEach(item=>{ + result[item]=cacheSeconds[item]; + }); + resolve( { + data: {data:result} + }); + }); + }); + }else{ + let result={}; + codes.forEach(item=>{ + result[item]=cacheSeconds[item]; + }); + return new Promise((resolve, reject) => { + resolve( { + data: {data:result} + }); + }); + } + + +}; +// [{dpetid:'',displayDeptid:'',deptName:'',shortName:'',pdeptid:''},{dpetid:'',displayDeptid:'',deptName:'',shortName:'',pdeptid:''}] +export const getCompanyDepts = () => { + if(cacheCompanyDepts!=null && cacheCompanyDepts.length>=0){ + return new Promise((resolve, reject) => { + resolve( { + data: {data:cacheCompanyDepts} + }); + }); + } + + return axios.get(`${base}/sys/code/companyDepts`).then(res=>{ + if(res.data.data==null){ + cacheCompanyDepts=[]; + }else{ + cacheCompanyDepts=res.data.data; + } + return new Promise((resolve, reject) => { + resolve( { + data: {data:cacheCompanyDepts} + }); + }); + }); +}; +//[{userid:'',displayUserid:'',username:'',deptid:'',shortName:'',deptName:''},{userid:'',displayUserid:'',username:'',deptid:'',shortName:'',deptName:''}] +export const getCompanyEmployees = () => { + if(cacheCompanyEmployees!=null && cacheCompanyEmployees.length>=0){ + return new Promise((resolve, reject) => { + resolve( { + data: {data:cacheCompanyEmployees} + }); + }); + } + + return axios.get(`${base}/sys/code/companyEmployees`).then(res=>{ + if(res.data.data==null){ + cacheCompanyEmployees=[]; + }else{ + cacheCompanyEmployees=res.data.data; + } + return new Promise((resolve, reject) => { + resolve( { + data: {data:cacheCompanyEmployees} + }); + }); + }); +}; diff --git a/src/api/mdp/app/appBizType.js b/src/api/mdp/app/appBizType.js new file mode 100644 index 00000000..37131c23 --- /dev/null +++ b/src/api/mdp/app/appBizType.js @@ -0,0 +1,31 @@ +import axios from '@/utils/request' + +import config from '@/common/config' + +let base=config.getSysBasePath(); + + + +/** + * app_biz_type + *1 默认只开放普通查询,所有查询,只要上传 分页参数 {currentPage:当前页码从1开始,pageSize:每页记录数,total:总记录【数如果是0后台会自动计算总记录数非0不会自动计算】},后台都会自动按分页查询 其它 api用到再打开,没用到的api请注释掉, + *2 查询、新增、修改的参数格式 params={id:'业务分类编号 主键',name:'分类名称'} + **/ + +//普通查询 条件之间and关系 +export const listAppBizType = params => { return axios.get(`${base}/mdp/app/appBizType/list`, { params: params }); }; + +//模糊查询app_biz_type 条件之间or关系 +//export const listAppBizTypeKey = params => { return axios.get(`${base}/mdp/app/appBizType/listKey`, { params: params }); }; + +//删除一条app_biz_type params={id:'业务分类编号 主键'} +export const delAppBizType = params => { return axios.post(`${base}/mdp/app/appBizType/del`,params); }; + +//批量删除app_biz_type params=[{id:'业务分类编号 主键'}] +export const batchDelAppBizType = params => { return axios.post(`${base}/mdp/app/appBizType/batchDel`, params); }; + +//修改一条app_biz_type记录 +export const editAppBizType = params => { return axios.post(`${base}/mdp/app/appBizType/edit`, params); }; + +//新增一条app_biz_type +export const addAppBizType = params => { return axios.post(`${base}/mdp/app/appBizType/add`, params); }; \ No newline at end of file diff --git a/src/api/mdp/app/appMdpDef.js b/src/api/mdp/app/appMdpDef.js new file mode 100644 index 00000000..0a35a105 --- /dev/null +++ b/src/api/mdp/app/appMdpDef.js @@ -0,0 +1,29 @@ +import axios from '@/utils/request' + +import config from '@/common/config' + +let base=config.getSysBasePath(); + +/** + * MDP平台应用定义表 + *1 默认只开放普通查询,所有查询,只要上传 分页参数 {currentPage:当前页码从1开始,pageSize:每页记录数,total:总记录【数如果是0后台会自动计算总记录数非0不会自动计算】},后台都会自动按分页查询 其它 api用到再打开,没用到的api请注释掉, + *2 查询、新增、修改的参数格式 params={mdpAppid:'应用编号 主键',name:'应用名称',logoUrl:'应用logo',remark:'应用描述',bizType:'应用分类',deptid:'归属部门',branchId:'归属机构',cdate:'创建日期',cuserid:'创建人',enabled:'应用状态0下架1上架'} + **/ + +//普通查询 条件之间and关系 +export const listAppMdpDef = params => { return axios.get(`${base}/mdp/app/appMdpDef/list`, { params: params }); }; + +//模糊查询MDP平台应用定义表 条件之间or关系 +//export const listAppMdpDefKey = params => { return axios.get(`${base}/mdp/app/appMdpDef/listKey`, { params: params }); }; + +//删除一条MDP平台应用定义表 params={mdpAppid:'应用编号 主键'} +export const delAppMdpDef = params => { return axios.post(`${base}/mdp/app/appMdpDef/del`,params); }; + +//批量删除MDP平台应用定义表 params=[{mdpAppid:'应用编号 主键'}] +export const batchDelAppMdpDef = params => { return axios.post(`${base}/mdp/app/appMdpDef/batchDel`, params); }; + +//修改一条MDP平台应用定义表记录 +export const editAppMdpDef = params => { return axios.post(`${base}/mdp/app/appMdpDef/edit`, params); }; + +//新增一条MDP平台应用定义表 +export const addAppMdpDef = params => { return axios.post(`${base}/mdp/app/appMdpDef/add`, params); }; \ No newline at end of file diff --git a/src/api/mdp/app/appShopConfig.js b/src/api/mdp/app/appShopConfig.js new file mode 100644 index 00000000..c246bc59 --- /dev/null +++ b/src/api/mdp/app/appShopConfig.js @@ -0,0 +1,30 @@ +import axios from '@/utils/request' + +import config from '@/common/config' + +let base = config.getSysBasePath(); + + +/** + * app_shop_config + *1 默认只开放普通查询,所有查询,只要上传 分页参数 {currentPage:当前页码从1开始,pageSize:每页记录数,total:总记录【数如果是0后台会自动计算总记录数非0不会自动计算】},后台都会自动按分页查询 其它 api用到再打开,没用到的api请注释掉, + *2 查询、新增、修改的参数格式 params={shopId:'商户编号 主键',shopBranchId:'商户自身归属机构号',tpServiceCharges:'第三方手续费费率如支付宝/微信支付的费率比如0.003',platServiceCharges:'mdp平台附加手续费费率比如0.002,即该商户下所有交易需要支付给平台的手续费费率',platShopDepositAccountId:'mdp平台分配给该商户(门店)预存款账户(一般商户编号-门店编号-01,用于mdp平台与该商户的结算,商户充值等),如果是总部店,为一般商户编号-0-01',platAssetAccountId:'平台资产账户,商户缴纳给平台手续费等,从商户预存款账户转出,转入该账户计入平台主营业务收入',platShopId:'归属平台商户编号',shopServiceCharges:'mdp平台商户手续费费率一般为门店订单交易需要支付一定的手续费给商户',shopAssetAccountId:'商户内部主营业务收入账户,在途资金到账后,转入主营业务收入',isPlatSc:'商户是否需要向平台缴纳手续费',isShopSc:'门店是否需要向商户缴纳手续费',acctPrjType:'核算项目platform-由平台结算,shop-由商户独立结算,location-由门店独立结算',paySetType:'支付结算方式platform-使用平台支付通道结算,shop-使用商户结算通道,location-使用门店独立结算通道',setLevel:'结算级别1-商户2-门店,将在途资金账户余额归入商户的预存款账户还是门店预存款账户',allowLocationWithdraw:'是否允许门店提现0否1允许3按门店配置自定义',settleShopId:'归属计算商户pay_set_type=platform时,指向平台商户编号platform_shop_id,pay_set_type=shop时指向本商户编号shop_id',isJoinPlat:'是否加入平台,如果加入平台将在平台的大商城可以展现数据-同步到shop表,避免多表关联',shopDepositAccountId:'商户预存款账户,shop模式下,作为客户',settleBranchId:'结算商户对应的机构号',platBranchId:'商户归属的平台机构号'} + **/ + +//普通查询 条件之间and关系 +export const listAppShopConfig = params => { return axios.get(`${base}/mdp/app/appShopConfig/list`, { params: params }); }; + +//模糊查询app_shop_config 条件之间or关系 +//export const listAppShopConfigKey = params => { return axios.get(`${base}/mdp/app/appShopConfig/listKey`, { params: params }); }; + +//删除一条app_shop_config params={shopId:'商户编号 主键'} +export const delAppShopConfig = params => { return axios.post(`${base}/mdp/app/appShopConfig/del`,params); }; + +//批量删除app_shop_config params=[{shopId:'商户编号 主键'}] +export const batchDelAppShopConfig = params => { return axios.post(`${base}/mdp/app/appShopConfig/batchDel`, params); }; + +//修改一条app_shop_config记录 +export const editAppShopConfig = params => { return axios.post(`${base}/mdp/app/appShopConfig/edit`, params); }; + +//新增一条app_shop_config +export const addAppShopConfig = params => { return axios.post(`${base}/mdp/app/appShopConfig/add`, params); }; \ No newline at end of file diff --git a/src/api/mdp/app/appTpAuth.js b/src/api/mdp/app/appTpAuth.js new file mode 100644 index 00000000..120aabbe --- /dev/null +++ b/src/api/mdp/app/appTpAuth.js @@ -0,0 +1,29 @@ +import axios from '@/utils/request' + +import config from '@/common/config' + +let base=config.getSysBasePath(); + +/** + * MDP平台应用与第三方应用关系 + *1 默认只开放普通查询,所有查询,只要上传 分页参数 {currentPage:当前页码从1开始,pageSize:每页记录数,total:总记录【数如果是0后台会自动计算总记录数非0不会自动计算】},后台都会自动按分页查询 其它 api用到再打开,没用到的api请注释掉, + *2 查询、新增、修改的参数格式 params={authId:'第三方应用编号 主键',mdpAppid:'应用编号',name:'应用名称',logoUrl:'应用logo',remark:'应用描述',bizType:'应用分类',deptid:'归属部门',branchId:'归属机构',appToken:'登录验证码',loginUrl:'登录地址',cdate:'创建日期',cuserid:'创建人',appSecret:'加密串',authUrl:'授权地址',authPattern:'监听发起授权地址',encKey:'秘钥EncodingAESKey(消息加密密钥)',enabled:'应用状态0下架1上架',appid:'对应第三方提供给的appid',payMchid:'商户编号',payNotifyUrl:'付款成功通知地址',openPay:'开通支付',payKey:'支付加密秘钥',msgNotifyUrl:'消息推送地址',ips:'服务器IP地址列表ip1,ip2,ip3',locationId:'绑定的门店',shopId:'绑定的商户编号',locationName:'门店名称',shopName:'商户名称',multiLoca:'是否为多点0否1是'} + **/ + +//普通查询 条件之间and关系 +export const listAppTpAuth = params => { return axios.get(`${base}/mdp/app/appTpAuth/list`, { params: params }); }; + +//模糊查询MDP平台应用与第三方应用关系 条件之间or关系 +//export const listAppTpAuthKey = params => { return axios.get(`${base}/mdp/app/appTpAuth/listKey`, { params: params }); }; + +//删除一条MDP平台应用与第三方应用关系 params={authId:'第三方应用编号 主键'} +export const delAppTpAuth = params => { return axios.post(`${base}/mdp/app/appTpAuth/del`,params); }; + +//批量删除MDP平台应用与第三方应用关系 params=[{authId:'第三方应用编号 主键'}] +export const batchDelAppTpAuth = params => { return axios.post(`${base}/mdp/app/appTpAuth/batchDel`, params); }; + +//修改一条MDP平台应用与第三方应用关系记录 +export const editAppTpAuth = params => { return axios.post(`${base}/mdp/app/appTpAuth/edit`, params); }; + +//新增一条MDP平台应用与第三方应用关系 +export const addAppTpAuth = params => { return axios.post(`${base}/mdp/app/appTpAuth/add`, params); }; \ No newline at end of file diff --git a/src/api/mdp/app/appTpPay.js b/src/api/mdp/app/appTpPay.js new file mode 100644 index 00000000..52d34ce5 --- /dev/null +++ b/src/api/mdp/app/appTpPay.js @@ -0,0 +1,30 @@ +import axios from '@/utils/request' + +import config from '@/common/config' + +let base = config.getSysBasePath(); + + +/** + * app_tp_pay + *1 默认只开放普通查询,所有查询,只要上传 分页参数 {currentPage:当前页码从1开始,pageSize:每页记录数,total:总记录【数如果是0后台会自动计算总记录数非0不会自动计算】},后台都会自动按分页查询 其它 api用到再打开,没用到的api请注释掉, + *2 查询、新增、修改的参数格式 params={payAuthId:'主键 主键',mdpAppid:'应用编号',name:'应用名称',logoUrl:'应用logo',remark:'应用描述',payType:'付款方式0余额1微信2V麦3支付宝4银行5网银6其他',deptid:'归属部门',branchId:'归属机构',cdate:'创建日期',cuserid:'创建人',enabled:'应用状态0下架1上架',appid:'对应第三方提供给的appid',payMchid:'商户编号',payNotifyUrl:'付款成功通知地址',openPay:'开通支付',payKey:'支付加密秘钥私钥',ips:'服务器IP地址列表ip1,ip2,ip3',locationId:'绑定的门店',shopId:'绑定的商户编号',locationName:'门店名称',shopName:'商户名称',payPubKey:'支付加密秘钥公钥',tpServiceCharges:'第三方手续费费率比如0.003',mdpServiceCharges:'mdp平台附加手续费费率比如0.002',mdpPayAccountId:'mdp平台商户账户(一般商户编号+门店编号,用于mdp平台与该商户的结算)'} + **/ + +//普通查询 条件之间and关系 +export const listAppTpPay = params => { return axios.get(`${base}/mdp/app/appTpPay/list`, { params: params }); }; + +//模糊查询app_tp_pay 条件之间or关系 +//export const listAppTpPayKey = params => { return axios.get(`${base}/mdp/app/appTpPay/listKey`, { params: params }); }; + +//删除一条app_tp_pay params={payAuthId:'主键 主键'} +export const delAppTpPay = params => { return axios.post(`${base}/mdp/app/appTpPay/del`,params); }; + +//批量删除app_tp_pay params=[{payAuthId:'主键 主键'}] +export const batchDelAppTpPay = params => { return axios.post(`${base}/mdp/app/appTpPay/batchDel`, params); }; + +//修改一条app_tp_pay记录 +export const editAppTpPay = params => { return axios.post(`${base}/mdp/app/appTpPay/edit`, params); }; + +//新增一条app_tp_pay +export const addAppTpPay = params => { return axios.post(`${base}/mdp/app/appTpPay/add`, params); }; \ No newline at end of file diff --git a/src/api/mdp/app/shopLocation.js b/src/api/mdp/app/shopLocation.js new file mode 100644 index 00000000..b8947a84 --- /dev/null +++ b/src/api/mdp/app/shopLocation.js @@ -0,0 +1,14 @@ +import axios from '@/utils/request' + +import config from '@/common/config' + +let base=config.getMallmBasePath(); + +/** + * 门店地址表 + *1 默认只开放普通查询,所有查询,只要上传 分页参数 {currentPage:当前页码从1开始,pageSize:每页记录数,total:总记录【数如果是0后台会自动计算总记录数非0不会自动计算】},后台都会自动按分页查询 其它 api用到再打开,没用到的api请注释掉, + *2 查询、新增、修改的参数格式 params={id:'门店编号 主键',shopId:'店铺编号',longitude:'经度',latitude:'纬度',address:'地址',rank:'服务范围',province:'省',city:'市',district:'区',admin:'主负责人',createTime:'创建时间',title:'门店简称',formatAddress:'地址简称',country:'国家',districtId:'区县编号',deptid:'机构编号',branchId:'云用户机构编号',businessName:'门店名称(仅为商户名,如:国美、麦当劳,不应包含地区、地址、分店名等信息,错误示例:北京国美)',branchName:'分店名称(不应包含地区信息,不应与门店名有重复,错误示例:北京王府井店)',telephone:'门店的电话(纯数字,区号、分机号均由“-”隔开)',categories:'门店的类型(不同级分类用“,”隔开,如:美食,川菜,火锅。详细分类参见附件:微信门店类目表)',offsetType:'坐标类型:',recommend:'推荐品,餐厅可为推荐菜;酒店为推荐套房;景点为推荐游玩景点等,针对自己行业的推荐内容',special:'特色服务,如免费wifi,免费停车,送货上门等商户能提供的特色功能或服务',introduction:'商户简介,主要介绍商户信息等',openTime:'营业时间,24',avgPrice:'人均价格,大于0',status:'审核状态'} + **/ + +//普通查询 条件之间and关系 +export const listSimpleLocation = params => { return axios.get(`${base}/shop/shopLocation/list/simple`, { params: params }); }; \ No newline at end of file diff --git a/src/api/mdp/im/group/imGroupMessage.js b/src/api/mdp/im/group/imGroupMessage.js new file mode 100644 index 00000000..0e049645 --- /dev/null +++ b/src/api/mdp/im/group/imGroupMessage.js @@ -0,0 +1,30 @@ +import axios from '@/utils/request' + +import config from '@/common/config' + +let base = config.getImBasePath(); + + +/** + * 群组消息 + *1 默认只开放普通查询,所有查询,只要上传 分页参数 {currentPage:当前页码从1开始,pageSize:每页记录数,total:总记录【数如果是0后台会自动计算总记录数非0不会自动计算】},后台都会自动按分页查询 其它 api用到再打开,没用到的api请注释掉, + *2 查询、新增、修改的参数格式 params={id:'主键ID 主键',sendUserid:'发送者ID',sendTime:'发送时间',sendObject:'发送对象L门店P商品K规格O订单S物流T其他M手机号码W微信号码M邮箱A广告',sendContent:'发送内容',readTime:'读取时间',fp:'备用参数1',groupId:'群组编号',atUserid:'@用户',sendUsername:'发送者姓名',msgAction:'消息动作inviteJoinFrend邀请成为好友,inviteJoinGroup邀请加入群,invitePhone邀请发送手机号码,inviteWeixin邀请发送微信,inviteResume邀请发送简历,inviteInterview邀请面试,showAd展示广告',msgClass:'消息分类0普通消息1群组通知公告2IM通知3广告CSS客服',msgState:'消息状态send已发送reach已送达read已读back已回撤'} + **/ + +//普通查询 条件之间and关系 +export const listImGroupMessage = params => { return axios.get(`${base}/mdp/im/group/imGroupMessage/list`, { params: params }); }; + +//模糊查询群组消息 条件之间or关系 +//export const listImGroupMessageKey = params => { return axios.get(`${base}/mdp/im/group/imGroupMessage/listKey`, { params: params }); }; + +//删除一条群组消息 params={id:'主键ID 主键'} +export const delImGroupMessage = params => { return axios.post(`${base}/mdp/im/group/imGroupMessage/del`,params); }; + +//批量删除群组消息 params=[{id:'主键ID 主键'}] +export const batchDelImGroupMessage = params => { return axios.post(`${base}/mdp/im/group/imGroupMessage/batchDel`, params); }; + +//修改一条群组消息记录 +export const editImGroupMessage = params => { return axios.post(`${base}/mdp/im/group/imGroupMessage/edit`, params); }; + +//新增一条群组消息 +export const addImGroupMessage = params => { return axios.post(`${base}/mdp/im/group/imGroupMessage/add`, params); }; \ No newline at end of file diff --git a/src/api/mdp/im/prichat/imPrichatMessage.js b/src/api/mdp/im/prichat/imPrichatMessage.js new file mode 100644 index 00000000..ddc2fc09 --- /dev/null +++ b/src/api/mdp/im/prichat/imPrichatMessage.js @@ -0,0 +1,33 @@ +import axios from '@/utils/request' + +import config from '@/common/config' + +let base = config.getImBasePath(); + + +/** + * 私聊消息 + *1 默认只开放普通查询,所有查询,只要上传 分页参数 {currentPage:当前页码从1开始,pageSize:每页记录数,total:总记录【数如果是0后台会自动计算总记录数非0不会自动计算】},后台都会自动按分页查询 其它 api用到再打开,没用到的api请注释掉, + *2 查询、新增、修改的参数格式 params={id:'主键ID 主键',sendUserid:'发送者ID',sendTime:'发送时间',sendObject:'发送对象L门店P商品K规格O订单S物流T其他M手机号码W微信号码M邮箱A广告',sendContent:'发送内容',readTime:'读取时间',groupId:'群组编号',toUserid:'接收者编号',sendUsername:'发送者名称',msgAction:'消息动作inviteJoinFrend邀请成为好友,inviteJoinGroup邀请加入群,invitePhone邀请发送手机号码,inviteWeixin邀请发送微信,inviteResume邀请发送简历,inviteInterview邀请面试,showAd展示广告',msgClass:'消息分类0普通消息1群组通知公告2IM通知3广告',msgState:'消息状态send已发送reach已送达read已读back已回撤'} + **/ + +//普通查询 条件之间and关系 +export const listImPrichatMessage = params => { return axios.get(`${base}/mdp/im/prichat/imPrichatMessage/list`, { params: params }); }; + +//查询我的私聊组 +export const listMyPrichatChannelGroups = params => { return axios.get(`${base}/mdp/im/prichat/imPrichatMessage/listMyPrichatChannelGroups`, { params: params }); }; + +//模糊查询私聊消息 条件之间or关系 +//export const listImPrichatMessageKey = params => { return axios.get(`${base}/mdp/im/prichat/imPrichatMessage/listKey`, { params: params }); }; + +//删除一条私聊消息 params={id:'主键ID 主键'} +export const delImPrichatMessage = params => { return axios.post(`${base}/mdp/im/prichat/imPrichatMessage/del`,params); }; + +//批量删除私聊消息 params=[{id:'主键ID 主键'}] +export const batchDelImPrichatMessage = params => { return axios.post(`${base}/mdp/im/prichat/imPrichatMessage/batchDel`, params); }; + +//修改一条私聊消息记录 +export const editImPrichatMessage = params => { return axios.post(`${base}/mdp/im/prichat/imPrichatMessage/edit`, params); }; + +//新增一条私聊消息 +export const addImPrichatMessage = params => { return axios.post(`${base}/mdp/im/prichat/imPrichatMessage/add`, params); }; \ No newline at end of file diff --git a/src/api/mdp/mallm/shop/shop.js b/src/api/mdp/mallm/shop/shop.js new file mode 100644 index 00000000..d349e5d0 --- /dev/null +++ b/src/api/mdp/mallm/shop/shop.js @@ -0,0 +1,12 @@ +import axios from '@/utils/request' + +import config from '@/common/config' + +let base=config.getSysBasePath(); + +//普通查询 条件之间and关系 +export const createShopApi = params => { return axios.post(`${base}/mdp/mallm/shop/shop/createShop`, params); }; + + +export const listShop = params => { return axios.get(`${base}/mdp/mallm/shop/shop/list`, {params:params}); }; + diff --git a/src/api/mdp/mallm/shop/shopLocation.js b/src/api/mdp/mallm/shop/shopLocation.js new file mode 100644 index 00000000..49980607 --- /dev/null +++ b/src/api/mdp/mallm/shop/shopLocation.js @@ -0,0 +1,9 @@ +import axios from '@/utils/request' + +import config from '@/common/config' + +let base=config.getSysBasePath(); + +//普通查询 条件之间and关系 +export const selectshopLocationBySysDeptIdApi = params => { return axios.post(`${base}/mdp/mallm/shop/shopLocation/selectshopLocationBySysDeptId`, params); }; + diff --git a/src/api/mdp/menu/menuBranch.js b/src/api/mdp/menu/menuBranch.js new file mode 100644 index 00000000..ad4d4d39 --- /dev/null +++ b/src/api/mdp/menu/menuBranch.js @@ -0,0 +1,29 @@ +import axios from '@/utils/request' + +import config from '@/common/config' + +let base=config.getSysBasePath(); + +/** + * 菜单分配到机构 + *1 默认只开放普通查询,所有查询,只要上传 分页参数 {currentPage:当前页码从1开始,pageSize:每页记录数,total:总记录【数如果是0后台会自动计算总记录数非0不会自动计算】},后台都会自动按分页查询 其它 api用到再打开,没用到的api请注释掉, + *2 查询、新增、修改的参数格式 params={id:'主键 主键',mid:'菜单编号',branchId:'机构编号'} + **/ + +//普通查询 条件之间and关系 +export const listMenuBranch = params => { return axios.get(`${base}/mdp/menu/menuBranch/list`, { params: params }); }; + +//模糊查询菜单分配到机构 条件之间or关系 +//export const listMenuBranchKey = params => { return axios.get(`${base}/mdp/menu/menuBranch/listKey`, { params: params }); }; + +//删除一条菜单分配到机构 params={id:'主键 主键'} +export const delMenuBranch = params => { return axios.post(`${base}/mdp/menu/menuBranch/del`,params); }; + +//批量删除菜单分配到机构 params=[{id:'主键 主键'}] +export const batchDelMenuBranch = params => { return axios.post(`${base}/mdp/menu/menuBranch/batchDel`, params); }; + +//修改一条菜单分配到机构记录 +export const editMenuBranch = params => { return axios.post(`${base}/mdp/menu/menuBranch/edit`, params); }; + +//新增一条菜单分配到机构 +export const addMenuBranch = params => { return axios.post(`${base}/mdp/menu/menuBranch/add`, params); }; \ No newline at end of file diff --git a/src/api/mdp/menu/menuDef.js b/src/api/mdp/menu/menuDef.js new file mode 100644 index 00000000..1da12cce --- /dev/null +++ b/src/api/mdp/menu/menuDef.js @@ -0,0 +1,49 @@ +import axios from '@/utils/request' +import { getDicts,initSimpleDicts,initComplexDicts } from '@/api/mdp/meta/item';//字典表 + +import config from '@/common/config' + +let base=config.getSysBasePath(); + +/** + * 前端功能菜单表 + *1 默认只开放普通查询,所有查询,只要上传 分页参数 {currentPage:当前页码从1开始,pageSize:每页记录数,total:总记录【数如果是0后台会自动计算总记录数非0不会自动计算】},后台都会自动按分页查询 其它 api用到再打开,没用到的api请注释掉, + *2 查询、新增、修改的参数格式 params={id:'菜单编号 主键',pid:'上级菜单编号',accUrl:'访问路径',msort:'菜单顺序',category:'菜单大类',icon:'菜单图标',mname:'菜单名称',rpath:'路由PATH',rid:'路由编号',isShow:'是否显示',menuType:'菜单类型1菜单2按钮',operQxId:'绑定的操作权限编号'} + **/ + +//普通查询 条件之间and关系 +export const listMenuDef = params => { return axios.get(`${base}/mdp/menu/menuDef/list`, { params: params }); }; + +export const listMenuTree = params => { return axios.get(`${base}/mdp/menu/menuDef/list/tree`, { params: params }); }; +//模糊查询前端功能菜单表 条件之间or关系 +//export const listMenuDefKey = params => { return axios.get(`${base}/mdp/menu/menuDef/listKey`, { params: params }); }; + +//删除一条前端功能菜单表 params={id:'菜单编号 主键'} +export const delMenuDef = params => { return axios.post(`${base}/mdp/menu/menuDef/del`,params); }; + +//批量删除前端功能菜单表 params=[{id:'菜单编号 主键'}] +export const batchDelMenuDef = params => { return axios.post(`${base}/mdp/menu/menuDef/batchDel`, params); }; + +export const batchInsertMenuDef = params => { return axios.post(`${base}/mdp/menu/menuDef/batchInsert`, params); }; + +//修改一条前端功能菜单表记录 +export const editMenuDef = params => { return axios.post(`${base}/mdp/menu/menuDef/edit`, params); }; + +//新增一条前端功能菜单表 +export const addMenuDef = params => { return axios.post(`${base}/mdp/menu/menuDef/add`, params); }; + + +//批量保存按钮 +export const batchSaveMenuButton = params => { return axios.post(`${base}/mdp/menu/menuDef/batchSaveButton`, params); }; + +/**-------------------------前端mng|add|edit界面公共函数---------------请写在下面----------------------------------------------- */ +//初始化页面上的字典 +export const initDicts = (that) => { + var itemCodes=['menuSupVers'];//在此添加要加载的字典 如['sex','grade','lvl'] + that.dicts['status']=[{id:'0',name:'停用'},{id:'1',name:'启用'}] + if(itemCodes.length>0){ + initSimpleDicts('all',itemCodes).then(res=>{ + Object.assign(that.dicts,res.data.data) + }); + } + }; diff --git a/src/api/mdp/menu/menuFavorite.js b/src/api/mdp/menu/menuFavorite.js new file mode 100644 index 00000000..46feaee3 --- /dev/null +++ b/src/api/mdp/menu/menuFavorite.js @@ -0,0 +1,37 @@ +import axios from '@/utils/request' + +import config from '@/common/config' + +let base = config.getSysBasePath(); + + +/** + * 菜单收藏夹 + *1 默认只开放普通查询,所有查询,只要上传 分页参数 {currentPage:当前页码从1开始,pageSize:每页记录数,total:总记录【数如果是0后台会自动计算总记录数非0不会自动计算】},后台都会自动按分页查询 其它 api用到再打开,没用到的api请注释掉, + *2 查询、新增、修改的参数格式 params={favoriteid:'菜单收藏夹ID 主键',deptPostUserid:'部门-岗位-用户ID(暂时不用)',deptid:'部门ID(暂时不用)',postid:'岗位ID(暂时不用)',userid:'用户ID(暂时不用)',menuid:'菜单ID(暂时不用)',menuname:'菜单名称',sort:'排序',branchId:'云用户机构编号',cuserid:'创建人',cdate:'创建时间',lopuserid:'最后操作人',lopcreate:'最后操作时间',accUrl:'访问路径',icon:'菜单图标'} + **/ + +//普通查询 条件之间and关系 +export const listMenuFavorite = params => { return axios.get(`${base}/mdp/menu/menuFavorite/list`, { params: params }); }; + +//模糊查询菜单收藏夹 条件之间or关系 +//export const listMenuFavoriteKey = params => { return axios.get(`${base}/mdp/menu/menuFavorite/listKey`, { params: params }); }; + +//删除一条菜单收藏夹 params={favoriteid:'菜单收藏夹ID 主键'} +export const delMenuFavorite = params => { return axios.post(`${base}/mdp/menu/menuFavorite/del`,params); }; + +//批量删除菜单收藏夹 params=[{favoriteid:'菜单收藏夹ID 主键'}] +export const batchDelMenuFavorite = params => { return axios.post(`${base}/mdp/menu/menuFavorite/batchDel`, params); }; + +//修改一条菜单收藏夹记录 +export const editMenuFavorite = params => { return axios.post(`${base}/mdp/menu/menuFavorite/edit`, params); }; + +//新增一条菜单收藏夹 +export const addMenuFavorite = params => { return axios.post(`${base}/mdp/menu/menuFavorite/add`, params); }; + + +export const saveMenuFavoritesApi = params => { return axios.post(`${base}/mdp/menu/menuFavorite/saveMenuFavorites`, params); }; + +export const getMenuFavoritesApi = params => { return axios.post(`${base}/mdp/menu/menuFavorite/getMenuFavorites`, params); }; + +export const addMenuFavoriteIconApi = params => { return axios.post(`${base}/mdp/menu/menuFavorite/addMenuFavoriteIcon`, params); }; diff --git a/src/api/mdp/menu/menuModule.js b/src/api/mdp/menu/menuModule.js new file mode 100644 index 00000000..3b36b278 --- /dev/null +++ b/src/api/mdp/menu/menuModule.js @@ -0,0 +1,44 @@ +import axios from '@/utils/request' + +import { getDicts,initSimpleDicts,initComplexDicts } from '@/api/mdp/meta/item';//字典表 +import config from '@/common/config' + +let base = config.getSysBasePath(); + +/**-------------------------与后端通讯接口------------------请写在下面-------------------------------------------- */ +/** + * 模块定义表-用于进行机构级别的权限控制,机构如果购买了模块,则能够进行访问 + *1 默认只开放普通查询,所有查询,只要上传 分页参数 {pageNum:当前页码从1开始,pageSize:每页记录数,total:总记录【数如果是0后台会自动计算总记录数非0不会自动计算】},后台都会自动按分页查询 其它 api用到再打开,没用到的api请注释掉, + *2 查询、新增、修改的参数格式 params={id:'编号 主键',name:'模块名称',fee:'模块费用',billMode:'计费模式:0-不计费,1-按购买人数计费,2-总包费用,3-按实际使用人数每月计费',uniFee:'人均费用',discount:'折扣比率,可折上折,叠加折扣。-按最大人数、按月数优惠',url:'匹配的url,如果匹配得到,则计费,以逗号分割多个',ignoreUrl:'匹配这个地址的不计费',bizFlowState:'审核状态',procInstId:'审核流程实例编号',status:'0-下架,1-上架。开放后才可以购买使用',mcate:'分类1-协同、2-研发、3-电商',logoUrl:'logo地址',feeDesc:'费用解释',udisRate:'人数折算比例。购买总人数*折扣率为当前模块购买人数',udis:'是否折算人数0否1是',saleDesc:'营销文案',ucheck:'是否控制总人数0-否1是',crow:'是否为众包'} + **/ + +//普通查询 条件之间and关系 +export const listMenuModule = params => { return axios.get(`${base}/mdp/menu/menuModule/list`, { params: params }); }; + +//删除一条模块定义表-用于进行机构级别的权限控制,机构如果购买了模块,则能够进行访问 params={id:'编号 主键'} +export const delMenuModule = params => { return axios.post(`${base}/mdp/menu/menuModule/del`,params); }; + +//批量删除模块定义表-用于进行机构级别的权限控制,机构如果购买了模块,则能够进行访问 params=[{id:'编号 主键'}] +export const batchDelMenuModule = params => { return axios.post(`${base}/mdp/menu/menuModule/batchDel`, params); }; + +//修改一条模块定义表-用于进行机构级别的权限控制,机构如果购买了模块,则能够进行访问记录 +export const editMenuModule = params => { return axios.post(`${base}/mdp/menu/menuModule/edit`, params); }; + +//新增一条模块定义表-用于进行机构级别的权限控制,机构如果购买了模块,则能够进行访问 +export const addMenuModule = params => { return axios.post(`${base}/mdp/menu/menuModule/add`, params); }; + +//批量修改某些字段 +export const editSomeFieldsMenuModule = params => { return axios.post(`${base}/mdp/menu/menuModule/editSomeFields`, params); }; + + + +/**-------------------------前端mng|add|edit界面公共函数---------------请写在下面----------------------------------------------- */ +//初始化页面上的字典 +export const initDicts = (that) => { + var itemCodes=['moduleBillMode','bizFlowState','mcate'];//在此添加要加载的字典 如['sex','grade','lvl'] + if(itemCodes.length>0){ + initSimpleDicts('all',itemCodes).then(res=>{ + Object.assign(that.dicts,res.data.data) + }); + } +}; \ No newline at end of file diff --git a/src/api/mdp/menu/menuModuleBranch.js b/src/api/mdp/menu/menuModuleBranch.js new file mode 100644 index 00000000..5ae8dac4 --- /dev/null +++ b/src/api/mdp/menu/menuModuleBranch.js @@ -0,0 +1,48 @@ +import axios from '@/utils/request' + +import { getDicts,initSimpleDicts,initComplexDicts } from '@/api/mdp/meta/item';//字典表 +import config from '@/common/config' + +let base = config.getSysBasePath(); + +/**-------------------------与后端通讯接口------------------请写在下面-------------------------------------------- */ +/** + * 机构开通模块对应关系表 + *1 默认只开放普通查询,所有查询,只要上传 分页参数 {pageNum:当前页码从1开始,pageSize:每页记录数,total:总记录【数如果是0后台会自动计算总记录数非0不会自动计算】},后台都会自动按分页查询 其它 api用到再打开,没用到的api请注释掉, + *2 查询、新增、修改的参数格式 params={branchId:'机构编号 主键',moduleId:'模块编号 主键',startTime:'启用日期',endTime:'结束日期',ctime:'创建日期',ltime:'更新日期',cuserid:'创建人编号',cusername:'创建人姓名',luserid:'修改人编号',lusername:'修改人姓名',status:'状态0停用1启用',musers:'购买用户数',mbidNum:'可投标次数-每月恢复为套餐数量,包含公司账户次数+个人以组织名义接单的次数,以上每接一单扣减此处',sfeeRate:'服务费率,15=15%',ver:'购买版本',feeDate:'开始计费日期'} + **/ + +//普通查询 条件之间and关系 +export const listMenuModuleBranch = params => { return axios.get(`${base}/mdp/menu/menuModuleBranch/list`, { params: params }); }; + +//删除一条机构开通模块对应关系表 params={branchId:'机构编号 主键',moduleId:'模块编号 主键'} +export const delMenuModuleBranch = params => { return axios.post(`${base}/mdp/menu/menuModuleBranch/del`,params); }; + +//批量删除机构开通模块对应关系表 params=[{branchId:'机构编号 主键',moduleId:'模块编号 主键'}] +export const batchDelMenuModuleBranch = params => { return axios.post(`${base}/mdp/menu/menuModuleBranch/batchDel`, params); }; + +//修改一条机构开通模块对应关系表记录 +export const editMenuModuleBranch = params => { return axios.post(`${base}/mdp/menu/menuModuleBranch/edit`, params); }; + +//新增一条机构开通模块对应关系表 +export const addMenuModuleBranch = params => { return axios.post(`${base}/mdp/menu/menuModuleBranch/add`, params); }; + +//批量修改某些字段 +export const editSomeFieldsMenuModuleBranch = params => { return axios.post(`${base}/mdp/menu/menuModuleBranch/editSomeFields`, params); }; + + +//统计登录机构的产品购买情况 +export const calcBranchModule = params => { return axios.get(`${base}//mdp/menu/menuModuleBranch/calcBranchModule`, { params: params }); }; + + +/**-------------------------前端mng|add|edit界面公共函数---------------请写在下面----------------------------------------------- */ +//初始化页面上的字典 +export const initDicts = (that) => { + var itemCodes=[];//在此添加要加载的字典 如['sex','grade','lvl'] + that.dicts['status']=[{id:'0',name:'停用'},{id:'1',name:'启用'}] + if(itemCodes.length>0){ + initSimpleDicts('all',itemCodes).then(res=>{ + Object.assign(that.dicts,res.data.data) + }); + } +}; \ No newline at end of file diff --git a/src/api/mdp/menu/menuRole.js b/src/api/mdp/menu/menuRole.js new file mode 100644 index 00000000..5e94e650 --- /dev/null +++ b/src/api/mdp/menu/menuRole.js @@ -0,0 +1,36 @@ +import axios from '@/utils/request' + +import config from '@/common/config' + +let base=config.getSysBasePath(); + +/** + * 菜单角色分配 + *1 默认只开放普通查询,所有查询,只要上传 分页参数 {currentPage:当前页码从1开始,pageSize:每页记录数,total:总记录【数如果是0后台会自动计算总记录数非0不会自动计算】},后台都会自动按分页查询 其它 api用到再打开,没用到的api请注释掉, + *2 查询、新增、修改的参数格式 params={id:'编号 主键',roleid:'用户组编号',mid:'菜单编号',branchId:'机构编号'} + **/ + +//普通查询 条件之间and关系 +export const listMenuRole = params => { return axios.get(`${base}/mdp/menu/menuRole/list`, { params: params }); }; + +//模糊查询菜单角色分配 条件之间or关系 +//export const listMenuRoleKey = params => { return axios.get(`${base}/mdp/menu/menuRole/listKey`, { params: params }); }; + +//删除一条菜单角色分配 params={id:'编号 主键'} +export const delMenuRole = params => { return axios.post(`${base}/mdp/menu/menuRole/del`,params); }; + +//批量删除菜单角色分配 params=[{id:'编号 主键'}] +export const batchDelMenuRole = params => { return axios.post(`${base}/mdp/menu/menuRole/batchDel`, params); }; + +export const batchEditMenusToRole = params => { return axios.post(`${base}/mdp/menu/menuRole/batchEditMenusToRole`, params); }; +export const batchEditMenusToRoles = params => { return axios.post(`${base}/mdp/menu/menuRole/batchEditMenusToRoles`, params); }; + +export const batchEditMenuToRoles = params => { return axios.post(`${base}/mdp/menu/menuRole/batchEditMenuToRoles`, params); }; + + + +//修改一条菜单角色分配记录 +export const editMenuRole = params => { return axios.post(`${base}/mdp/menu/menuRole/edit`, params); }; + +//新增一条菜单角色分配 +export const addMenuRole = params => { return axios.post(`${base}/mdp/menu/menuRole/add`, params); }; \ No newline at end of file diff --git a/src/api/mdp/meta/pushLink.js b/src/api/mdp/meta/pushLink.js new file mode 100644 index 00000000..0efeaaf5 --- /dev/null +++ b/src/api/mdp/meta/pushLink.js @@ -0,0 +1,34 @@ +import axios from '@/utils/request' + +import config from '@/common/config' + +let base = config.getSysBasePath(); + + +/** + * 发布关联,管理端客户管理界面只能看到发布到各自平台的字典 + *1 默认只开放普通查询,所有查询,只要上传 分页参数 {currentPage:当前页码从1开始,pageSize:每页记录数,total:总记录【数如果是0后台会自动计算总记录数非0不会自动计算】},后台都会自动按分页查询 其它 api用到再打开,没用到的api请注释掉, + *2 查询、新增、修改的参数格式 params={itemId:'item_id 主键',targetId:'发布到目标编号 主键',ptime:'发布时间'} + **/ + +//普通查询 条件之间and关系 +export const listPushLink = params => { return axios.get(`${base}/mdp/meta/pushLink/list`, { params: params }); }; + +//模糊查询发布关联,管理端客户管理界面只能看到发布到各自平台的字典 条件之间or关系 +//export const listPushLinkKey = params => { return axios.get(`${base}/mdp/meta/pushLink/listKey`, { params: params }); }; + +//删除一条发布关联,管理端客户管理界面只能看到发布到各自平台的字典 params={itemId:'item_id 主键',targetId:'发布到目标编号 主键'} +export const delPushLink = params => { return axios.post(`${base}/mdp/meta/pushLink/del`,params); }; + +//批量删除发布关联,管理端客户管理界面只能看到发布到各自平台的字典 params=[{itemId:'item_id 主键',targetId:'发布到目标编号 主键'}] +export const batchDelPushLink = params => { return axios.post(`${base}/mdp/meta/pushLink/batchDel`, params); }; + +//修改一条发布关联,管理端客户管理界面只能看到发布到各自平台的字典记录 +export const editPushLink = params => { return axios.post(`${base}/mdp/meta/pushLink/edit`, params); }; + +//新增一条发布关联,管理端客户管理界面只能看到发布到各自平台的字典 +export const addPushLink = params => { return axios.post(`${base}/mdp/meta/pushLink/add`, params); }; + + +//新增一条发布关联,管理端客户管理界面只能看到发布到各自平台的字典 +export const pushToTargetApps = params => { return axios.post(`${base}/mdp/meta/pushLink/pushToTargetApps`, params); }; diff --git a/src/api/mdp/mo/moOrder.js b/src/api/mdp/mo/moOrder.js new file mode 100644 index 00000000..beb5c376 --- /dev/null +++ b/src/api/mdp/mo/moOrder.js @@ -0,0 +1,45 @@ +import axios from '@/utils/request' + +import { getDicts,initSimpleDicts,initComplexDicts } from '@/api/mdp/meta/item';//字典表 +import config from '@/common/config' + +let base = config.getMoBasePath(); + +/**-------------------------与后端通讯接口------------------请写在下面-------------------------------------------- */ +/** + * mo_order + *1 默认只开放普通查询,所有查询,只要上传 分页参数 {pageNum:当前页码从1开始,pageSize:每页记录数,total:总记录【数如果是0后台会自动计算总记录数非0不会自动计算】},后台都会自动按分页查询 其它 api用到再打开,没用到的api请注释掉, + *2 查询、新增、修改的参数格式 params={id:'订单编号 主键',name:'订单名称',obranchId:'下单机构号码',ouserid:'下单用户编号',ousername:'下单用户名称',moFinalFee:'模块合计总金额=模块中的final_fee合计',status:'订单状态0-初始,1-待确认,2-待付款,3-已付款,4-已完成,5-已取消-未付款前可取消,取消后可删除,6-退单-退单后变为已取消,8已关闭-售后完成后可以关闭订单',sstatus:'结算状态0-待结算,1-已结算',ctime:'创建时间',payTime:'付款时间',payCtime:'付款确认时间',moOrginFee:'折扣前总价=模块中orgin_fee合计',ousers:'购买人数',ocates:'购买分类数',omodules:'购买模块数',poid:'上级订单-如果是续费订单,记录原订单号',startTime:'启用日期',endTime:'结束日期',payType:'支付方式1-微信,2-支付宝,3-线下支付',payId:'付款流水号',prepayId:'付款订单号(第三方返回)',topenId:'第三方账号编号',pbankId:'收款银行编号(支付方式为3时必填)',pbankName:'收款银行名称(支付方式为3时必填)',pbankCardNo:'收款银行卡号(支付方式为3时必填)',pbankUsername:'收款账户姓名(支付方式为3时必填)',remark:'备注',finishTime:'完成时间',closeTime:'关闭时间',setTime:'结算时间',odays:'购买天数',ofinalFee:'最终订单价格、最终付款金额=mo_final_fee+oth_fee',odisRate:'订单折扣率(下单后后台根据不同客户进行折扣调整)=将在模块表中执行折扣操作,再从新合计价格',othFee:'其它费用',otype:'订单类型0-电商商城商品,1-应用模块使用购买,2-vip购买会员',osource:'订单来源1-前端客户下单,2-后台待客下单',memType:'客户类型-参考sys_user表mem_type',atype:'账户类型-根据sys_user表atype',saleUserid:'销售经理编号',saleUsername:'销售经理名称',custPhone:'客户联系电话',custAddress:'客户联系地址',payAt:'最终付款金额-客户付款后回填',obranchName:'下单机构名称',ooper:'订单操作类型1-新购,2-续费,3-新增人数'} + **/ + +//普通查询 条件之间and关系 +export const listMoOrder = params => { return axios.get(`${base}/mdp/mo/moOrder/list`, { params: params }); }; + +//删除一条mo_order params={id:'订单编号 主键'} +export const delMoOrder = params => { return axios.post(`${base}/mdp/mo/moOrder/del`,params); }; + +//批量删除mo_order params=[{id:'订单编号 主键'}] +export const batchDelMoOrder = params => { return axios.post(`${base}/mdp/mo/moOrder/batchDel`, params); }; + +//修改一条mo_order记录 +export const editMoOrder = params => { return axios.post(`${base}/mdp/mo/moOrder/edit`, params); }; + +//新增一条mo_order +export const addMoOrder = params => { return axios.post(`${base}/mdp/mo/moOrder/add`, params); }; + +//批量修改某些字段 +export const editSomeFieldsMoOrder = params => { return axios.post(`${base}/mdp/mo/moOrder/editSomeFields`, params); }; + + + +/**-------------------------前端mng|add|edit界面公共函数---------------请写在下面----------------------------------------------- */ +//初始化页面上的字典 +export const initDicts = (that) => { + var itemCodes=['mo_order_status','tpAppPayType','mo_ooper','moduleBillMode'];//在此添加要加载的字典 如['sex','grade','lvl'] + that.dicts.osource=[{id:'1',name:'前端客户下单'},{id:'2',name:'后台待客下单'}]//1-前端客户下单,2-后台待客下单 + if(itemCodes.length>0){ + initSimpleDicts('all',itemCodes).then(res=>{ + Object.assign(that.dicts,res.data.data) + }); + } +}; \ No newline at end of file diff --git a/src/api/mdp/mo/moOrderModule.js b/src/api/mdp/mo/moOrderModule.js new file mode 100644 index 00000000..5e001363 --- /dev/null +++ b/src/api/mdp/mo/moOrderModule.js @@ -0,0 +1,44 @@ +import axios from '@/utils/request' + +import { getDicts,initSimpleDicts,initComplexDicts } from '@/api/mdp/meta/item';//字典表 +import config from '@/common/config' + +let base = config.getMoBasePath(); + +/**-------------------------与后端通讯接口------------------请写在下面-------------------------------------------- */ +/** + * 订单与模块关系表 + *1 默认只开放普通查询,所有查询,只要上传 分页参数 {pageNum:当前页码从1开始,pageSize:每页记录数,total:总记录【数如果是0后台会自动计算总记录数非0不会自动计算】},后台都会自动按分页查询 其它 api用到再打开,没用到的api请注释掉, + *2 查询、新增、修改的参数格式 params={orderId:'订单编号 主键',moduleId:'模块编号 主键',name:'模块名称',fee:'模块费用',billMode:'计费模式:0-不计费,1-按购买人数计费,2-总包费用,3-按实际使用人数每月计费',uniFee:'人均费用,单位人天',discount:'折扣比率,可折上折,叠加折扣。-按最大人数、按月数优惠',mcate:'分类(关联mo_cate)',logoUrl:'logo地址',feeDesc:'费用解释',udisRate:'人数折算比例。购买总人数*折扣率为当前模块购买人数',udis:'是否折算人数0否1是',musers:'购买人数=订单表中购买总人数*人数折扣',finalFee:'最终总费用=orgin_fee*dis_rate',days:'购买天数',orginFee:'原始总费用,未进行折扣方案前的总费用如果计费模式为1,则为uni_fee*musers*days单价*折扣方案天数折扣*折扣方案中人数折扣,如果计费模式为2,则为fee',disRate:'订单折扣率(可能会根据客户类型后台改订单折扣,从新计算订单价格)',ucheck:'是否控制总人数0-否1-是',ousers:'企业总人数=订单表中ousers',ver:'购买的版本0免费版,1企业版'} + **/ + +//普通查询 条件之间and关系 +export const listMoOrderModule = params => { return axios.get(`${base}/mdp/mo/moOrderModule/list`, { params: params }); }; + +//删除一条订单与模块关系表 params={orderId:'订单编号 主键',moduleId:'模块编号 主键'} +export const delMoOrderModule = params => { return axios.post(`${base}/mdp/mo/moOrderModule/del`,params); }; + +//批量删除订单与模块关系表 params=[{orderId:'订单编号 主键',moduleId:'模块编号 主键'}] +export const batchDelMoOrderModule = params => { return axios.post(`${base}/mdp/mo/moOrderModule/batchDel`, params); }; + +//修改一条订单与模块关系表记录 +export const editMoOrderModule = params => { return axios.post(`${base}/mdp/mo/moOrderModule/edit`, params); }; + +//新增一条订单与模块关系表 +export const addMoOrderModule = params => { return axios.post(`${base}/mdp/mo/moOrderModule/add`, params); }; + +//批量修改某些字段 +export const editSomeFieldsMoOrderModule = params => { return axios.post(`${base}/mdp/mo/moOrderModule/editSomeFields`, params); }; + + + +/**-------------------------前端mng|add|edit界面公共函数---------------请写在下面----------------------------------------------- */ +//初始化页面上的字典 +export const initDicts = (that) => { + var itemCodes=['moduleBillMode'];//在此添加要加载的字典 如['sex','grade','lvl'] + if(itemCodes.length>0){ + initSimpleDicts('all',itemCodes).then(res=>{ + Object.assign(that.dicts,res.data.data) + }); + } +}; \ No newline at end of file diff --git a/src/api/mdp/plat/bankAccount.js b/src/api/mdp/plat/bankAccount.js new file mode 100644 index 00000000..90d5d8b8 --- /dev/null +++ b/src/api/mdp/plat/bankAccount.js @@ -0,0 +1,30 @@ +import axios from '@/utils/request' + +import config from '@/common/config' + +let base = config.getSysBasePath(); + + +/** + * 平台收付款账户 + *1 默认只开放普通查询,所有查询,只要上传 分页参数 {currentPage:当前页码从1开始,pageSize:每页记录数,total:总记录【数如果是0后台会自动计算总记录数非0不会自动计算】},后台都会自动按分页查询 其它 api用到再打开,没用到的api请注释掉, + *2 查询、新增、修改的参数格式 params={cardAccountId:'银行卡账户编号 主键',platformId:'平台编号 主键',bankName:'银行名称',bankCode:'银行机构码',cardAccountName:'银行卡账户名称',subBankName:'银行分支机构名称',subBankCode:'分支机构编码',ctime:'新增时间',ltime:'更新时间',opUserid:'操作用户编号',opUsername:'操作用户名称',status:'账户状态0无效1有效',type:'账户性质0-平台收款'} + **/ + +//普通查询 条件之间and关系 +export const listBankAccount = params => { return axios.get(`${base}/mdp/plat/bankAccount/list`, { params: params }); }; + +//模糊查询平台收付款账户 条件之间or关系 +//export const listBankAccountKey = params => { return axios.get(`${base}/mdp/plat/bankAccount/listKey`, { params: params }); }; + +//删除一条平台收付款账户 params={cardAccountId:'银行卡账户编号 主键',platformId:'平台编号 主键'} +export const delBankAccount = params => { return axios.post(`${base}/mdp/plat/bankAccount/del`,params); }; + +//批量删除平台收付款账户 params=[{cardAccountId:'银行卡账户编号 主键',platformId:'平台编号 主键'}] +export const batchDelBankAccount = params => { return axios.post(`${base}/mdp/plat/bankAccount/batchDel`, params); }; + +//修改一条平台收付款账户记录 +export const editBankAccount = params => { return axios.post(`${base}/mdp/plat/bankAccount/edit`, params); }; + +//新增一条平台收付款账户 +export const addBankAccount = params => { return axios.post(`${base}/mdp/plat/bankAccount/add`, params); }; \ No newline at end of file diff --git a/src/api/mdp/plat/platform.js b/src/api/mdp/plat/platform.js new file mode 100644 index 00000000..1861dd60 --- /dev/null +++ b/src/api/mdp/plat/platform.js @@ -0,0 +1,30 @@ +import axios from '@/utils/request' + +import config from '@/common/config' + +let base = config.getSysBasePath(); + + +/** + * plat_platform + *1 默认只开放普通查询,所有查询,只要上传 分页参数 {currentPage:当前页码从1开始,pageSize:每页记录数,total:总记录【数如果是0后台会自动计算总记录数非0不会自动计算】},后台都会自动按分页查询 其它 api用到再打开,没用到的api请注释掉, + *2 查询、新增、修改的参数格式 params={id:'平台编号建议为platform-001 主键',platformName:'平台名称',status:'0-未启用,1-已启用,只能有一条数据有效',ctime:'创建时间',ltime:'更新时间',cuserid:'创建人编号',cusername:'创建人姓名',logoUrl:'平台logo图片地址',platformTitle:'前端显示的平台名称',keywords:'关键词逗号分割',minBuyAmount:'最小购买金额,达到此购物金额,才能提交订单',autoConfirmReceipt:'自动确认收货0否1是,确认收货时长请在订单设置中进行设置',canBill:'是否可开发票0否1是',billContextList:'发票内容选项,逗号分割',cutStock:'扣减库存时机0-下单付款完成,1-发货后',remarkJson:'备注填写要求',plusSales:'增加销量时机0-发货后,1-付款后',evaluate:'评价是否需要审核0否1是',discountPct:'全局折扣0~100之间',usePriceGroup:'是否使用价格套0否1是'} + **/ + +//普通查询 条件之间and关系 +export const listPlatform = params => { return axios.get(`${base}/mdp/plat/platform/list`, { params: params }); }; + +//模糊查询plat_platform 条件之间or关系 +//export const listPlatformKey = params => { return axios.get(`${base}/mdp/plat/platform/listKey`, { params: params }); }; + +//删除一条plat_platform params={id:'平台编号建议为platform-001 主键'} +export const delPlatform = params => { return axios.post(`${base}/mdp/plat/platform/del`,params); }; + +//批量删除plat_platform params=[{id:'平台编号建议为platform-001 主键'}] +export const batchDelPlatform = params => { return axios.post(`${base}/mdp/plat/platform/batchDel`, params); }; + +//修改一条plat_platform记录 +export const editPlatform = params => { return axios.post(`${base}/mdp/plat/platform/edit`, params); }; + +//新增一条plat_platform +export const addPlatform = params => { return axios.post(`${base}/mdp/plat/platform/add`, params); }; \ No newline at end of file diff --git a/src/api/mdp/sys/branchConfig.js b/src/api/mdp/sys/branchConfig.js new file mode 100644 index 00000000..8b54e98c --- /dev/null +++ b/src/api/mdp/sys/branchConfig.js @@ -0,0 +1,44 @@ +import axios from '@/utils/request' + +import { getDicts,initSimpleDicts,initComplexDicts } from '@/api/mdp/meta/item';//字典表 +import config from '@/common/config' + +let base = config.getSysBasePath(); + +/**-------------------------与后端通讯接口------------------请写在下面-------------------------------------------- */ +/** + * sys_branch_config + *1 默认只开放普通查询,所有查询,只要上传 分页参数 {pageNum:当前页码从1开始,pageSize:每页记录数,total:总记录【数如果是0后台会自动计算总记录数非0不会自动计算】},后台都会自动按分页查询 其它 api用到再打开,没用到的api请注释掉, + *2 查询、新增、修改的参数格式 params={branchId:'机构编号 主键',musers:'购买用户数',lvl:'机构等级',mbidNum:'可投标次数-每月恢复为套餐数量,包含公司账户次数+个人以组织名义接单的次数,以上每接一单扣减此处',startTime:'开始日期yyyy-MM-dd',endTime:'结束日期yyyy-MM-dd',sfeeRate:'服务费率,15=15%'} + **/ + +//普通查询 条件之间and关系 +export const listBranchConfig = params => { return axios.get(`${base}/mdp/sys/branchConfig/list`, { params: params }); }; + +//删除一条sys_branch_config params={branchId:'机构编号 主键'} +export const delBranchConfig = params => { return axios.post(`${base}/mdp/sys/branchConfig/del`,params); }; + +//批量删除sys_branch_config params=[{branchId:'机构编号 主键'}] +export const batchDelBranchConfig = params => { return axios.post(`${base}/mdp/sys/branchConfig/batchDel`, params); }; + +//修改一条sys_branch_config记录 +export const editBranchConfig = params => { return axios.post(`${base}/mdp/sys/branchConfig/edit`, params); }; + +//新增一条sys_branch_config +export const addBranchConfig = params => { return axios.post(`${base}/mdp/sys/branchConfig/add`, params); }; + +//批量修改某些字段 +export const editSomeFieldsBranchConfig = params => { return axios.post(`${base}/mdp/sys/branchConfig/editSomeFields`, params); }; + + + +/**-------------------------前端mng|add|edit界面公共函数---------------请写在下面----------------------------------------------- */ +//初始化页面上的字典 +export const initDicts = (that) => { + var itemCodes=[];//在此添加要加载的字典 如['sex','grade','lvl'] + if(itemCodes.length>0){ + initSimpleDicts('all',itemCodes).then(res=>{ + Object.assign(that.dicts,res.data.data) + }); + } +}; \ No newline at end of file diff --git a/src/api/mdp/sys/branchInterests.js b/src/api/mdp/sys/branchInterests.js new file mode 100644 index 00000000..899c46fd --- /dev/null +++ b/src/api/mdp/sys/branchInterests.js @@ -0,0 +1,47 @@ +import axios from '@/utils/request' + +import { getDicts,initSimpleDicts,initComplexDicts } from '@/api/mdp/meta/item';//字典表 +import config from '@/common/config' + +let base = config.getSysBasePath(); + +/**-------------------------与后端通讯接口------------------请写在下面-------------------------------------------- */ +/** + * 机构权益关联表 + *1 默认只开放普通查询,所有查询,只要上传 分页参数 {pageNum:当前页码从1开始,pageSize:每页记录数,total:总记录【数如果是0后台会自动计算总记录数非0不会自动计算】},后台都会自动按分页查询 其它 api用到再打开,没用到的api请注释掉, + *2 查询、新增、修改的参数格式 params={branchId:'公司ID 主键',ilvlId:'等级ID',ilvlName:'等级名称',idesc:'等级描述',ilevel:'1-粉丝,2-',discount:'权益,折扣',istatus:'等级状态',ctime:'创建时间',ltime:'更新时间',picUrl:'等级图标url',isFree:'是否付费获取权益',rtimeRule:'续会时间叠加规则:1.有效期日期后叠加续会时间',rtimeType:'续会时间类型:1.天数',rtime:'下次续会时间yyyy-MM-dd型',itype:'权益分类',shopId:'商户编号',instId:'当前流程实例编号',flowState:'当前流程状态,0初始1审批中2审批通过3审批不通过4流程取消或者删除',smaxAt:'单个任务最大金额(任务型用户才有)0代表不限制',totalAt:'累计接单金额(任务型用户才有)0代表不限制',mtype:'适用会员类型(2商户型、1普通型、3任务型)',totalExp:'累计经验值0代表不限制',smaxExp:'单个任务最大经验值0代表不限制',bids:'投标次数上限',sfeeRate:'服务费率0-100之间',idBak:'覆盖上一条的等级编号,即变成当前等级之前的等级编号',currTotalExp:'累计完成工作量',currBids:'当前月份投标次数(每月最后一天清零)',currTotalAt:'当前累计完成金额',currTotalBids:'累计投标总数',mfee:'月均费用',maxUsers:'最大人员数',currUsers:'当前人员数',maxRtime:'产品模块下次续费截止时间yyyy-MM-dd类型',mver:'产品版本0个人版1企业版'} + **/ + +//普通查询 条件之间and关系 +export const listBranchInterests = params => { return axios.get(`${base}/mdp/sys/branchInterests/list`, { params: params }); }; + + +export const getBranchInterestsDetail = params => { return axios.get(`${base}/mdp/sys/branchInterests/detail`, { params: params }); }; + +//删除一条机构权益关联表 params={branchId:'公司ID 主键'} +export const delBranchInterests = params => { return axios.post(`${base}/mdp/sys/branchInterests/del`,params); }; + +//批量删除机构权益关联表 params=[{branchId:'公司ID 主键'}] +export const batchDelBranchInterests = params => { return axios.post(`${base}/mdp/sys/branchInterests/batchDel`, params); }; + +//修改一条机构权益关联表记录 +export const editBranchInterests = params => { return axios.post(`${base}/mdp/sys/branchInterests/edit`, params); }; + +//新增一条机构权益关联表 +export const addBranchInterests = params => { return axios.post(`${base}/mdp/sys/branchInterests/add`, params); }; + +//批量修改某些字段 +export const editSomeFieldsBranchInterests = params => { return axios.post(`${base}/mdp/sys/branchInterests/editSomeFields`, params); }; + + + +/**-------------------------前端mng|add|edit界面公共函数---------------请写在下面----------------------------------------------- */ +//初始化页面上的字典 +export const initDicts = (that) => { + var itemCodes=[];//在此添加要加载的字典 如['sex','grade','lvl'] + if(itemCodes.length>0){ + initSimpleDicts('all',itemCodes).then(res=>{ + Object.assign(that.dicts,res.data.data) + }); + } +}; \ No newline at end of file diff --git a/src/api/mdp/sys/branchModule.js b/src/api/mdp/sys/branchModule.js new file mode 100644 index 00000000..453c66ac --- /dev/null +++ b/src/api/mdp/sys/branchModule.js @@ -0,0 +1,49 @@ +import axios from '@/utils/request' + +import { getDicts,initSimpleDicts,initComplexDicts } from '@/api/mdp/meta/item';//字典表 +import config from '@/common/config' + +let base = config.getSysBasePath(); + +/**-------------------------与后端通讯接口------------------请写在下面-------------------------------------------- */ +/** + * 管理端机构表(机构下面若干部门) + *1 默认只开放普通查询,所有查询,只要上传 分页参数 {pageNum:当前页码从1开始,pageSize:每页记录数,total:总记录【数如果是0后台会自动计算总记录数非0不会自动计算】},后台都会自动按分页查询 其它 api用到再打开,没用到的api请注释掉, + *2 查询、新增、修改的参数格式 params={branchId:'机构编号 主键',moduleId:'模块编号 主键',startTime:'启用日期',endTime:'结束日期',ctime:'创建日期',ltime:'更新日期',cuserid:'创建人编号',cusername:'创建人姓名',luserid:'修改人编号',lusername:'修改人姓名',status:'状态0停用1启用',musers:'购买用户数',mbidNum:'可投标次数-每月恢复为套餐数量,包含公司账户次数+个人以组织名义接单的次数,以上每接一单扣减此处',sfeeRate:'服务费率,15=15%',ver:'购买版本'} + **/ + +//普通查询 条件之间and关系 +export const listBranchModule = params => { return axios.get(`${base}/mdp/sys/branchModule/list`, { params: params }); }; + + +//统计登录机构的产品购买情况 +export const calcBranchModule = params => { return axios.get(`${base}/mdp/sys/branchModule/calcBranchModule`, { params: params }); }; + +//删除一条管理端机构表(机构下面若干部门) params={branchId:'机构编号 主键',moduleId:'模块编号 主键'} +export const delBranchModule = params => { return axios.post(`${base}/mdp/sys/branchModule/del`,params); }; + +//批量删除管理端机构表(机构下面若干部门) params=[{branchId:'机构编号 主键',moduleId:'模块编号 主键'}] +export const batchDelBranchModule = params => { return axios.post(`${base}/mdp/sys/branchModule/batchDel`, params); }; + +//修改一条管理端机构表(机构下面若干部门)记录 +export const editBranchModule = params => { return axios.post(`${base}/mdp/sys/branchModule/edit`, params); }; + +//新增一条管理端机构表(机构下面若干部门) +export const addBranchModule = params => { return axios.post(`${base}/mdp/sys/branchModule/add`, params); }; + +//批量修改某些字段 +export const editSomeFieldsBranchModule = params => { return axios.post(`${base}/mdp/sys/branchModule/editSomeFields`, params); }; + + + +/**-------------------------前端mng|add|edit界面公共函数---------------请写在下面----------------------------------------------- */ +//初始化页面上的字典 +export const initDicts = (that) => { + that.dicts['status']=[{id:'0',name:'停用'},{id:'1',name:'启用'}] + var itemCodes=['moduleBillMode',"bizFlowState"];//在此添加要加载的字典 如['sex','grade','lvl'] + if(itemCodes.length>0){ + initSimpleDicts('all',itemCodes).then(res=>{ + Object.assign(that.dicts,res.data.data) + }); + } +}; \ No newline at end of file diff --git a/src/api/mdp/sys/deptLocation.js b/src/api/mdp/sys/deptLocation.js new file mode 100644 index 00000000..6b360dcd --- /dev/null +++ b/src/api/mdp/sys/deptLocation.js @@ -0,0 +1,33 @@ +import axios from '@/utils/request' + +import config from '@/common/config' + +let base=config.getSysBasePath(); + +/** + * sys_dept_location + *1 默认只开放普通查询,所有查询,只要上传 分页参数 {currentPage:当前页码从1开始,pageSize:每页记录数,total:总记录【数如果是0后台会自动计算总记录数非0不会自动计算】},后台都会自动按分页查询 其它 api用到再打开,没用到的api请注释掉, + *2 查询、新增、修改的参数格式 params={deptid:'部门地址编号 主键',longitude:'经度',latitude:'纬度',address:'地址',province:'省',city:'市',district:'区'} + **/ + +//普通查询 条件之间and关系 +export const listDeptLocation = params => { return axios.get(`${base}/mdp/sys/deptLocation/list`, { params: params }); }; + +//模糊查询sys_dept_location 条件之间or关系 +//export const listDeptLocationKey = params => { return axios.get(`${base}/mdp/sys/deptLocation/listKey`, { params: params }); }; + +//删除一条sys_dept_location params={deptid:'部门地址编号 主键'} +export const delDeptLocation = params => { return axios.post(`${base}/mdp/sys/deptLocation/del`,params); }; + +//批量删除sys_dept_location params=[{deptid:'部门地址编号 主键'}] +export const batchDelDeptLocation = params => { return axios.post(`${base}/mdp/sys/deptLocation/batchDel`, params); }; + +//修改一条sys_dept_location记录 +export const editDeptLocation = params => { return axios.post(`${base}/mdp/sys/deptLocation/edit`, params); }; + +//新增一条sys_dept_location +export const addDeptLocation = params => { return axios.post(`${base}/mdp/sys/deptLocation/add`, params); }; +//addAndEditDeptLocation +export const addAndEditDeptLocation = params => { return axios.post(`${base}/mdp/sys/deptLocation/addAndEditDeptLocation`, params); }; +//getDeptLocation +export const getDeptLocation = params => { return axios.post(`${base}/mdp/sys/deptLocation/getDeptLocation`, params); }; \ No newline at end of file diff --git a/src/api/mdp/sys/module.js b/src/api/mdp/sys/module.js new file mode 100644 index 00000000..25b55bb9 --- /dev/null +++ b/src/api/mdp/sys/module.js @@ -0,0 +1,43 @@ +import axios from '@/utils/request' +import { getDicts,initSimpleDicts,initComplexDicts } from '@/api/mdp/meta/item';//字典表 +import config from '@/common/config' + +let base = config.getSysBasePath(); + +/**-------------------------与后端通讯接口------------------请写在下面-------------------------------------------- */ +/** + * 模块定义表-用于进行机构级别的权限控制,机构如果购买了模块,则能够进行访问 + *1 默认只开放普通查询,所有查询,只要上传 分页参数 {pageNum:当前页码从1开始,pageSize:每页记录数,total:总记录【数如果是0后台会自动计算总记录数非0不会自动计算】},后台都会自动按分页查询 其它 api用到再打开,没用到的api请注释掉, + *2 查询、新增、修改的参数格式 params={id:'编号 主键',name:'模块名称',fee:'模块费用',billMode:'计费模式:0-不计费,1-按购买人数计费,2-总包费用,3-按实际使用人数每月计费',uniFee:'人均费用',discount:'折扣比率,可折上折,叠加折扣。-按最大人数、按年份优惠(',url:'匹配的url,如果匹配得到,则计费,以逗号分割多个',ignoreUrl:'匹配这个地址的不计费',bizFlowState:'审核状态',procInstId:'审核流程实例编号'} + **/ + +//普通查询 条件之间and关系 +export const listModule = params => { return axios.get(`${base}/mdp/sys/module/list`, { params: params }); }; + +//删除一条模块定义表-用于进行机构级别的权限控制,机构如果购买了模块,则能够进行访问 params={id:'编号 主键'} +export const delModule = params => { return axios.post(`${base}/mdp/sys/module/del`,params); }; + +//批量删除模块定义表-用于进行机构级别的权限控制,机构如果购买了模块,则能够进行访问 params=[{id:'编号 主键'}] +export const batchDelModule = params => { return axios.post(`${base}/mdp/sys/module/batchDel`, params); }; + +//修改一条模块定义表-用于进行机构级别的权限控制,机构如果购买了模块,则能够进行访问记录 +export const editModule = params => { return axios.post(`${base}/mdp/sys/module/edit`, params); }; + +//新增一条模块定义表-用于进行机构级别的权限控制,机构如果购买了模块,则能够进行访问 +export const addModule = params => { return axios.post(`${base}/mdp/sys/module/add`, params); }; + +//批量修改某些字段 +export const editSomeFieldsModule = params => { return axios.post(`${base}/mdp/sys/module/editSomeFields`, params); }; + + + +/**-------------------------前端mng|add|edit界面公共函数---------------请写在下面----------------------------------------------- */ +//初始化页面上的字典 +export const initDicts = (that) => { + var itemCodes=['moduleBillMode','bizFlowState'];//在此添加要加载的字典 如['sex','grade','lvl'] + if(itemCodes.length>0){ + initSimpleDicts('all',itemCodes).then(res=>{ + Object.assign(that.dicts,res.data.data) + }); + } +}; \ No newline at end of file diff --git a/src/api/mdp/sys/operDataTrail.js b/src/api/mdp/sys/operDataTrail.js new file mode 100644 index 00000000..98609099 --- /dev/null +++ b/src/api/mdp/sys/operDataTrail.js @@ -0,0 +1,28 @@ +import axios from '@/utils/request' + +import config from '@/common/config' + +let base=config.getSysBasePath(); + +//默认只开放普通查询,所有查询,只要上传 分页参数 {currentPage:1,pageSize:10,total:0},后台都会自动按分页查询 其它 api用到再打开,没用到的api请注释掉, + +//普通查询 +export const listOperDataTrail = params => { return axios.get(`${base}/sys/operDataTrail/list`, { params: params }); }; + +//关键字模糊查询 {字段1:v1,字段2:v1,字段3:v1},字段驼峰命名,条件之间默认为or关系 +//export const listOperDataTrailKey = params => { return axios.get(`${base}/sys/operDataTrail/listKey`, { params: params }); }; + +//删除一个 +export const delOperDataTrail = params => { return axios.post(`${base}/sys/operDataTrail/del`,params); }; + +//批量删除 +export const batchDelOperDataTrail = params => { return axios.post(`${base}/sys/operDataTrail/batchDel`, params); }; + +//修改一个 +export const editOperDataTrail = params => { return axios.post(`${base}/sys/operDataTrail/edit`, params); }; + +//新增一个 +export const addOperDataTrail = params => { return axios.post(`${base}/sys/operDataTrail/add`, params); }; + +//修改一个 +export const operEnd = params => { return axios.post(`${base}/sys/operDataTrail/edit/end`, params); }; \ No newline at end of file diff --git a/src/api/mdp/sys/post/postRole.js b/src/api/mdp/sys/post/postRole.js new file mode 100644 index 00000000..3b094496 --- /dev/null +++ b/src/api/mdp/sys/post/postRole.js @@ -0,0 +1,33 @@ +import axios from '@/utils/request' + +import config from '@/common/config' + +let base = config.getSysBasePath(); + + +/** + * 岗位角色关系表 + *1 默认只开放普通查询,所有查询,只要上传 分页参数 {currentPage:当前页码从1开始,pageSize:每页记录数,total:总记录【数如果是0后台会自动计算总记录数非0不会自动计算】},后台都会自动按分页查询 其它 api用到再打开,没用到的api请注释掉, + *2 查询、新增、修改的参数格式 params={id:'主键 主键',postId:'岗位编号',roleid:'角色编号'} + **/ + +//普通查询 条件之间and关系 +export const listPostRole = params => { return axios.get(`${base}/mdp/sys/post/postRole/list`, { params: params }); }; + +//模糊查询岗位角色关系表 条件之间or关系 +//export const listPostRoleKey = params => { return axios.get(`${base}/mdp/sys/post/postRole/listKey`, { params: params }); }; + +//删除一条岗位角色关系表 params={id:'主键 主键'} +export const delPostRole = params => { return axios.post(`${base}/mdp/sys/post/postRole/del`,params); }; + +//批量删除岗位角色关系表 params=[{id:'主键 主键'}] +export const batchDelPostRole = params => { return axios.post(`${base}/mdp/sys/post/postRole/batchDel`, params); }; + +//批量删除岗位角色关系表 params=[{id:'主键 主键'}] +export const batchAddPostRole = params => { return axios.post(`${base}/mdp/sys/post/postRole/batchAdd`, params); }; + +//修改一条岗位角色关系表记录 +export const editPostRole = params => { return axios.post(`${base}/mdp/sys/post/postRole/edit`, params); }; + +//新增一条岗位角色关系表 +export const addPostRole = params => { return axios.post(`${base}/mdp/sys/post/postRole/add`, params); }; \ No newline at end of file diff --git a/src/api/mdp/sys/qx.js b/src/api/mdp/sys/qx.js new file mode 100644 index 00000000..868bb2bb --- /dev/null +++ b/src/api/mdp/sys/qx.js @@ -0,0 +1,29 @@ +import axios from '@/utils/request' + +import config from '@/common/config' + +let base=config.getSysBasePath(); + +/** + * 权限定义 + *1 默认只开放普通查询,所有查询,只要上传 分页参数 {currentPage:当前页码从1开始,pageSize:每页记录数,total:总记录【数如果是0后台会自动计算总记录数非0不会自动计算】},后台都会自动按分页查询 其它 api用到再打开,没用到的api请注释掉, + *2 查询、新增、修改的参数格式 params={qxId:'权限编号 主键',qxName:'权限名称',qxType:'权限类型data/url/base/area',remark:'备注',qxCode:'权限编码',enabled:'是否启用',deptid:'机构编号',branchId:'云用户机构编号'} + **/ + +//普通查询 条件之间and关系 +export const listQx = params => { return axios.get(`${base}/mdp/sys/qx/list`, { params: params }); }; + +//模糊查询权限定义 条件之间or关系 +//export const listQxKey = params => { return axios.get(`${base}/mdp/sys/qx/listKey`, { params: params }); }; + +//删除一条权限定义 params={qxId:'权限编号 主键'} +export const delQx = params => { return axios.post(`${base}/mdp/sys/qx/del`,params); }; + +//批量删除权限定义 params=[{qxId:'权限编号 主键'}] +export const batchDelQx = params => { return axios.post(`${base}/mdp/sys/qx/batchDel`, params); }; + +//修改一条权限定义记录 +export const editQx = params => { return axios.post(`${base}/mdp/sys/qx/edit`, params); }; + +//新增一条权限定义 +export const addQx = params => { return axios.post(`${base}/mdp/sys/qx/add`, params); }; \ No newline at end of file diff --git a/src/api/mdp/sys/region.js b/src/api/mdp/sys/region.js new file mode 100644 index 00000000..0dc66367 --- /dev/null +++ b/src/api/mdp/sys/region.js @@ -0,0 +1,26 @@ +import axios from '@/utils/request' + +import config from '@/common/config' + +let base=config.getSysBasePath(); + +//默认只开放普通查询,所有查询,只要上传 分页参数 {currentPage:1,pageSize:10,total:0},后台都会自动按分页查询 其它 api用到再打开,没用到的api请注释掉, + +//普通查询 +export const listRegion = params => { return axios.get(`${base}/mdp/sys/region/list`, { params: params }); }; + +//关键字模糊查询 {字段1:v1,字段2:v1,字段3:v1},字段驼峰命名,条件之间默认为or关系 +//export const listRegionKey = params => { return axios.get(`${base}/mdp/sys/region/listKey`, { params: params }); }; +export const listTreeRegion = params => { return axios.get(`${base}/mdp/sys/region/list/tree`, { params: params }); }; + +//删除一个 +export const delRegion = params => { return axios.post(`${base}/mdp/sys/region/del`,params); }; + +//批量删除 +export const batchDelRegion = params => { return axios.post(`${base}/mdp/sys/region/batchDel`, params); }; + +//修改一个 +export const editRegion = params => { return axios.post(`${base}/mdp/sys/region/edit`, params); }; + +//新增一个 +export const addRegion = params => { return axios.post(`${base}/mdp/sys/region/add`, params); }; \ No newline at end of file diff --git a/src/api/mdp/sys/roleQx.js b/src/api/mdp/sys/roleQx.js new file mode 100644 index 00000000..2c549827 --- /dev/null +++ b/src/api/mdp/sys/roleQx.js @@ -0,0 +1,29 @@ +import axios from '@/utils/request' + +import config from '@/common/config' + +let base=config.getSysBasePath(); + +/** + * 角色权限关系表 + *1 默认只开放普通查询,所有查询,只要上传 分页参数 {currentPage:当前页码从1开始,pageSize:每页记录数,total:总记录【数如果是0后台会自动计算总记录数非0不会自动计算】},后台都会自动按分页查询 其它 api用到再打开,没用到的api请注释掉, + *2 查询、新增、修改的参数格式 params={id:'主键 主键',qxId:'权限编号增删改查批量更新导出导入',remark:'备注',roleid:'角色编号',enabled:'是否启用',deptid:'机构编号',branchId:'云用户机构编号'} + **/ + +//普通查询 条件之间and关系 +export const listRoleQx = params => { return axios.get(`${base}/mdp/sys/roleQx/list`, { params: params }); }; + +//模糊查询角色权限关系表 条件之间or关系 +//export const listRoleQxKey = params => { return axios.get(`${base}/mdp/sys/roleQx/listKey`, { params: params }); }; + +//删除一条角色权限关系表 params={id:'主键 主键'} +export const delRoleQx = params => { return axios.post(`${base}/mdp/sys/roleQx/del`,params); }; + +//批量删除角色权限关系表 params=[{id:'主键 主键'}] +export const batchDelRoleQx = params => { return axios.post(`${base}/mdp/sys/roleQx/batchDel`, params); }; + +//批量更新角色权限 +export const batchEditRoleQx = params => { return axios.post(`${base}/sys/roleQx/batchEdit`, params); }; + +//新增一条角色权限关系表 +export const addRoleQx = params => { return axios.post(`${base}/mdp/sys/roleQx/add`, params); }; \ No newline at end of file diff --git a/src/api/mdp/sys/thirdPartyAccount.js b/src/api/mdp/sys/thirdPartyAccount.js new file mode 100644 index 00000000..56178d03 --- /dev/null +++ b/src/api/mdp/sys/thirdPartyAccount.js @@ -0,0 +1,25 @@ +import axios from '@/utils/request' + +import config from '@/common/config' + +let base=config.getSysBasePath(); + +//默认只开放普通查询,所有查询,只要上传 分页参数 {currentPage:1,pageSize:10,total:0},后台都会自动按分页查询 其它 api用到再打开,没用到的api请注释掉, + +//普通查询 +export const listThirdPartyAccount = params => { return axios.get(`${base}/sys/thirdPartyAccount/list`, { params: params }); }; + +//关键字模糊查询 {字段1:v1,字段2:v1,字段3:v1},字段驼峰命名,条件之间默认为or关系 +//export const listThirdPartyAccountKey = params => { return axios.get(`${base}/sys/thirdPartyAccount/listKey`, { params: params }); }; + +//删除一个 +//export const delThirdPartyAccount = params => { return axios.post(`${base}/sys/thirdPartyAccount/del`,params); }; + +//批量删除 +//export const batchDelThirdPartyAccount = params => { return axios.post(`${base}/sys/thirdPartyAccount/batchDel`, params); }; + +//修改一个 +//export const editThirdPartyAccount = params => { return axios.post(`${base}/sys/thirdPartyAccount/edit`, params); }; + +//新增一个 +//export const addThirdPartyAccount = params => { return axios.post(`${base}/sys/thirdPartyAccount/add`, params); }; \ No newline at end of file diff --git a/src/api/mdp/sys/userRole.js b/src/api/mdp/sys/userRole.js new file mode 100644 index 00000000..8fef4a50 --- /dev/null +++ b/src/api/mdp/sys/userRole.js @@ -0,0 +1,35 @@ +import axios from '@/utils/request' + +import config from '@/common/config' + +let base=config.getSysBasePath(); + +/** + * 用户角色表 + *1 默认只开放普通查询,所有查询,只要上传 分页参数 {currentPage:当前页码从1开始,pageSize:每页记录数,total:总记录【数如果是0后台会自动计算总记录数非0不会自动计算】},后台都会自动按分页查询 其它 api用到再打开,没用到的api请注释掉, + *2 查询、新增、修改的参数格式 params={id:'主键ID 主键',roleid:'用户组编号',userid:'用户编号',remark:'备注',userroleBeg:'有效时间始',userroleEnd:'有效时间止',createDate:'创建日期',roleSort:'顺序号',enabled:'0不启用1启用',deptid:'机构编号',branchId:'云用户机构编号'} + **/ + +//普通查询 条件之间and关系 +export const listUserRole = params => { return axios.get(`${base}/mdp/sys/userRole/list`, { params: params }); }; + +//普通查询 +export const listUserInfosByRoleid = params => { return axios.get(`${base}/sys/userRole/list/users`, { params: params }); }; + +//删除一条用户角色表 params={id:'主键ID 主键'} +export const delUserRole = params => { return axios.post(`${base}/mdp/sys/userRole/del`,params); }; + +//批量删除用户角色表 params=[{id:'主键ID 主键'}] +export const batchDelUserRole = params => { return axios.post(`${base}/mdp/sys/userRole/batchDel`, params); }; + +//修改一条用户角色表记录 +export const editUserRole = params => { return axios.post(`${base}/mdp/sys/userRole/edit`, params); }; + +//批量删除 +export const batchEditUserRole = params => { return axios.post(`${base}/sys/userRole/batchEdit`, params); }; + +//修改一个 +//export const editUserRole = params => { return axios.post(`${base}/sys/userRole/edit`, params); }; + +//新增一个 +//export const addUserRole = params => { return axios.post(`${base}/sys/userRole/add`, params); }; \ No newline at end of file diff --git a/src/api/mdp/sys/userTpa.js b/src/api/mdp/sys/userTpa.js new file mode 100644 index 00000000..fd3e8f44 --- /dev/null +++ b/src/api/mdp/sys/userTpa.js @@ -0,0 +1,36 @@ +import axios from '@/utils/request' + +import config from '@/common/config' + +let base=config.getSysBasePath(); + +/** + * 第三方系统向我方开放的用户列表 + *1 默认只开放普通查询,所有查询,只要上传 分页参数 {currentPage:当前页码从1开始,pageSize:每页记录数,total:总记录【数如果是0后台会自动计算总记录数非0不会自动计算】},后台都会自动按分页查询 其它 api用到再打开,没用到的api请注释掉, + *2 查询、新增、修改的参数格式 params={id:'主键 主键',unionid:'全局唯一编号',openid:'帐户加密后的编号,用于对第三方系统进行开放',userid:'MDP用户编号',locked:'是否被锁定',startdate:'启用日期',nickname:'昵称',username:'用户名称',phoneno:'移动电话号码',country:'国家',city:'城市',headimgurl:'头像地址',province:'省份',userunionid:'对应本系统user表的UNIONID',mdpAppid:'前端应用系统编号',deptid:'机构编号',branchId:'云用户机构编号',appid:'第三方登录应用系统编号',authId:'授权编号'} + **/ + +//普通查询 条件之间and关系 +export const listUserTpa = params => { return axios.get(`${base}/mdp/sys/userTpa/list`, { params: params }); }; + +//模糊查询第三方系统向我方开放的用户列表 条件之间or关系 +//export const listUserTpaKey = params => { return axios.get(`${base}/mdp/sys/userTpa/listKey`, { params: params }); }; + +//删除一条第三方系统向我方开放的用户列表 params={id:'主键 主键'} +export const delUserTpa = params => { return axios.post(`${base}/mdp/sys/userTpa/del`,params); }; + +//批量删除第三方系统向我方开放的用户列表 params=[{id:'主键 主键'}] +export const batchDelUserTpa = params => { return axios.post(`${base}/mdp/sys/userTpa/batchDel`, params); }; + +//修改一条第三方系统向我方开放的用户列表记录 +export const editUserTpa = params => { return axios.post(`${base}/mdp/sys/userTpa/edit`, params); }; + +//新增一条第三方系统向我方开放的用户列表 +export const addUserTpa = params => { return axios.post(`${base}/mdp/sys/userTpa/add`, params); }; + +//查询用户表关联的第三方系统的向我方开放的用户列表 +export const selectByUserTpa = params => { return axios.get(`${base}/mdp/sys/userTpa/selectByUserTpa`, { params: params }); }; +//查看mk的会员表 +export const selectByMemMember = params => { return axios.get(`${base}/mdp/sys/userTpa/selectByMemMember`, { params: params }); }; +//添加 +export const addSubacctAddForm = params => { return axios.post(`${base}/mdp/sys/userTpa/addSubacctAddForm`, params); }; diff --git a/src/api/mdp/sys/userTpaApply.js b/src/api/mdp/sys/userTpaApply.js new file mode 100644 index 00000000..e39cc4ff --- /dev/null +++ b/src/api/mdp/sys/userTpaApply.js @@ -0,0 +1,30 @@ +import axios from '@/utils/request' + +import config from '@/common/config' + +let base = config.getSysBasePath(); + + +/** + * sys_user_tpa_apply + *1 默认只开放普通查询,所有查询,只要上传 分页参数 {currentPage:当前页码从1开始,pageSize:每页记录数,total:总记录【数如果是0后台会自动计算总记录数非0不会自动计算】},后台都会自动按分页查询 其它 api用到再打开,没用到的api请注释掉, + *2 查询、新增、修改的参数格式 params={id:'主键 主键',userid:'申请人的用户编号',applyPostName:'申请的岗位名称',applyBranchId:'申请的机构编号',applyShopId:'申请的商户编号',applyLocationId:'申请的门店编号',source:'申请来源(从哪个途径申请)',status:'申请的状态(0.申请中',remark:'备注',createDate:'申请时间',updateDate:'修改时间',cuserid:'创建人id',lopuserid:'最后操作人'} + **/ + +//普通查询 条件之间and关系 +export const listSysUserTpaApply = params => { return axios.get(`${base}/mdp/sys/userTpaApply/list`, { params: params }); }; + +//模糊查询sys_user_tpa_apply 条件之间or关系 +//export const listSysUserTpaApplyKey = params => { return axios.get(`${base}/mdp/sys/userTpaApply/listKey`, { params: params }); }; + +//删除一条sys_user_tpa_apply params={id:'主键 主键'} +export const delSysUserTpaApply = params => { return axios.post(`${base}/mdp/sys/userTpaApply/del`,params); }; + +//批量删除sys_user_tpa_apply params=[{id:'主键 主键'}] +export const batchDelSysUserTpaApply = params => { return axios.post(`${base}/mdp/sys/userTpaApply/batchDel`, params); }; + +//修改一条sys_user_tpa_apply记录 +export const editSysUserTpaApply = params => { return axios.post(`${base}/mdp/sys/userTpaApply/edit`, params); }; + +//新增一条sys_user_tpa_apply +export const addSysUserTpaApply = params => { return axios.post(`${base}/mdp/sys/userTpaApply/add`, params); }; \ No newline at end of file diff --git a/src/api/mdp/workflow/re/actAssignee.js b/src/api/mdp/workflow/re/actAssignee.js new file mode 100644 index 00000000..d31e4aa2 --- /dev/null +++ b/src/api/mdp/workflow/re/actAssignee.js @@ -0,0 +1,29 @@ +import axios from '@/utils/request' + +import config from '@/common/config' + +let base=config.getWorkflowBasePath(); + +//默认只开放普通查询,所有查询,只要上传 分页参数 {currentPage:1,pageSize:10,total:0},后台都会自动按分页查询 其它 api用到再打开,没用到的api请注释掉, + +//普通查询 +export const listActAssignee = params => { return axios.get(`${base}/mdp/workflow/re/actAssignee/list`, { params: params }); }; + +//普通查询模型中的所有节点的执行人列表,需要procDefId +export const getBpmnActAssignees = params => { return axios.get(`${base}/mdp/workflow/re/actAssignee/getBpmnActAssignees`, { params: params }); }; + + +//关键字模糊查询 {字段1:v1,字段2:v1,字段3:v1},字段驼峰命名,条件之间默认为or关系 +//export const listActAssigneeKey = params => { return axios.get(`${base}/mdp/workflow/re/actAssignee/listKey`, { params: params }); }; + +//删除一个 +export const delActAssignee = params => { return axios.post(`${base}/mdp/workflow/re/actAssignee/del`,params); }; + +//批量删除 +export const batchDelActAssignee = params => { return axios.post(`${base}/mdp/workflow/re/actAssignee/batchDel`, params); }; + +//修改一个 +export const editActAssignee = params => { return axios.post(`${base}/mdp/workflow/re/actAssignee/edit`, params); }; + +//新增一个 +export const addActAssignee = params => { return axios.post(`${base}/mdp/workflow/re/actAssignee/add`, params); }; \ No newline at end of file diff --git a/src/assets/image/goodImgNoShow.png b/src/assets/image/goodImgNoShow.png new file mode 100644 index 0000000000000000000000000000000000000000..bde9b9264735df9191b8f084fc38dfc00b31de47 GIT binary patch literal 10770 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 Cud9>* literal 0 HcmV?d00001 diff --git a/src/assets/image/image_not_found_small.jpg b/src/assets/image/image_not_found_small.jpg new file mode 100644 index 0000000000000000000000000000000000000000..947364d9a471c63e07ddd89a3a9636a23a00254c GIT binary patch literal 3198 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 bzpY|4X|a-;7%6%blzlv1{an^LB{Ts5p^mhA literal 0 HcmV?d00001 diff --git a/src/assets/image/platform/ew_code.png b/src/assets/image/platform/ew_code.png new file mode 100644 index 0000000000000000000000000000000000000000..94477e751b952c4297cb544167aab3c130a436c8 GIT binary patch literal 318 zcmeAS@N?(olHy`uVBq!ia0vp^Mj*_=3?wxlRx|@C%K)DcS0J5~l#~bt319$Z0%Nya2^cNd}R zJvl%&!!%D9#}JR>cdvT$H7M|~I{Xn|9rnIHlAC++MhzFu^62-^xu4CM)q5N+ zsO@*Sle;rj&!Se~XCd%8G=Se$-4Pz<+FX}8tC-= z{~y@6V@ZahRJ>*W(t>+4_TW|%Ms2+bJ2xq>yI!5P zHly+XR(Xen5Bhr>Pi*6#UixC!>vf0Ay;asfxcGn1{d1;UY?Za5uWH@3ylx^p$?efB zQNGP-*X_G5{E=AKePSzD;WK~hy{u(FH%8Ag%MyAVcKn`t$ujRFOXCEjfzD*`boFyt I=akR{0HAz~yZ`_I literal 0 HcmV?d00001 diff --git a/src/assets/image/sys/invite/email-0.png b/src/assets/image/sys/invite/email-0.png new file mode 100644 index 0000000000000000000000000000000000000000..bcefadf61a2bac70d39365c1b4ae5e3aa8245da1 GIT binary patch literal 21264 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

< zu9AQECS=)OKEjNcRPD9^=w7#fj*v3^B*+t(#+Cb?grCc0zR89Cv|ay-++~Y6wv8@IbF*sMux z3ZgZ@!md#cIT^$?KH2qk3kL8=@X4(+BA7m-FVaeQtz}bzH2BQ#GRmhuJBIja-94I@ z_+)m}4?&yD8S1>l1||3c(kYj%=cu7M&pG1P@BRYiG<%@BUJHFEFszgWq3m_=UZjk(UVTG;BD1jNNnH{mC8TtIu&AYyZJsj( z6FR!~1eK^P0tdBsFJkpEmW83T3UHZt5ENvzA?=yBoKPUo2Kl741E5IRTslmAK-WMV zx_9*BI!fZZ2LS^gvU||8Buy{!!iqmnaBmHy#Y8J0cfHIZCtjLU5dHx7VV03@s4pRv zy($$m8?z8T*3`$J&Yj=B^f%9Jh4o0XQ;iJ5#4egzDT}mrg5gFkrI%ADE~(4YsZV2f z@2E}a+rTk6R{GZBd;`{w7Qp=Tnq%tup{VPr1qrnhGD3CXd*gBiSMy3{OIO%jatX=a zXShtVzu4hAGViM4JA^GKmfv>lgRQ<mMDn`t+!`!F*E)kATJibG)#;Mj1hU|ohvK!J80>DhyDi~GM)-y)u8YM_OGT^d) zf@A3CS23O~bl=SbsT*1N(Ga1WxGI1UUZermd#kwY#eL@4T99Mcf!m-T6-5D@>|`Wj zDDt_yT$6p>-&c^ijx~6_*J&mg$}13RJ!wL?pS0Vqusi#QXB?*&mURROy5}=MryQ&} zWg>^S|!Wc)fDM>cUvZL2_L$@79{qOhy=sx*)Ay(nK{UdG&x^SgZ@J6owvsh8xP1vqy^ zgx46RIiMReSp+o=Lr75(YGEIp0KTaO7UaE)Bcf8ob(zBLmPBML(Ha1(dafOIW`i!n zP%~Y)`*Liry46^{WIk3qbuYP#`5jNaXp1%hTOF6$5q5FrcaZ8_&TIOzzjs+qie!aN zxBXMnuEzvRxkTcq&~)FQkjGrVED9`cZ}0QpP!ghm>$SKpV)9EqRBA9%AuOjbxYSh_ zXwvtw0F8ERQ?2ro^XCa(kh6{e?Jty|trzCeI7ij5^#MQ)e%Kw7Q>a$c zb3~4EJGoj(ur1l%SZ7Ore6&#N?p4GMH2ftwMVhf@ey*FCmr|+B!bJ6ZG!}M**Z=By zK{~7-Q(ZL$i)53Sv`&j`Pw;*^jUY@(zd?A8j;L;8P_1P?klQ--v{^|3G>{?Hd2cn@th;6>p{xNRuG(w8?aO*s;De!$o=8-}yf(IujgZiL& zc>0)yE@93kaX7fYe|afCiyY z@uAezc6AAV0gHYx820=JfDEclLKLb{e$kBfKeTAzaTouj5`}XM|Coi8n%|25Vf`=z z8{q#D9b$l^|70;v$odcKUx6V1Bl`aeq-P~YgiH`7`YW&F5RtYH{o4uv*)b*NNm8JZ z64HTKR5hg!^P?yk`J-7T%!4b{wN)PHeeGSceZ=QK=1y2a2>L;6XBIHiak%glvOZ^d zLhfastwz}%9I)82d2M1%SE8m2GT59_Ep38OJ1Z8JowgK5`UCNlqqw+$Xb$2?%nqao zTVg1lhgBAcLuW0BBI}2e`0IVNf*l$0dodQC3)Z{5e+LWd_J$DYX=bP7Pn>^ZGa-E5 z=E{r>po7fbMgu^*5eOem&ZYCTlQigooJ4W_Y zBLW>WzP13)7ynPSsHl~d5cO@dBQFjkK`X}H>pu`)&ocLbpXr~d{mUl4!BSc;T3gOZ zEiW1Pu4REEpbEu89E-KTVU7O=d(HCbAJ0YHapL4SMozziC~WT_vOp+c7LkBH5f2!S zJ-2aQi&E16Oyb8ugZ)$!D~B_FIfIU{Q+4r7hl_yQzJD1<@`uYKaYFl|LSfAvz!&om z(nldfU1a62#4Jz+lH20=_nd{DLDztb68)mqiQ94>fm5b4PvH<}U}<}L5#pIem~;m; zU$nu91~Ut8_=U?5Okeu*!SUWp&bT4fURkhRri|ZscD>ftWO=i@y>bW(V`C2tEm@ZnRmEk9$GR z*Fd_?$!v;UHbU}scC5|E(P4CGu`aur+aNK^GBeK!XAdAtGlhBViB)m@RDx&RMN3W~ z3HzNI#r1bB^pq-+$r?NTF_>q+QzpKn)TdP?2T!2nE?!acS&I49kV2v!#cR5V&vmti z-{(;5#3hNeTI~tp7+jYWDo;Ug!6_Zi=& zX3xE7Sq6`o@M!+)MU1_0`kL1|C2SJ%zoBL2dfqS(DAx355_SwdLXY< zk=&lwI_R`1_meZxx>I!i&UKhIcDMcWgZ@DnL7b2c4s)uxJN9Wl<~0G=WjLHTj=a!x zkL4Nh@9I_rKqRv?G_{YY%^>h|7|9IN`ZPGoU*ZMD`wB zw|wg6jZ44xna2Ey_&*y|Ez#5T+=Q~&W^^J^;=pS%H??qr>X>Putk{CR&cCf%<1iN?^cO&R6*Vlp;1MF1BsyJf34Np!ku$fc6GBOEiS$ z_+ttzSM+^sP@MSB&`uRl*~eKSTL*G+F~qYNB^HWA2029f5yCZ{R8#)VO&}U?E4&u@ zeGt(P26ML^NaPrqsq-0U;I7+R=O=%8+?tZX>d0F}*?<#-<3U1kN7VO$DepO9_Yj0O z9G;jN$D`+~o|*PW*b`7bbWuyN>Xa5@#~4sXIJD^$Gjp}2@cuumWQ19B)@FYoaMo1` z*~GHQKh>Hs8L_B4-eWZ+IyBPHO}u5d5o;SzO)}kRSG|`MXlwEXm3+{r@Z-du<$fBdIdC9+vX?QY%HQ2x)aT{JaXn`y+ZlA*@vg@ zK`cp*`rav|DH51-H2hNZ1g%#d>E9Y%(m|v!$0RGZVWu`4PzWiMn&hVNp9_hhFhUHq z9}@U0p?$mKNnjDkNP8+y;ev zkNLisLnm`Y0YNS#*Jz0}oxa`p1JK|S+Qh0Qk1Dw^xu3>2eT_BC$}Uv=k`?}H^v8sO zL!D}?H@3lOJF~vV+O%v7#|YW?EbFkIJ^7o>Le+?8g+!ZcR2da_m2PVfN^)p7)B={a z`9hzHXkBXX0@QOZKei25)B|r>c{gkT#{hyz_s+LHgB+GWl6U|hRxqgi5}RdUAcp>- zd4)vN(lm;{peHt`KDZknLn4jbh`;`ILH{wnVc$Q|}-f%aZ& zM6Z)ZhF4}F7GyR5EPP#yCFn$^vo>XW-19#5P+C1-(E*SCzD8rOc8< z(Z$c0;1bUiN($lFzi3sL-uG&9kf#Pa-(f04T}JX_c9<4fwl<112;b0zWnZ(KbDtC} zv^+LEL~opQ(ME->8%Y>-NF_ZDu-*o-LS9jm46C$H_IqDa-5CpWgYStS#g54(t7{(8 z#*@+n@YE}xsSU(L)-`RR4?SA*WLhedIB00z>3@s6G=6#jb8%**+2^q6J?h5qdttJg zCY^{POFo7H{r>c`_-Q+ku_v!uZ?_dv(DnPas~W7?*S`wq6oFCmgECx-s~^HDZ;eUz z!HHVasmu{%Ym1{Uh1F2TN4G?1lEp;I&HWMRdT!1!vrdt815-%e!b$97!Zq!$kK+K} z9wls}%ZBg{z851PNCynHNMJN&!H#nH|F}znHq)Ma(S24j@pP<-Nk0^H>y5;ox5%)x z=_6J;v$hW}Qab(AezDv}>jb_-pOXr%7YyyxV9+lXj!VwUJiMg4w@Ao?CyPJ2U@-9A ztK|#n4s}}Q5%#VtW&H;76TJh;;%LBsL178^M_Rz6R@j^td4EsaV@63pC)%ucWcnd6 zNgQdOi|D)Y78tY{(#7v=InK5pKpJ&_wVfe+b2>(O@WAjng9d>5h*FkY5{ZK-5|vQzHj>6 zeuF^w9iTEY8cH%Uj2dpv)=&p45J)jHMGseByPq=qO=5ifFHExd2fpO8z6lScqjZXb zW8$$Myo$h=>i%G**tF$59|^DW*I{V1`^5PBGOg!%LJ1*8rSczb{*uHS^&M76%EkC2ABF@7k<&SLuchXqnXa`+&Klf}fUQWs8Dcoa5e zr8vu(f~M6I-PBvz2@(S*d|ibxQ@H3{r^|nS!SvXipeq&oOTKM{0HbH3Rj0;SgSu6pGv-tXCjKxo=sc-`QfO$hCnXU_Mt>Nj|!gN6fU@Xjkt%z zy}b;ttE7vGKFC3OU4z?S$|d5Z*KR!|^ATcoD`_3Ko8!+ag_2syPkJG$^-zuzBxz$m z!K$wNVZMKzaLTp!2Np>|smE+4>D_cx#nHH?_)josuVl4;`oovg|w##!Gd?t>)~ z?{IaaLgYtuZbm6r+FBa-a_VHow=!Iz<$MHP@YjDv!QVNOtDV@)rks4nrv$$kS7ldt zD$uwi_SwO~w(rZjh7V2ML_JAFKC-t5y}Fk=I$B7hwS|pqC6QE~^aR9=_pVsKN)fwu z`iNyaA|$Y%>^M`N*ErMI2&Ca}pNv4%Mz=fTb<`c`*8aK=YW;NY-aS=Q53++SzfJZ9 zv{%cvgXoI=DkkX9)baWl=2v1pF}wq=&-h+&j29S`ZIsA0OtC;7JS?WSv=JEijMyqc zx|AIr+}Pvo4lfueLbQH7D7i<|PWgjw7w4)?N`nO6hVO!7grx@o*AeQevw7qDwt;`e zG2-EWW_s5J;*~2Q#qGjAl)g?NWqA-OqZQB3LQcl)W+_-f$|3ifnI^$eQQ(Nr4ND{_ zQ(-QCzE38f&?m%SmN)t1_LrV-0;1HX(gwCz@IW65T9#QRWhH%yKaSrW`m#fj{Z zmnMpjijaL0Vk>hJ>c<*jq)p$r}NRCT~OINj|22!fx7&pgTU2Hcp@wea5@_7Y`$cI6;5f%g^icu($ zCkfntL*e+5s5>qZ(*I?!Fj?D@h9qWz|NN-JH_gJ;NLv<4&cJy!PqzLe0;bg|515 zDXa$Luadrs$W>}osvO57t%jVqDpIQ{-$WG)=oL%vL`+f@8-EeE$BI2KH`)`2)#L+s@Bk8r%CWoM3Cm^_wGK416j~ z7q^zTUa@wobhIwDzCj8iBawuI=NU`2x%%D)mii^tw&k1U{MFGFnT`e)KD{3uHmsgj z89IARZ8ulPcvPI4@A&Tg5&SDin<1S+o#9u*KM$IR*67wu??rf;c+Pre?3T^so$a4V zUlCjl5Pu5^59u>Yl9^}kU`J`LYU<`WiE7aq#A3$^#FAt^QcF-H%-qg0iK(H@67`+j ztjuc_ZUp}kM!B?rV|~`lQ626@F7^Ab+=)E0{>&}^of~RbU9OqkO9lTH z|M|Y$FY3yMM4hBap;RHQ@T(2n=Ib9-9%F<)!ph`N6aJ#q;&D?(ljMc>#rhTP$>sR; zsL;Gu9O}4S&;r}SEBgJe&3^CcJaT$vz zA_!Xhd65UglbPAB*=xvX@I$GXh`5Vpd+e`i+ZhrEH0d2|A0To=V2IrY=1_ATOa58#oxy&pH$v z=W$oHPJ02-XWgYNm!pwGRCZL>ST>Ku_AjQ0$0uc0O6qY5ah*r#D`av>q}U`1F(Xu0 z897qlsT_Z*aWahKmu}Gh(8oGJedMw78J)QB8Xa^?aP`k{Bj-SypThUAb1BaWYJc%4U^hQIvy^81+Mxbn|!O`A{q zHa3h)#bleGt{qlr^r%anyUZ?rmi>NU2F3}63+ zK6aiBW9YrsN3XRVMQ@Zo7klksqGZHj;$xxP_WgHpwH{SjKohH->Tg5jTw*n>G^1hP z|I?e<)YIhCqf@$#gbgAZPN9;818AO$g`b>8H~LlH&#x&cp+h0#-?Vl0o>7OXV_Xci zA8QupC~Hc~el~n}0K59NpA~`=Ju`3mcM7+&K7f_I0v4YxPL_k6&Wr3uwztLQ{a#Px z3LL@9nv>2#sgYhU#z|zU_!`Lx9Z<$`J@NbH(Q66avJap)xo7&D& z`cjWHaULO~!IH)ZqYI1zV0NmH1b2EU zOpejaUo9K&H=@sx4QDuF4|lCW#BJ8bSoLNI z;SM$|%!x^lx+2-smF+LBu^fOv4`Y;MrF6V8_I|^nX*b^Y9-?*^v!>53aeI3H z%%pKbBNwj8qIG7aK29jhebhD}jvUir4B#Zt9S^iGjCcioF04V2@SR_Q#gO_*gO;>|)?@2Xd))C8#=d1z=0Yin&b}oD)bia2!bSd}32I}xMfnv6Nl7-a&uj@fA6Z9%lDoEJ^el|I=7@uJ- z8qAjT^zq{S#}A;kV}1=*_o`z|+-|CZQaW_`+-~yEKN1u6=B6)f^+zN12^8SmTrxY`Fv7+=e3fw7N%UAPyWWvMI8Zh<-(&0rr)S*e_Bv5FfXmN=BtbNFV zA=cvBxZH|1=vUSbTdc|IyyeE<6=%lCoM-O2%{_D{#6+WE)bU>2OumJB2FjNz-~pOK+MDo(qDiGVa&j!h@TEg+4N207tX5h%FOFP%h- zBc`*HMTYK0?Gje)EEt=t2rq`L_D`bAbr_)~qQ5Q!{ypJg^8HV0Y-U+gn28V}%BY$u>U(-deGfbGq6bCue-d6Ln zTM@ex_no*FzH`LQdHuDwKl?+BzH;aNRCHlF*%#4N3XL8RiMi~XTYN_Bn^?rk&Zyb> z5FNvO{q0%$_TZH4i(`FQgStU7k zJQo_-Nh}#ZiQAmCDnq;yYW&gG(y2}<4`!Vm;k~#^WO**T;wfj#;yiG~Jc+)l9>1u!6L_b!!kohOaUeI{YnhLph6`DSn zYE_JM=nlxb5*dXSmV z6tOwBi;s?31=1KQOoha2O9{Cul(8CEmyIXVj|DHV-@mICN2te5lGxHOSrIBj^`=E# zPGhGtwsNP1oDQ?6R3x}-p{&o{OxzDWX6e?qOMTHI*eu%=w!9@6TgapU_aPhW)7lmIdOVOtkhP*2iKMREjVP`)ezm2X{;X4g&Rc0o+MA|Ckhdw}g?gBTQF17b*V%y4nV&*x|89viORi&I=} z4SFY(pnX8x<*)N_@UeI;7boqaF}w$9jWYcNqY#r}%)(spu^(CMSJ>Er57_T27*N3( z`h5{1`!}p$xhm7juuj;EYw@>i4KGnzbwlL2frD#xN9$o8@Pp7#2@^vi61Q}?VQW8s z9kSoU^gFX(e|SaMNOpEn^Ll*fGp2Z$fSh2|&;((Jy5Hql2xBUcXenuEm;wQeYCweVaw!JZ{{yP|Uh>kWDk|qV{51Iw7R>3G zX`V9uq80iynt#r(9NeRnVI--R-Z-TwUzT%XGW(SG@q7b#S$;h%ZMwyb+1dgTW>7e`pDbRZ_BsyMk>^M5%um~Y2t~Nxo`!QL2&hL! zwocwgTc62^6!ZQWcrw%otGnV=y@@YwarBd6rXkE3^`=VOo%X(Mwhg!Lukx4HzW7{> zmaQJo)Y$&PP>nf2)|U?vPSF14!^fcD!bh%B-w+nYyxD8Aq~=iFuDeq;Ue+eU`{`kQ z$z|(z6}yh(jgi~Y{r!`lo?bLwH$Pl1fXdVIyii~OZOF>s>ILv3i{ksvIlM@Q-;xQcTY5ecs zEVW8`rBR@jn7sz(;j2lDL+~J20+^r1Bv}>yFtYVPefj4$x0s&-5RD3M4eAN+oaAo! z80uWSq<+N!B`I)zoffdnS~$g^`d65PQ7I0z#|)fRJ$&yg{-gP`EDf{9>$0Bf26UKp zw{nH7yYc1sp-f3GVdn&#e_?iG0ti$03pY~W)Cc-u5JdR78_EK<{`arPFQPi0MMPdo zpqK5V)IWMtA7{Q1#Pa9mE!0!8Kz7>x2fa)&c@obZbYe1Uw(^LAoG+&n;FS$0o2pf9 zf$8Z8UJ|74i(|9Uk-XYvHh^&R2AxpG|KkZdA#b=Wnwsa0!Q)>=&@QxoX~E1R!H^fX z;n95x0%7nL7-g&Qvv~n!ry|-(PLDG(#Wfy*Zs#fSm`_nImDYzsPt$WtG@yyGY^oWH zn2A;Q0k=X>cqNoc(vw%&)?43h`aG)pcHm1zv-s_-Kg%El48#?)SLxP2I87%?9;d;k zllR>x<4EknF^{CAuW2!`j(A9~OVxVzqC;;43BZ%j#kd4921J7}#Thjy$d9Ay%j#RqQHbIh<|W=|GI05!PhA9~ z{!4xa77`V62oC#11mg@LLj=)!@0+G5c)jCM za*yQN@2^mY#Y$6V#Jd)=vvj2(5#B@lvw15U`90o?EfEUvZBGOi9|mR5SM{}&z1roo zIAvi;1z%qkbxP9QK+eD~Q5_vjb7ohqJ{lE__;8(D=^M41=JrgZqi;7=?3M3cQ-F*%^vcXjy3OQcOEd@k%qp%il+ar>KYt z%sjir3rmxyPej;rBcL^24QqQ9oel({?xX5a{k-LTyT)oGl-ljK%zTmQ{7^q zCb4ru=bw+jSFQ-1ZJnMCINL5XODIPvPyLm`h@>vxFxM)X(Q}&q?L^pbSME-ZDD5YL zqhC!RjSWqz5fiT(*GmduKWo;Sr@o%eIKIZ_j#O%PFzwHwE0#crq`>p)ucTDBaP3)IA>SAP+AQ1<3?+ZO%{!FGs{)W0?2R$G%bJmd8juGJn4*A)XQ>Sk z^8bd3w%S8^BB=w%0<_-l^xF}-nx$Yc_=)87pbk7EM%HohaD%POvW9aaC{_!p;VmU^q( zvofTG3us$`$v=N;c&G3m4Hm#k*nz*4Jc!Nv32e*eAnMUZNy-7#mY%vSo6iW^yKWG7 zFPpqxmCxW%;wvv7#a#Uu!>+d<&$Nz&tUgLKBN+QatTElz|AH}S3Ne3iY! z@wO6+s~;fNSk~F`0Ye$EJaW{}lQ-G-?a*svjZNM#YvQj8;8z%tk1l?XK&f+TC9~^% zOMgxh(uyy!H-;ENxzi2PI$W_s6%0r(+WDxDiCOAYQSmnX<3nW`_4B4giD5EZTM|cz zAHKd9BHnj|wFL-z3*DP1Kn%sXAQ)R)D}R>nZV4^`lw5c^L;|5bsRCi=7l!AA+!fVT zAm*#{L zM>I_>v;}ckBYrIZb6RuSpgRXnWpVne17i_ z`Q1@q5M{m&BPZ>OuwZaez1EyTLrQ#Gx??S>$zhB_l7+`U6|IDiGMV)w3#l`?NOxqVddOpmu%6BEl*nB@bLr0CAAbW0HWe=L zTX{a4A8LCJ;DmM>nKoW}g_d0_Ehkq>Y0;c1czmI@GQ!`9yMdz$8=76oAti?ud*xU+ zu#DIhjQCOUqkcPGje581!ho9~pw9oTuwL#*pTbu@UKd%n>3ThxS8~RP+ z;?{)kg;`yPp2`CU$Q}T zqXfL7pu2L{-cj&Cv%$|spi?p69SvC-ig>(7lt5{x!VU&5q<+`@*ff4T#rc@e-5&1W zmqrAy-rzoai!KXM7qxzVMmIVLkhk>54|t#-hb6(zH!&6|0s2-F-vRH1hA|&J_WZ+V zT6`J}3!D71i~%4j5CR4u1>gO)3W|V~AT1@0beD8D(%qdyhjh1qbPNbcBPB2b0@4iv(hMEK5ceC- zJ@@>&f9`qi;d#FK_MYcmv-e(m#k&^KDoQfA*d*8>5C~UJR#FXk|3o}^=)mXQPuFD- z=!w0JgoKKmgaoCEtCOXTy#)v)8=a<&p`$)X_*p+WG4VGte&TcA7m~h7&&6XjDnjBC zQJ>34VTtueSg7_i#xTtN*2I_6))pmvS(hQDTDNa1CZ$W{p-Pa(ONC^3m3EYOlp_Eh z&AnD0{Pmp^WPRyEn@pyG6J+4h$;HYX^`440P0kk^F9?N01;f$cvqJBuxHwdmh?}nA zcGBM@L)_Wz0x~1^;M3*;qjXLgiM3#~f4%1N2dO{r*YBpb=F(_*s~N zaNnmnna!;&M(6i^O}~wh*<&%hOTa&}u6ggzO#)eY-H4gaNC+A~CMhKU$h!uoZ-GBJ z#{2(_SrgC!h3}|dnPT^)qkSp1j^d{DOtyf^l-mywV$Y9D z@TmFZz6tygwSl_+m6BFOE0GE}PJKS(?@+{Pe-pM;uJuddOg05f?HLS#{*9*t&)j-y zF#D?es3?N%#s8|X`inV7ad;iHislm6uJ5M&#pq|;UMG-Ksve@?CHfo2c)o?#K8U@p z>2^}=-@=!6>m5NO!Xx&I-YB!5oTw@m!x-xg5-BPQUE+`Qr>CNXc#WR3UO$Y7l2p3U z)Dp2!yH!hGWhV*py@?p}R>8avk_DOnI153SK`Q|5i9EAQQThXpNo#s{JV)i1EQx_c76dy%w}q8@#bAA$ zB@)-R4Y8Kj=8?bnP;F}3D z?2UhWe7xt&(b5*t(T_Wjg6kvsa17PF*3eMfGT2z!yp?;O&X$=}JLi2MIH*v;pq@Eq z-cuVIG>CteE6r}0YiIyc@wZE@t!<9&al-6vIo53c{RGsNg@S^jXzYQ1oaeX0uypU$ zxo6M6X19(E+MYT4JAqvCR9g`9n57WQD;wz@5@9#t)&{a*5E~{c)km@@BrHlag zUJq8Z$sYT6uL(lczCN!;A?+djN`8P2?-o;emfelzjBbFcEh^B0qpeKujpf@d@H>GL z6RVKQy${4LRgH(yhjt=Q_l?IT~q zehPizLLrQsAH(*8cfI|D|CS&S7aVo<#~70<1ivTvkHjB5Iy?@nNv!@bj$Wl+lU|#a z41TPmD9JaW))MDoe(d3yQn^wF(o2#{%Jy_k_^)61$;}`9$R+cU^2cfj(h0 z;WDAAMqi<qZ5hZUj zTZ+Ko9f89q-2Q}Q(ZMgj%2L&B8Os>27@Vf3r$?s0PeZF>redasr=OMQtAoq$gDWK( z%jzpq%3b$d_gHN?FL*9k;-ni&(I(VvuD@-5vt5u|K+(%bH~b+NTGTU}S*BX3TIQm; zkw&LGDW6jEUaCQ*LE$WM%VNZlr9QopP(P-MTf0hpKWau1V&u?vNem-~8Ne(S{JxFZ ziOf>%>gb0&rBNFi%wGM9O!}!A+6LtY`o;$427Wbu2>u6|srVND_3!txccKBofzkJY zcb<0%=nA2Dq4uGg=ojc$xGoZYKTaYhad}BU^BhoA2uygbM$X>vJ7+&3vGr>^CiF zzv(%7%q?Ex#OSZ5i2Dr;pFb+8O1e`^SeDSHjU*9gi8BnOAJUfz=`OVsUGBZR}k6Y;|uH|07{HZaKC$fi?cmXG^dC#acjz zOkoz^v0a}gqmw`N9lJCcGvUQB>oMt}?SWA7Q$GGlM_NYAgk6TUMvh?HJ*5wm z39H5K8f4!(=9|v_?DBbID^}p8SX@-X9PtUmgs>XPJaM>mT#Vie54MH3dSr&LQB3*R z?Mx4$3w=s4cOHT+{s;d)ohWY%^o_&|kSZtSlXTJF8;Yy+ehO=kZi+tbOQ#trmXn*7 zJ4y*n(WduOAQmzi4U1unVEmFAp`m80wl_Mp5>54DR`DSBuW*I;MBE@xij{(}NWZiE zXljuEK_em8AbNRY=#=!jM%u`7L*_V`6Lq2TcGuuk5I z;3S)yqGiTAQ60Ji!a6BZsoI9#h9>jxWATG4X+nu9xeX%PEW9jNQ93fYEW&A4$-LCH zitCh&>Fx?=Sxt_530&fB>JdNbhDlC6)(Y>Fm$dFfZ%u;1Vp3wO=f%5`meylrQgx#sASF19!bhgfUout$Ldp@2#Q&RJRm-$Yum#tN0&p=P> z#^#mNeE4hVtM_i5}Vgh^1#-bl`X(a6V4v%7M+s!^M$Ca{CfR&iNxYazK249RIb z^v}|tPrpdLIK3d>OxnaHW#+A3I<_ftHuIBG>A#mR8Y)RU;yvLtTqbL2^^7@5pI~|2 z{HbYWfv^cuGt^dTFW}xH7a{P$D{zH&Wx7tl@v6dhY;R9U+D~h$ zfcrGN=6lMe(L7N{ZQ)Fv=VIW%{RGONpxf@4{K>#hmv`$QhpB2M8oPAv)O<1nTZ*4n zEx7?o9pM{TAc;NShs%+U8wi!28#*+{M}> zf~DOqefI?C+P|GMcl8+3&ng3(;Q`=C8R&Rq&oefmPhj^e_M?+w`g;0&ej=d~Ar?Q& zo9dg^;j_}3-!)8Zbe%i?j6Ui@i-bk=zTz3PDJm|?PXUgD*oMbMx zZ{Ok~utP#V_%O0j6hjJ94Vlp-H-FZ^Da$|7jXy6-;OcsHjFY#k zm3Q-g`4%_ER$#`L%@H#-xtprr{i|Z7ik_z1(%!2N0{dHY8;Op0aLtBPh#BOl_6LQV zL_rv;DeX5Fdu(J(${^7wWK`LxxhLTuWI!B*q$b}m*hCowLZ-sTqogwBBmh7v@&JZ$ zgl;he0EID#28Bh9s32q+vG6EMxN_`q01)065YqEEJQ7rZYzd8MQ0jzzJQ*(m0+OoWIy4qXyH*K$**F{H)GYyhZu%0f;7r&F$yK%YZ1-`kL>9|_#P!?KaO}VXHITES&)ZHB4wz0Loc!!4!4({%F5B%g!bkj{F zjhD^!^k^&NXg^!5P+76xeYuZsGhHR)$|=#4q*eVz50%B+#%Nd%-Q@#XKMA>yNP|`Qf`(BqBkOF32Br`CN=gn zsc9y<^{FL!*!cc(#;{0xb5&^aKGtq~)Tarhbg87)z@a^7*%wEcnMv{^4Qj|AmDYfG zfdpflD~oI{n@EqlS7i?Qke`Rf^h!^h9^{!0uPz{scO4RAj$JD^v$5KDqtFIp%Bv+8 z)h;optO~&eKUSi_BoUd5IscwTNReC`zpZVKtp<#accdvW+G(dnQXjFQ>!QEQ)wZp^ z;98N^w&{58!wDPsTR7AuZXOQB7JdutMG|!hqfu@9iNB*}Yp=t_m94%`iOMLC@<=T`62a%(beY1W0EJv7j19^gm`IumbZ=YA(H9fGG*TH`@G@bkK zQK3i?qv;?&-2S1;}Sy_yq`8|V=CJe{K7a_oUOs%+1^ z?%GexmYQ?IE38?2`uO7LG}5U(BX=*&vBp|C0eA43Dco19_EOG)n)3#K<|YDWyt_ik zqMDLZGCzX}89tJ&RsR()=Q+=~?^b_g^S)OAdajNtTeJHt5NaYmuddmHFM~(6(n(F8 zq4T((PUw}b*B8yW8KNfEt#b;TuP>JT1z3}P556sIg(UpM#wUIsyz8sMdC)~c`elN9 zar-7HpoR$s2iGP?&tDo8!Hij`wYv+r6B_PpiqK@jrDioq!Jmc<6?Ge6o2ScE_cd-R zx~gE}7~kNjNFbn5;wd5_(`28CYa*i6Uo_0bpUU`XZ-6j1PCzO8=e{Fif%xH%K|%n5;8FSpuUW@-A z)OtVkwT*U%rW5U(s!)_?hG8r-I5e=?qs9*|i{Z<>Wi@0v=Y7qc;ayCVS22r8s39|T zVi?`Lr0;RhH@wg4_hfv}WCeNg$O21Quh@jT#EDusZ`s<3c4lwB8|}C2fPdpqvor4_ z9O~Bnit(W!z)^WJn*Xv9ePqhb*Jc)5XkUbGx#{-}!J($|W^WQPJZgVwt5!?qMx(K1 z_;%2+`C91Et*xV~e?eY1X7O%}>_kXVF6i&g6I3B+=zs17?T*hCQt*2WLxxPud1=#V z!b1q>06vk@IkK8e?r2kpVG)2Co7gSgJizv~C^ld3!`9YkTF*Y02;&Mg-=W&c`J6>q z4mf}4MV2Gg+R}YF|M!F0e-(~JU1eqSS2qyfp7^Ma#`r2lArq-5?hjAOa!p@_Qzw#f zZn8EcoCCqFYu-(;J(s(+qQ1+VAA}y4>)O%vM;W86GK4xl_|LKSKaOU`fYNj;nPPgA zo;BSySxnS?{i}ioHc`Xoxg__cfU0)YJWu({*nqCz>^!y$ceXSG!t4AE@J8;Ip%wp} z0GDrnj%U$CFzS`_t&FK#zbgiTd`O{d7zx#eT0ZVuD4gtP22Kw+Jqg>t?yNmP{`(b` zzwj}7#zlBb`;)m$yl+{xqhz_ zTe27W2XjmHt-3!mQtW9H`r&~{ksv;J>sYG(L6TQg?GlCFWV3{0)c}@bAFe1_dLjfc z5I+AtG3VHU*t&<<2;a2<=H$D`)nEe0A>9`UeU}2~V&`7AX9gxJd_dZFPOnB#0Ah7O zd70UcJcPi6Ar~NMd>>{Iw-U<;99}_@mox^L5GVnBAeYt-p|62dKzF63IdM|J1e;zo zh+s6C8*wRS^1ubDPmT;AVq5qNN>Oa9!AH`-4yZ1+V%O3PK{I-R`wed}S41c~^EpF< z-SU9@R|f?LE>Zz>)VG=yf72CSCsWuEEP%|fm`JZ2JYtc&cw7{)Qs*ruCM&Zy2Bx$c z>Ppz~P@!TT<+d{a7X7@J_;=-JyYi)){lx!?#zq1AMO^;>$Ol1aP)?VLssnUk%d|X= z1fRH5^ml^UpZdKjD>lvL+~b>&U&hU{w2tpl&D85(D{^@6tX8RUZtl2Q&Zyh~q4R_Ymfw+5y=Yx1-l`!FFFXQ|G$_N6 z3=aP%vimk~YpZQ?eR!$Wm#3-u7J5kVeZ5o(Uf3_E&|oWl7xTbypbO^r5)4J$t+P(S z-qNS8S6;vKAf6*rRcT-a{vFk@S_LV%E*Vnpf=TDrVxiiFMq?4BPAbCPT-Arr5#IBEUjT2}&ZHm4pDEW)U@5-wa*+zAuJ-*h zQ{M%1YVKFsB9zG{V^B$7BvxaKzij-jYv(b;=NKv zQ(ELU`($1MDZp1`hvwN&?f2jFjMfA$TF!PTzI|m}O@9zG7VlDKRR4D?4%S8SdVvwI zYbL+uwVMy0cv7s!}99xM1_-ibPxg>~5^7d+=*6<9S(|=Jd!R z(@iPdcY{A*!S{J!>*-N%@=cJh8RYQka+#E7j7OY+y4UQoEmUs#^knAuo_Az0W}+8p z-2#Y|D9DrNtO4DD?^X*GZyW+*@6`?o7aAMNj72Dn{6J|^1OZC$QD4%`P zRGwq3QgCLDV$p)wO;yNT%+_&!vvqwc8T7Y!4Gs7`PGq5l+C05#bU3Vc{N$JA;*r4m ze*NOAMn>z0Igt<C`eSqk6ML@v$quF`~|>o5v5qsLz)kli^<=r2g&i?|rn*V8GO5 zof8mlk(dEON+u%0c?6*XrbgK#1biJNY6Ogp445C2FCJja!Khb{vOa*#`nc4+djwI6 z2K_e{Fo@&DnEkKP>%ccNBi$G#T%N`cHcV)_Z3t$NYZ4mao0>U#H3{l2F& zrg0o{f^+K#4rg=AnXnRW^S_>qv)ZluI%JX?g+l{rSV3L2goNc?Ub1SHc~(##3=cjv z(QqK=eV*;0-33$SZ&EUxiQWjZYqEV-DO{)I(q3>ACZ=6TZtBs&#SfhP=@lj4ff>2> z_6ZZ5sLH_PwUdphMX5-Z#%?xj%-OMV#;}9eCtm44*yEiBXkZ}5&8VQyp#tw0znh8DVN^W$^o))>o6EO7Y91p z#GjI#7^Tok;A)P9{P!oT>!_j&YhWRoY!;p3!dlafUn8VV268CnrF~(*y&&_QRV!-) z77o5Cm{y(V)aAU$HCkvCKehUordMFhbl5q)Tpp+A6ngmfw!6BH0d0L|?2Qczi)Te| zSDTctA z-_>s4U(!yfbPrhgGAv2{Te998r;5r|1+lD z=E_Zz11YVVP7>Axe~WiygLBUW%6JB>C|LCgU<=bRAsRywKx@Z!ZOMAs-d7z5!loDb zc{%WVb~Vb+n>l_&xoy#-YNE=)-4{qHlwF;%s6VyNdPeWHyj9i~cmMhG*8M5OgOL}Z zCBWWki2gnGGXa_@cHiC`T?o8xmRVk?wY0-s*z_u%wRtR--5whhcQg0_cSiqNhdtIq z`~;VJ;f?qF`$n#2Jy7#-%-B@XCfaWoExQfr)&Y@@_0%^NZRPDUi`9|qTO+Ft)ccv0 zoOea7Qo2DvmqtMDq0*MWnQ5)mZj790{zNw1GIgXe!9%Tmo#`NyZ57s;_t=!sb$3uQ zv|+cDk%s5jDMb^KRnRY4XhDI3%L*zm<|*!oNf6qNruBF7`-k&XTaWt~<5@@8?~N|E znV}}t3=yvsn1hXGzli#i9FBB58d29@_j@D5Z}-QPjTatVBhUA`L$=M2^wBB81H9Jt z(FK=|QvP`3;DA}sgCjFmI_uWX=2>&J4hz|=9ZUBlvP6bFz+t}4R&UqS)q}v{X(8q2(B$3Is1rm1v+={ZM+diCi;;9pzRFgMiL0r zPeve1JSH1Jyb!1W3f;YN5h%(sAWi&t775-lifbNV)i-k7^w5RIU`=v?e|%YpZ>ok%)$NuYrm;ioIfoJ^^{Gv(FxOey>J1_Ze+E=9w61MmShY(F9hzn9T#ubZKF4_Rpc$w= z4}U96uy3PR)b5cc{Mi}@Qoes~lefR!mUsAF&!=2XWMbO)PNnQ_>H6EE>#=xVjTtQR z8XTsn{Me`)k172QUKrmTevUCr-(Skxxbu2RKA=Oe+SN7w#WHA6mxB%94RtuN?IyQ* z)6Hr6WjuEV`m0xCj;($}5GPxg)hODf*-qC_d*`eUwmL5tJWHA1Hqk7)e}ZShkM|oO z8$12-_BM?#>ICi{mbskwY^|&}Q6KvjlzgVc!=CNROYm&&S)(tC&}tk=0T~KDkO90& zkWi(Sx(#;;=bCp??;L-Po@*bB^DZF;cr0NHYU|*B zG?%}by&$j{2>)Fb=XqK*7E&TianpLn3x?w7R$|BVh5RY^fL63K3g(L$^hn&l)cPN! fMgL!T*Tb`NG86#@CI<$@zmVjllq74!KZg7-6oO9d literal 0 HcmV?d00001 diff --git a/src/assets/image/sys/invite/phone-0.png b/src/assets/image/sys/invite/phone-0.png new file mode 100644 index 0000000000000000000000000000000000000000..d13c900dfd0cb0048e9ba1911b4d8c6c36fac2d4 GIT binary patch literal 11035 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 G&;JK_8l7MO literal 0 HcmV?d00001 diff --git a/src/assets/image/sys/invite/phone-1.png b/src/assets/image/sys/invite/phone-1.png new file mode 100644 index 0000000000000000000000000000000000000000..9b0ed4005d3d2bbd72abd6d90b3693ee365ef720 GIT binary patch literal 13076 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 literal 0 HcmV?d00001 diff --git a/src/assets/shopDecoration/NoticeBar.png b/src/assets/shopDecoration/NoticeBar.png new file mode 100644 index 0000000000000000000000000000000000000000..54bbad9d248ae900b1a0acea4bb1605d04ed8a94 GIT binary patch literal 5352 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 literal 0 HcmV?d00001 diff --git a/src/assets/shopDecoration/bottom.png b/src/assets/shopDecoration/bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..3acb27be32a976ced6e8a61a93a4bf6734737701 GIT binary patch literal 2977 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 literal 0 HcmV?d00001 diff --git a/src/assets/shopDecoration/layoutFive.png b/src/assets/shopDecoration/layoutFive.png new file mode 100644 index 0000000000000000000000000000000000000000..c5749a7dac3c13b673cf4d7ef27f5caab8b00d66 GIT binary patch literal 921 zcmeAS@N?(olHy`uVBq!ia0vp^JAk-?gAGVJ-nJ-aU|>wlbaoENc6N8p&&e+eE=WvH zb;&F)$VsdWFlJ!Tn3$Z95ag+&aUwA>A>qVXZB4GC@}Q26o}h&K69@QO_V6U}aCM$M z%G$@sXy>5HV<073v-{Wqjz#*fo6cCNnr`*n8h7A&(y|X%yVtwSHn_T&VcnD~k5Ux= zvUdbe=I-*6kdO#&$a(r{5|hAg<`ZI?OjcYc<}oKNcfKL*@J5B>H%El8#{}aEwah2N zJkEKr%sTjk`NTC(Cn10LBb@rq&saGcTGP+s{jA54+93&{4)nWlpp&4f4}(O|NqMk13t^LwJ}#Rh$^POGd+IsH!!e2d%8G= zR4~51bda}+LBz#zgJ|}~tn7_qZyu<|^<=lbR@-pq{^Jh<3Jwhnj7%&XgObr$FJdu& z{p(-P`fcAmkGy}m-T&?5%YW~@N;P77&BV5^&hc;XfdiA>cjzTNcrAX#o|VU@vV}$x j9)mcT!14FPwb9(EKz!ec6}#5~vmAq`tDnm{r-UW|Fr6pq literal 0 HcmV?d00001 diff --git a/src/assets/shopDecoration/layoutFour.png b/src/assets/shopDecoration/layoutFour.png new file mode 100644 index 0000000000000000000000000000000000000000..71aff075b1c85f4ed88e676182249b21d7cf9177 GIT binary patch literal 977 zcmeAS@N?(olHy`uVBq!ia0vp^JAk-?gAGVJ-nJ-aU|>wlbaoENc6N8p&&e+eE=WvH zb;&F)$VsdWFlJ!Tn3$Z95ag+&aUwA>A>qVXZB4GC@}Q26o}h&K69@QO_V6U}aCM$M z%G$@sXy>5HV<073v-{Wqjz#*fo6cCNnr`*n8h7A&(y|X%yVtwSHn_T&VcnD~k5Ux= zvUdbe=I-*6kdO#&$a(r{5|hAg<`ZI?OjcYc<}oKNcfKL*@J5B>H%El8#{}aEwah2N zJkEKr%sTjk`NTC(Cn10LBb@rq&saGcTGP+s{jA54+93&{4)nWlpp&4f4}(O|NqMk13t^LwJ}#Rh$^POGd+IsHv~ko&bY#;WyeZ13jTF|lw6C^$4QFb)jkIcwkb z-=8i2pDB&2u@-1KZ!N^kw0(QFt`1p)vn%@N5o=3Wp=Q zjLi3UEjJT1_|VW1&BV5^)IV1#;Q^!Ib{3wR*Yj?<95}$Nl*cLYwlbaoENc6N8p&&e+eE=WvH zb;&F)$VsdWFlJ!Tn3$Z95ag+&aUwA>A>qVXZB4GC@}Q26o}h&K69@QO_V6U}aCM$M z%G$@sXy>5HV<073v-{Wqjz#*fo6cCNnr`*n8h7A&(y|X%yVtwSHn_T&VcnD~k5Ux= zvUdbe=I-*6kdO#&$a(r{5|hAg<`ZI?OjcYc<}oKNcfKL*@J5B>H%El8#{}aEwah2N zJkEKr%sTjk`NTC(Cn10LBb@rq&saGcTGP+s{jA54+93&{4)nWlpp&4f4}(O|NqMk13t^LwJ}#Rh$^POGd+IsHvjvxaDrc6@!j*5_UVl;nEq>s>u}d_bHs4GWM!Fm zjoa^ml!v~;hb?ghOxGQ%7#o*=Z4%zWc8QzAX07;~1Ev$=93EuueZaD=@e31^|7%wD z0^TL!0u@pE7LC~odm9d1t~$sW!#u={+T6gZlfcLwaezr|11599o&%-!&!;eM%+-G| zdFNYufBg@89_2bT=Knr_ncHT4g>=A!+y6d)VLGpUk4@yqw*NMJ4}9+0&d9oNAUYZz+f;pX2{2-G&xl+ zn6IucXQsq20Q)|(89aztII6g*=y}0D6_pwX=Hu*p?04lhuY>slthJi6ov)2Z9z@RW zo?<;}bw~jGeJ3v53}q@6pY2Z0D;rBVh?MpR)pZ;|>&Ds4KjEtOJ@T)t{U62UZJ z|6!8&R7c+?0LbI8wrAXxjHlcX0))`dmFgc|uxPo?pg z!^@3S)??#$2W`Q{M8y6ho_pD+yO6(`K6-e&_+k1A!zx*9iaII9&qr`)L*5cL{MM%J zenP8$=7m51@#-W`PXW+UE!GAWKSl3V5F%AY0MoAHE*iKMAD{qOm=Rh*XsE3@Anf~c zM49KKI}8Hu-#ZWnD1-Zyf#}HkBycD!DGJ~{nLewqhs*&>lzv< zMS!pF#$LtY~w|3_!E@`JbQXC~$hdn7d>jmLbg|FMu<4u$GipNb?m^cF3Hoc#>fJ`pxa7X-Klhr){0nf%E4 z#^tGgBqZH$mq(KhJ+99~WhYZ?kuxTxj2W@~oeb+fw8hbfG)5~&L>i&yYQIpJ?dWvw zGp|r*8M~b*nir3{`gGRq8o9+t-$opP=)j2shnp;}zY+wnFP1HMtrUXUDqbR;s+crp zxquyCiE&O#G!#`YKpUkSjt1s51}9BGHzR>`rt9i-dIn+$*x-rE3TC0V$os)&y{vbK zG$6F>+8(lsGfynMGNEbNOJ5)Bi0EH?ExE2Es(e`;l$qabcqPMFFw-H9oy-=@Hc4tH zCjX`ms?dbfow#*FA=ShoE4%&HEt!nPVR#L4@XJdj)RTJ6R`l@N%hDwb-W1Nx7m>@@ zj(KB#$+8hwCEpcCo={pIQ)3h@=Z`Q-fKq;t7O>b3O{B?g fo=}STzgFuyuF}zRJolr8?5hFTvre`gYa;6}I6FBA literal 0 HcmV?d00001 diff --git a/src/assets/shopDecoration/layoutThree.png b/src/assets/shopDecoration/layoutThree.png new file mode 100644 index 0000000000000000000000000000000000000000..26fe520bfae5bd2312c71e446bad22897af7a25a GIT binary patch literal 1218 zcmeAS@N?(olHy`uVBq!ia0vp^JAk-?gAGVJ-nJ-aU|>wlbaoENc6N8p&&e+eE=WvH zb;&F)$VsdWFlJ!Tn3$Z95ag+&aUwA>A>qVXZB4GC@}Q26o}h&K69@QO_V6U}aCM$M z%G$@sXy>5HV<073v-{Wqjz#*fo6cCNnr`*n8h7A&(y|X%yVtwSHn_T&VcnD~k5Ux= zvUdbe=I-*6kdO#&$a(r{5|hAg<`ZI?OjcYc<}oKNcfKL*@J5B>H%El8#{}aEwah2N zJkEKr%sTjk`NTC(Cn10LBb@rq&saGcTGP+s{jA54+93&{4)nWlpp&4f4}(O|NqMk13t^LwJ}#Rh$^POGd+IsHvYY`E(veF!uXxw|w449F)YgW{o@-D1^DEcuZ(rVg z>J-NsZiyeiSikx+GW*Lt+||&yK0e^Th{1;^g6l>lMuTKnB!&aLQN5p`EHfMpYd Mr>mdKI;Vst0H(Ve@&Et; literal 0 HcmV?d00001 diff --git a/src/assets/shopDecoration/layoutTwo.png b/src/assets/shopDecoration/layoutTwo.png new file mode 100644 index 0000000000000000000000000000000000000000..16cb085cc4302ef84649ceebaf396b5551ad69ea GIT binary patch literal 1411 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]|=t[f]<>6,u[h++]=128|63&s):s<55296||s>=57344?(u[h++]=224|s>>12,u[h++]=128|s>>6&63,u[h++]=128|63&s):(s=65536+((1023&s)<<10|1023&t.charCodeAt(++f)),u[h++]=240|s>>18,u[h++]=128|s>>12&63,u[h++]=128|s>>6&63,u[h++]=128|63&s);else for(h=this.start;f>2]|=s<>2]|=(192|s>>6)<>2]|=(128|63&s)<=57344?(n[h>>2]|=(224|s>>12)<>2]|=(128|s>>6&63)<>2]|=(128|63&s)<>2]|=(240|s>>18)<>2]|=(128|s>>12&63)<>2]|=(128|s>>6&63)<>2]|=(128|63&s)<=64?(this.start=h-64,this.hash(),this.hashed=!0):this.start=h}return this.bytes>4294967295&&(this.hBytes+=this.bytes/4294967296<<0,this.bytes=this.bytes%4294967296),this}},t.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var t=this.blocks,r=this.lastByteIndex;t[r>>2]|=u[3&r],r>=56&&(this.hashed||this.hash(),t[0]=t[16],t[16]=t[1]=t[2]=t[3]=t[4]=t[5]=t[6]=t[7]=t[8]=t[9]=t[10]=t[11]=t[12]=t[13]=t[14]=t[15]=0),t[14]=this.bytes<<3,t[15]=this.hBytes<<3|this.bytes>>>29,this.hash()}},t.prototype.hash=function(){var t,r,e,i,s,h,f=this.blocks;this.first?r=((r=((t=((t=f[0]-680876937)<<7|t>>>25)-271733879<<0)^(e=((e=(-271733879^(i=((i=(-1732584194^2004318071&t)+f[1]-117830708)<<12|i>>>20)+t<<0)&(-271733879^t))+f[2]-1126478375)<<17|e>>>15)+i<<0)&(i^t))+f[3]-1316259209)<<22|r>>>10)+e<<0:(t=this.h0,r=this.h1,e=this.h2,r=((r+=((t=((t+=((i=this.h3)^r&(e^i))+f[0]-680876936)<<7|t>>>25)+r<<0)^(e=((e+=(r^(i=((i+=(e^t&(r^e))+f[1]-389564586)<<12|i>>>20)+t<<0)&(t^r))+f[2]+606105819)<<17|e>>>15)+i<<0)&(i^t))+f[3]-1044525330)<<22|r>>>10)+e<<0),r=((r+=((t=((t+=(i^r&(e^i))+f[4]-176418897)<<7|t>>>25)+r<<0)^(e=((e+=(r^(i=((i+=(e^t&(r^e))+f[5]+1200080426)<<12|i>>>20)+t<<0)&(t^r))+f[6]-1473231341)<<17|e>>>15)+i<<0)&(i^t))+f[7]-45705983)<<22|r>>>10)+e<<0,r=((r+=((t=((t+=(i^r&(e^i))+f[8]+1770035416)<<7|t>>>25)+r<<0)^(e=((e+=(r^(i=((i+=(e^t&(r^e))+f[9]-1958414417)<<12|i>>>20)+t<<0)&(t^r))+f[10]-42063)<<17|e>>>15)+i<<0)&(i^t))+f[11]-1990404162)<<22|r>>>10)+e<<0,r=((r+=((t=((t+=(i^r&(e^i))+f[12]+1804603682)<<7|t>>>25)+r<<0)^(e=((e+=(r^(i=((i+=(e^t&(r^e))+f[13]-40341101)<<12|i>>>20)+t<<0)&(t^r))+f[14]-1502002290)<<17|e>>>15)+i<<0)&(i^t))+f[15]+1236535329)<<22|r>>>10)+e<<0,r=((r+=((i=((i+=(r^e&((t=((t+=(e^i&(r^e))+f[1]-165796510)<<5|t>>>27)+r<<0)^r))+f[6]-1069501632)<<9|i>>>23)+t<<0)^t&((e=((e+=(t^r&(i^t))+f[11]+643717713)<<14|e>>>18)+i<<0)^i))+f[0]-373897302)<<20|r>>>12)+e<<0,r=((r+=((i=((i+=(r^e&((t=((t+=(e^i&(r^e))+f[5]-701558691)<<5|t>>>27)+r<<0)^r))+f[10]+38016083)<<9|i>>>23)+t<<0)^t&((e=((e+=(t^r&(i^t))+f[15]-660478335)<<14|e>>>18)+i<<0)^i))+f[4]-405537848)<<20|r>>>12)+e<<0,r=((r+=((i=((i+=(r^e&((t=((t+=(e^i&(r^e))+f[9]+568446438)<<5|t>>>27)+r<<0)^r))+f[14]-1019803690)<<9|i>>>23)+t<<0)^t&((e=((e+=(t^r&(i^t))+f[3]-187363961)<<14|e>>>18)+i<<0)^i))+f[8]+1163531501)<<20|r>>>12)+e<<0,r=((r+=((i=((i+=(r^e&((t=((t+=(e^i&(r^e))+f[13]-1444681467)<<5|t>>>27)+r<<0)^r))+f[2]-51403784)<<9|i>>>23)+t<<0)^t&((e=((e+=(t^r&(i^t))+f[7]+1735328473)<<14|e>>>18)+i<<0)^i))+f[12]-1926607734)<<20|r>>>12)+e<<0,r=((r+=((h=(i=((i+=((s=r^e)^(t=((t+=(s^i)+f[5]-378558)<<4|t>>>28)+r<<0))+f[8]-2022574463)<<11|i>>>21)+t<<0)^t)^(e=((e+=(h^r)+f[11]+1839030562)<<16|e>>>16)+i<<0))+f[14]-35309556)<<23|r>>>9)+e<<0,r=((r+=((h=(i=((i+=((s=r^e)^(t=((t+=(s^i)+f[1]-1530992060)<<4|t>>>28)+r<<0))+f[4]+1272893353)<<11|i>>>21)+t<<0)^t)^(e=((e+=(h^r)+f[7]-155497632)<<16|e>>>16)+i<<0))+f[10]-1094730640)<<23|r>>>9)+e<<0,r=((r+=((h=(i=((i+=((s=r^e)^(t=((t+=(s^i)+f[13]+681279174)<<4|t>>>28)+r<<0))+f[0]-358537222)<<11|i>>>21)+t<<0)^t)^(e=((e+=(h^r)+f[3]-722521979)<<16|e>>>16)+i<<0))+f[6]+76029189)<<23|r>>>9)+e<<0,r=((r+=((h=(i=((i+=((s=r^e)^(t=((t+=(s^i)+f[9]-640364487)<<4|t>>>28)+r<<0))+f[12]-421815835)<<11|i>>>21)+t<<0)^t)^(e=((e+=(h^r)+f[15]+530742520)<<16|e>>>16)+i<<0))+f[2]-995338651)<<23|r>>>9)+e<<0,r=((r+=((i=((i+=(r^((t=((t+=(e^(r|~i))+f[0]-198630844)<<6|t>>>26)+r<<0)|~e))+f[7]+1126891415)<<10|i>>>22)+t<<0)^((e=((e+=(t^(i|~r))+f[14]-1416354905)<<15|e>>>17)+i<<0)|~t))+f[5]-57434055)<<21|r>>>11)+e<<0,r=((r+=((i=((i+=(r^((t=((t+=(e^(r|~i))+f[12]+1700485571)<<6|t>>>26)+r<<0)|~e))+f[3]-1894986606)<<10|i>>>22)+t<<0)^((e=((e+=(t^(i|~r))+f[10]-1051523)<<15|e>>>17)+i<<0)|~t))+f[1]-2054922799)<<21|r>>>11)+e<<0,r=((r+=((i=((i+=(r^((t=((t+=(e^(r|~i))+f[8]+1873313359)<<6|t>>>26)+r<<0)|~e))+f[15]-30611744)<<10|i>>>22)+t<<0)^((e=((e+=(t^(i|~r))+f[6]-1560198380)<<15|e>>>17)+i<<0)|~t))+f[13]+1309151649)<<21|r>>>11)+e<<0,r=((r+=((i=((i+=(r^((t=((t+=(e^(r|~i))+f[4]-145523070)<<6|t>>>26)+r<<0)|~e))+f[11]-1120210379)<<10|i>>>22)+t<<0)^((e=((e+=(t^(i|~r))+f[2]+718787259)<<15|e>>>17)+i<<0)|~t))+f[9]-343485551)<<21|r>>>11)+e<<0,this.first?(this.h0=t+1732584193<<0,this.h1=r-271733879<<0,this.h2=e-1732584194<<0,this.h3=i+271733878<<0,this.first=!1):(this.h0=this.h0+t<<0,this.h1=this.h1+r<<0,this.h2=this.h2+e<<0,this.h3=this.h3+i<<0)},t.prototype.hex=function(){this.finalize();var t=this.h0,r=this.h1,e=this.h2,i=this.h3;return n[t>>4&15]+n[15&t]+n[t>>12&15]+n[t>>8&15]+n[t>>20&15]+n[t>>16&15]+n[t>>28&15]+n[t>>24&15]+n[r>>4&15]+n[15&r]+n[r>>12&15]+n[r>>8&15]+n[r>>20&15]+n[r>>16&15]+n[r>>28&15]+n[r>>24&15]+n[e>>4&15]+n[15&e]+n[e>>12&15]+n[e>>8&15]+n[e>>20&15]+n[e>>16&15]+n[e>>28&15]+n[e>>24&15]+n[i>>4&15]+n[15&i]+n[i>>12&15]+n[i>>8&15]+n[i>>20&15]+n[i>>16&15]+n[i>>28&15]+n[i>>24&15]},t.prototype.toString=t.prototype.hex,t.prototype.digest=function(){this.finalize();var t=this.h0,r=this.h1,e=this.h2,i=this.h3;return[255&t,t>>8&255,t>>16&255,t>>24&255,255&r,r>>8&255,r>>16&255,r>>24&255,255&e,e>>8&255,e>>16&255,e>>24&255,255&i,i>>8&255,i>>16&255,i>>24&255]},t.prototype.array=t.prototype.digest,t.prototype.arrayBuffer=function(){this.finalize();var t=new ArrayBuffer(16),r=new Uint32Array(t);return r[0]=this.h0,r[1]=this.h1,r[2]=this.h2,r[3]=this.h3,t},t.prototype.buffer=t.prototype.arrayBuffer,t.prototype.base64=function(){for(var t,r,e,i="",s=this.array(),h=0;h<15;)t=s[h++],r=s[h++],e=s[h++],i+=p[t>>>2]+p[63&(t<<4|r>>>4)]+p[63&(r<<2|e>>>6)]+p[63&e];return t=s[h],i+=p[t>>>2]+p[t<<4&63]+"=="};var _=v();f?module.exports=_:(i.md5=_,o&&define(function(){return _}))}(); \ No newline at end of file diff --git a/src/components/ExtInfos/Index.vue b/src/components/ExtInfos/Index.vue new file mode 100644 index 00000000..d6cd9848 --- /dev/null +++ b/src/components/ExtInfos/Index.vue @@ -0,0 +1,211 @@ + + + + + \ No newline at end of file diff --git a/src/components/MyTransfer/index.vue b/src/components/MyTransfer/index.vue new file mode 100644 index 00000000..248d0201 --- /dev/null +++ b/src/components/MyTransfer/index.vue @@ -0,0 +1,96 @@ + + + + \ No newline at end of file diff --git a/src/components/TopModules/top_modules_oa.js b/src/components/TopModules/top_modules_oa.js new file mode 100644 index 00000000..1b60c726 --- /dev/null +++ b/src/components/TopModules/top_modules_oa.js @@ -0,0 +1,85 @@ +var topModules= +[ + { + moduleName:"待审批", + topModuleId:'oa', + link:"/mdp/workflow/ru/task/TaskListAssigneeToMe", + icon: require("../../assets/image/platform/module-task.png"), + isHighlight:false, + moduleType : '1' // 模块类型,1-系统类模块 2-系统外模块 + }, + { + moduleName:"日程", + topModuleId:'oa', + link:"/oa/rc/rcScheduleMy/RcScheduleMyMng", + icon: require("../../assets/image/platform/module-schedule.png"), + isHighlight:false, + moduleType : '1' // 模块类型,1-系统类模块 2-系统外模块 + }, + { + moduleName:"会议", + topModuleId:'oa', + link:"/oa/meet/meetMeeting/MeetMeetingRequire", + icon: require("../../assets/image/platform/module-meeting.png"), + isHighlight:false, + moduleType : '1' // 模块类型,1-系统类模块 2-系统外模块 + }, + { + moduleName:"办公用品", + topModuleId:'oa', + link:"/oa/om/omCategory/OmCategoryMng", + icon: require("../../assets/image/platform/module-office.png"), + isHighlight:false, + moduleType : '1' // 模块类型,1-系统类模块 2-系统外模块 + }, + { + moduleName:"档案", + topModuleId:'oa', + link:"/oa/hr/user/employeeInfo", + icon: require("../../assets/image/platform/module-record.png"), + isHighlight:false, + moduleType : '1' // 模块类型,1-系统类模块 2-系统外模块 + }, + { + moduleName:"通讯录", + topModuleId:'sys', + link:"/mdp/sys/user/deptUserMng", + icon: require("../../assets/image/platform/module-addressBook.png"), + isHighlight:false, + moduleType : '2' // 模块类型,1-系统类模块 2-系统外模块 + }, + { + moduleName:"合同", + topModuleId:'oa', + link:"/oa/ht/contractCard/ContractCardMng", + icon: require("../../assets/image/platform/module-contract.png"), + isHighlight:false, + moduleType : '1' // 模块类型,1-系统类模块 2-系统外模块 + }, + { + moduleName:"财务", + topModuleId:'ac', + link:"", + icon: require("../../assets/image/platform/module-finance.png"), + isHighlight:false, + moduleType : '2' // 模块类型,1-系统类模块 2-系统外模块 + }, + { + moduleName:"项目", + topModuleId:'xm', + link:"/xm/core/xmProject/XmProjectMng", + icon: require("../../assets/image/platform/module-project.png"), + isHighlight:false, + moduleType : '1' // 模块类型,1-系统类模块 2-系统外模块 + }, + { + moduleName:"资产", + topModuleId:'oa', + link:"/oa/erp/pur/require/RequireMng", + icon: require("../../assets/image/platform/module-property.png"), + isHighlight:false, + moduleType : '1' // 模块类型,1-系统类模块 2-系统外模块 + }, +] + +export default topModules \ No newline at end of file diff --git a/src/components/TopModules/top_modules_sys.js b/src/components/TopModules/top_modules_sys.js new file mode 100644 index 00000000..1b60c726 --- /dev/null +++ b/src/components/TopModules/top_modules_sys.js @@ -0,0 +1,85 @@ +var topModules= +[ + { + moduleName:"待审批", + topModuleId:'oa', + link:"/mdp/workflow/ru/task/TaskListAssigneeToMe", + icon: require("../../assets/image/platform/module-task.png"), + isHighlight:false, + moduleType : '1' // 模块类型,1-系统类模块 2-系统外模块 + }, + { + moduleName:"日程", + topModuleId:'oa', + link:"/oa/rc/rcScheduleMy/RcScheduleMyMng", + icon: require("../../assets/image/platform/module-schedule.png"), + isHighlight:false, + moduleType : '1' // 模块类型,1-系统类模块 2-系统外模块 + }, + { + moduleName:"会议", + topModuleId:'oa', + link:"/oa/meet/meetMeeting/MeetMeetingRequire", + icon: require("../../assets/image/platform/module-meeting.png"), + isHighlight:false, + moduleType : '1' // 模块类型,1-系统类模块 2-系统外模块 + }, + { + moduleName:"办公用品", + topModuleId:'oa', + link:"/oa/om/omCategory/OmCategoryMng", + icon: require("../../assets/image/platform/module-office.png"), + isHighlight:false, + moduleType : '1' // 模块类型,1-系统类模块 2-系统外模块 + }, + { + moduleName:"档案", + topModuleId:'oa', + link:"/oa/hr/user/employeeInfo", + icon: require("../../assets/image/platform/module-record.png"), + isHighlight:false, + moduleType : '1' // 模块类型,1-系统类模块 2-系统外模块 + }, + { + moduleName:"通讯录", + topModuleId:'sys', + link:"/mdp/sys/user/deptUserMng", + icon: require("../../assets/image/platform/module-addressBook.png"), + isHighlight:false, + moduleType : '2' // 模块类型,1-系统类模块 2-系统外模块 + }, + { + moduleName:"合同", + topModuleId:'oa', + link:"/oa/ht/contractCard/ContractCardMng", + icon: require("../../assets/image/platform/module-contract.png"), + isHighlight:false, + moduleType : '1' // 模块类型,1-系统类模块 2-系统外模块 + }, + { + moduleName:"财务", + topModuleId:'ac', + link:"", + icon: require("../../assets/image/platform/module-finance.png"), + isHighlight:false, + moduleType : '2' // 模块类型,1-系统类模块 2-系统外模块 + }, + { + moduleName:"项目", + topModuleId:'xm', + link:"/xm/core/xmProject/XmProjectMng", + icon: require("../../assets/image/platform/module-project.png"), + isHighlight:false, + moduleType : '1' // 模块类型,1-系统类模块 2-系统外模块 + }, + { + moduleName:"资产", + topModuleId:'oa', + link:"/oa/erp/pur/require/RequireMng", + icon: require("../../assets/image/platform/module-property.png"), + isHighlight:false, + moduleType : '1' // 模块类型,1-系统类模块 2-系统外模块 + }, +] + +export default topModules \ No newline at end of file diff --git a/src/components/Upload/singleImage.vue b/src/components/Upload/singleImage.vue new file mode 100644 index 00000000..18b892fe --- /dev/null +++ b/src/components/Upload/singleImage.vue @@ -0,0 +1,123 @@ + + + + + diff --git a/src/components/Upload/singleImage2.vue b/src/components/Upload/singleImage2.vue new file mode 100644 index 00000000..bafc14d0 --- /dev/null +++ b/src/components/Upload/singleImage2.vue @@ -0,0 +1,118 @@ + + + + + diff --git a/src/components/Upload/singleImage3.vue b/src/components/Upload/singleImage3.vue new file mode 100644 index 00000000..8168bd53 --- /dev/null +++ b/src/components/Upload/singleImage3.vue @@ -0,0 +1,145 @@ + + + + + diff --git a/src/components/selectShopLocation/selectDept.vue b/src/components/selectShopLocation/selectDept.vue new file mode 100644 index 00000000..4038a922 --- /dev/null +++ b/src/components/selectShopLocation/selectDept.vue @@ -0,0 +1,184 @@ + + + + + diff --git a/src/icons/svg/edit.svg b/src/icons/svg/edit.svg new file mode 100644 index 00000000..d26101f2 --- /dev/null +++ b/src/icons/svg/edit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/svg/eye-open.svg b/src/icons/svg/eye-open.svg new file mode 100644 index 00000000..88dcc98e --- /dev/null +++ b/src/icons/svg/eye-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/svg/list.svg b/src/icons/svg/list.svg new file mode 100644 index 00000000..20259edd --- /dev/null +++ b/src/icons/svg/list.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/svg/nested.svg b/src/icons/svg/nested.svg new file mode 100644 index 00000000..06713a86 --- /dev/null +++ b/src/icons/svg/nested.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/svg/return.svg b/src/icons/svg/return.svg new file mode 100644 index 00000000..c0a5dbad --- /dev/null +++ b/src/icons/svg/return.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/svg/shopping.svg b/src/icons/svg/shopping.svg new file mode 100644 index 00000000..87513e7c --- /dev/null +++ b/src/icons/svg/shopping.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/svg/tree-table.svg b/src/icons/svg/tree-table.svg new file mode 100644 index 00000000..8aafdb82 --- /dev/null +++ b/src/icons/svg/tree-table.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/svg/tree.svg b/src/icons/svg/tree.svg new file mode 100644 index 00000000..dd4b7dd2 --- /dev/null +++ b/src/icons/svg/tree.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/lang/zh_arc.js b/src/lang/zh_arc.js new file mode 100644 index 00000000..72a3ff73 --- /dev/null +++ b/src/lang/zh_arc.js @@ -0,0 +1,29 @@ +export default { + route: { + dashboard: '首页', + arc:'内容中心', + ArcIndex:'文章管理', + ArchiveAdd:'创建文章', + ArchiveDetail:'浏览文章', + ArchiveCommentMng:'评论管理', + ArchiveMngQuery:'文档查阅', + ArchiveListFlow:'流程归档查阅', + ArchiveAttachmentMng:'附件管理', + ArcCategoryMng:'文章分类管理', + CategoryTreeTable:'文章分类定义', + ChannelMng: '频道定义', + ImageCategoryMng:'图片分类定义', + ImageMng:'图片管理', + MaterialMng:'素材管理', + ImageMng1:'图片管理1', + arcSend:'内容分发', + SendPlanMng:'分发计划管理', + + aq:'咨询中心', + AqQuestionMng:'问题管理', + AqCategoryMng:'问题分类', + AqFaqMng:'常见问题管理', + AqQuestionAdd:'发起咨询' + + } +} diff --git a/src/lang/zh_mallm.js b/src/lang/zh_mallm.js new file mode 100644 index 00000000..78377ab4 --- /dev/null +++ b/src/lang/zh_mallm.js @@ -0,0 +1,102 @@ +export default { + route: { + dashboard: '首页', + orders: '订单', + stock:'库存', + OrdersMng: '订单列表', + OutBillMng: '出库', + OrdersDeliver: '发货', + OrdersReceiptConfirm:'确认收货', + OrdersMngUnpaid:'未付款', + OrdersMngDelivered:'待发货', + OrdersMngShipped:'已发货', + OrdersMngEvaluated:'待评价', + OrdersMngService:'退款/售后', + OrdersMngCancel:'订单取消', + OrdersMngCompleted:'订单完成', + GoodsMng: '商品管理', + CategoryTypeComplexSet:'商品属性标签管理', + GoodsRecycleBin: '商品回收站', + GoodsProductMng: '商品库存', + GoodsPriceMng: '价格套应用', + goods: '商品', + ShopMng: '商户管理', + GoodsSoldUp:'网店商品上下架', + GoodsApprove:'商品审核', + ShopLocationMng: '店铺管理', + LocationGoodsSoldUp: '店铺商品上下架', + ShopLocationAdd: '添加店铺', + ShopLocationPutaway: '店铺商品上下架', + ShopLocationDetail: '店铺详情', + ShopLocationEdit: '店铺编辑', + LocationSortMng:'店铺分类', + NetProductStockMng:'网店库存调整', + LocationProductStockMng:'店铺库存调整', + LocationGoodsPriceMng:'店铺价格套应用', + + pub: '基础数据', + CategoryMng: '分类定义', + AttributeMng: '商品参数管理', + SpecificationMng: '规格定义', + BrandMng: '品牌商定义', + ChannelMng: '频道管理', + AdMng: '广告投放', + SupplierMng: '供应商管理', + WarehouseMng: '仓库管理', + specification:'规格管理', + SpecificationCategoryMng:'规格定义', + GoodsPriceSet:'价格套定义', + evaluationMng:'评价管理', + WaitEvaluationOrder:'待评价订单', + EvaluationListMng:'已评价订单', + EvaluationSet:'评价参数配置', + EvaluationAward:'评价奖励', + OrderCenter:'订单管理', + OrderCenterList:'订单中心', + CreateOrder:'新建订单', + OrdersProcessApprovaMng:'赠书订单审核', + OrdersProcessNodeSet:'赠书订单审核设置', + SpeCategoryMng:'商品分类设置', + PressMng:'出版社/厂商管理', + TopicMng:"专题管理", + HelpMng:"帮助管理", + FAQMng:"常见问题", + UserAgreementMng:"用户协议", + InnerMsgMng:'站内信管理', + PartnerMng:'合作机构管理', + FriendlyLinkMng:'友情链接管理', + ContactSerMng:'联系客服', + ContactUsMng:'联系我们', + AboutUsMng:'关于我们', + ServiceAgreementMng:'服务协议', + UserReceiptOrderMng:'用户发票管理', + + + shopDecoration:'店铺装修', + preView:'预览', + customModuleMng:'自定义页面', + shopDecorationMng:'店铺装修', + timeOutSetting:'超时设置', + typeSetting:'类型设置', + expressEntrySet:'快捷入口设置', + expressTemplateMng:'物流模板管理', + customService:'客服', + greetingMng:'预约管理', + GreetingMng:'预约管理', + + tradeareaMng:'商圈', + tradearea:'商圈管理', + + cpdIndicators:'指标统计', + cpdShop:'商户指标', + cpdLoction:'店铺指标', + cpdGoods:'商品指标', + + KeywordsMng:'关键词管理', + TagMng:'标签管理', + AdPositionMng:'广告位置管理', + CacheMng:'缓存清理', + GoodsCommentMng:'商品评价', + + } +} diff --git a/src/lang/zh_mk.js b/src/lang/zh_mk.js new file mode 100644 index 00000000..3c511231 --- /dev/null +++ b/src/lang/zh_mk.js @@ -0,0 +1,59 @@ +export default { + route: { + dashboard: '首页', + BaseInfoMng:'卡券营销', + gbuy:'商品团购', + mk:'营销管理', + dist:'分销管理', + mkDetail:'营销明细', + mkFenxi:'营销分析', + GbuyActivityMng:'拼单管理', + GbuyGroupMng:'开团记录明细', + GbuyGroupUserMng:'参团用户资料', + MkLevelDefineMng:'业务员级别定义', + AreaLevelDefineMng:'区域代理级别定义', + AgentDefineMng:'代理商管理', + agent:'代理管理', + AgentGoodsRuleMng:'商品代理价格设置', + FeeRuleMng:'业务员提成设置', + GoodsRuleMng:'营销商品设置', + DistUserMng:'分销商设置', + DistGoodsRuleMng:'分销商品设置', + DistLevelDefineMng:'分销商级别定义', + OrderFeeMng:'订单明细', + StaffFeeMng:'业务员销售明细', + OrderProductFeeMng:'产品销售明细', + OrderCardMng:'卡券消费明细', + dayOrderFeeMng:'订单日报', + dayStaffFeeMng:'业务员业绩日报', + dayOrderProductFeeMng:'商品销售日报', + dayLocaOrderFeeMng:'店铺销售日报', + dayUserOrderMng:'客户消费日报', + dayUserActiveMng:'活跃用户日报', + AddMemberCard:'创建会员卡', + AddCard:'创建优惠券', + AddCardDiscount:'创建折扣券', + AddCardCash:'创建代金券', + AddCardGift:'创建兑换券', + AddCardGroupon:'创建团购券', + AddCardGeneral_Coupon:'创建优惠券', + MemberCard:'会员卡管理', + Card:'卡卷管理', + CardMng:'优惠券管理', + VerficationCodeMng:'核销码管理', + DistUserTreeMng:'分销商管理', + DistUserDetail:'分销详情', + DistUserWithdrawCashMng:'分销商佣金提现申请表', + DistRuleRewardMng:'分销商提成计算佣金策略表', + DistRuleQualMng:'资格规则配置', + DistRuleWithdrawCashMng:'提现规则', + SeckillActivityMng:'秒杀管理', + SeckillActivityGoodsMng:'商品秒杀商品管理', + join:'拼单管理', + seckill:'秒杀管理', + GbuyActivityGoodsMng:'商品团购', + GbuyGroupStateMng:'开团状态', + distUserTrees:'分销商管理', + distWithdrawalMng:'分销提现', + } +} diff --git a/src/lang/zh_sys.js b/src/lang/zh_sys.js new file mode 100644 index 00000000..55c55efc --- /dev/null +++ b/src/lang/zh_sys.js @@ -0,0 +1,55 @@ +export default { + route: { + dashboard: '首页', + UserMng:'用户管理', + DeptUserMng:'部门用户管理', + NoDeptUserMng:'用户管理(未分配部门)', + DeptPostUserMng: '用户岗位快捷查询', + DeptPostUserRole: '用户角色快捷查询', + DeptPostUserMenu: '用户菜单快捷查询', + RoleQxMng:'角色权限', + RoleMng:'角色管理', + PostMng: '岗位管理', + QxMng:'权限定义', + OrgMng:'组织管理', + BranchMng:'公司管理', + DeptMng:'部门管理', + BaseData:'基础数据', + CodeMng:'分类管理', + DataMng:'数据管理', + CompanyMng:'往来单位管理', + CategoryMng:'分类管理', + BranchAdd:'创建机构', + + MetaData:'元数据管理', + MetaCategoryMng:'元数据分类', + ItemMng:'字典管理', + dicts:'字典列表', + ItemList:'列表维护', + ItemOptionMng:'数据列表管理', + branchParamMng:'机构个性化参数', + SysParamMng:'参数定义', + SysParamSet:'参数设置', + + plat:'平台管理', + PlatformMng:'平台配置', + BankAccountMng:'收款账户', + + ResMng:'资源管理', + ResDefMng:'资源定义', + ResOperMng:'资源操作管理', + ResOperRoleMng:'资源角色管理', + ResBizCategoryMng:'资源业务分类', + ResIgnoreMng:'全局不受限资源', + + MenuDefMng:'菜单管理', + MenuModuleMng:'菜单分类', + + AppMdpMng: '应用商店', + AppMdpDefMng : '应用管理', + AppTpAuthMng : '应用授权', + AppBizTypeMng : '应用分类', + OpenAccount:'开户', + UserPostApplyRecord:'用户岗位申请记录' + } +} diff --git a/src/mock/mdp/pub/branch.js b/src/mock/mdp/pub/branch.js new file mode 100644 index 00000000..cfd96cb5 --- /dev/null +++ b/src/mock/mdp/pub/branch.js @@ -0,0 +1,13 @@ + import Mock from 'mockjs'; + +const Branchs = []; + +for (let i = 0; i < 25; i++) { + Branchs.push(Mock.mock({ + branchId:Mock.Random.string(5), + branchName:Mock.Random.ctitle(1,0) , + enabled:Mock.Random.character('lower') + })); +} + +export { Branchs }; diff --git a/src/mock/mdp/pub/branchMock.js b/src/mock/mdp/pub/branchMock.js new file mode 100644 index 00000000..12a45c46 --- /dev/null +++ b/src/mock/mdp/pub/branchMock.js @@ -0,0 +1,152 @@ +import { Branchs } from './branch'; +let _Branchs = Branchs; +/** + * 拷贝下面两行到 mock/index.js中,即可支持客户端虚拟数据、免服务端连接 + * import BranchMock from './mdp/pub/branchMock'; + * BranchMock.bootstrap(mock); + */ +export default { + /** + * mock bootstrap + */ + bootstrap(mock) { + + //获取列表 模糊查询、根据关键字查询 + mock.onGet('/mdp/pub/branch/listKey').reply(config => { + let params = config.params; + let mockBranchs = _Branchs.filter(branch => { + if(params.branchId||params.branchId==''){ if( branch.branchId.indexOf(params.branchId)>=0) return true;} + if(params.branchName||params.branchName==''){ if( branch.branchName.indexOf(params.branchName)>=0) return true;} + if(params.enabled||params.enabled==''){ if( branch.enabled.indexOf(params.enabled)>=0) return true;} + return false; + }); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + data: mockBranchs + }]); + }, 1000); + }); + }); + + + + //获取列表(分页/不分页) + mock.onGet('/mdp/pub/branch/list').reply(config => { + let params = config.params; + let mockBranchs = _Branchs.filter(branch => { + var isTrue=false; + if(params.branchId||params.branchId==''){if(branch.branchId.indexOf(params.branchId)>=0){isTrue=true;}else{isTrue=false;}} + if(params.branchName||params.branchName==''){if(branch.branchName.indexOf(params.branchName)>=0){isTrue=true;}else{isTrue=false;}} + if(params.enabled||params.enabled==''){if(branch.enabled.indexOf(params.enabled)>=0){isTrue=true;}else{isTrue=false;}} + return isTrue; + }); + if(!config.params.currentPage){ + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + data: mockBranchs + }]); + }, 1000); + }); + } + + let {pageSize,currentPage, total} = config.params; + total = mockBranchs.length; + mockBranchs = mockBranchs.filter((branch, index) => index < pageSize * currentPage && index >= pageSize * (currentPage - 1)); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + pageInfo: { + total:total + }, + data: mockBranchs, + tips:{ + isOk:true, + msg:'查询成功' + } + }]); + }, 1000); + }); + }); + + //删除 + mock.onPost('/mdp/pub/branch/del').reply(config => { + var params = JSON.parse( config.data ); + let { branchId } = params; + _Branchs = _Branchs.filter(branch => branch.branchId !== branchId); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + tips:{ + isOk:true, + msg:'删除成功' + } + }]); + }, 500); + }); + }); + + //批量删除 + mock.onPost('/mdp/pub/branch/batchDel').reply(config => { + var params = JSON.parse( config.data ); + _Branchs = _Branchs.filter(branch => !params.includes(branch.branchId)); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + tips:{ + isOk:true, + msg:'删除成功' + } + }]); + }, 500); + }); + }); + + //编辑 + mock.onPost('/mdp/pub/branch/edit').reply(config => { + var params = JSON.parse( config.data ); + let { branchId,branchName,enabled } = params; + _Branchs.some(branch => { + if (branch.branchId === branchId) { + branch.branchId = branchId; + branch.branchName = branchName; + branch.enabled = enabled + return true; + } + }); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + tips:{ + isOk:true, + msg:'编辑成功' + } + }]); + }, 500); + }); + }); + + //新增 + mock.onPost('/mdp/pub/branch/add').reply(config => { + var params = JSON.parse( config.data ); + let { branchId,branchName,enabled } = params; + _Branchs.push({ + branchId:branchId, + branchName:branchName, + enabled:enabled + }); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + tips:{ + isOk:true, + msg:'新增成功' + } + }]); + }, 500); + }); + }); + + } +}; \ No newline at end of file diff --git a/src/mock/mdp/pub/company.js b/src/mock/mdp/pub/company.js new file mode 100644 index 00000000..c36fbe29 --- /dev/null +++ b/src/mock/mdp/pub/company.js @@ -0,0 +1,18 @@ + import Mock from 'mockjs'; + +const Companys = []; + +for (let i = 0; i < 25; i++) { + Companys.push(Mock.mock({ + companyId:Mock.Random.string(5), + branchId:Mock.Random.string(5), + companyName:Mock.Random.ctitle(1,0) , + districtId:Mock.Random.ctitle(1,0) , + categoryId:Mock.Random.ctitle(1,0) , + phoneNo:Mock.Random.ctitle(1,0) , + orgId:Mock.Random.ctitle(1,0) , + address:Mock.Random.ctitle(1,0) + })); +} + +export { Companys }; diff --git a/src/mock/mdp/pub/companyMock.js b/src/mock/mdp/pub/companyMock.js new file mode 100644 index 00000000..e1a82ece --- /dev/null +++ b/src/mock/mdp/pub/companyMock.js @@ -0,0 +1,172 @@ +import { Companys } from './company'; +let _Companys = Companys; +/** + * 拷贝下面两行到 mock/index.js中,即可支持客户端虚拟数据、免服务端连接 + * import CompanyMock from './mdp/pub/companyMock'; + * CompanyMock.bootstrap(mock); + */ +export default { + /** + * mock bootstrap + */ + bootstrap(mock) { + + //获取列表 模糊查询、根据关键字查询 + mock.onGet('/mdp/pub/company/listKey').reply(config => { + let params = config.params; + let mockCompanys = _Companys.filter(company => { + if(params.companyId||params.companyId==''){ if( company.companyId.indexOf(params.companyId)>=0) return true;} + if(params.companyName||params.companyName==''){ if( company.companyName.indexOf(params.companyName)>=0) return true;} + if(params.districtId||params.districtId==''){ if( company.districtId.indexOf(params.districtId)>=0) return true;} + if(params.categoryId||params.categoryId==''){ if( company.categoryId.indexOf(params.categoryId)>=0) return true;} + if(params.phoneNo||params.phoneNo==''){ if( company.phoneNo.indexOf(params.phoneNo)>=0) return true;} + if(params.orgId||params.orgId==''){ if( company.orgId.indexOf(params.orgId)>=0) return true;} + if(params.address||params.address==''){ if( company.address.indexOf(params.address)>=0) return true;} + if(params.branchId||params.branchId==''){ if( company.branchId.indexOf(params.branchId)>=0) return true;} + return false; + }); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + data: mockCompanys + }]); + }, 1000); + }); + }); + + + + //获取列表(分页/不分页) + mock.onGet('/mdp/pub/company/list').reply(config => { + let params = config.params; + let mockCompanys = _Companys.filter(company => { + var isTrue=false; + if(params.companyId||params.companyId==''){if(company.companyId.indexOf(params.companyId)>=0){isTrue=true;}else{isTrue=false;}} + if(params.companyName||params.companyName==''){if(company.companyName.indexOf(params.companyName)>=0){isTrue=true;}else{isTrue=false;}} + if(params.districtId||params.districtId==''){if(company.districtId.indexOf(params.districtId)>=0){isTrue=true;}else{isTrue=false;}} + if(params.categoryId||params.categoryId==''){if(company.categoryId.indexOf(params.categoryId)>=0){isTrue=true;}else{isTrue=false;}} + if(params.phoneNo||params.phoneNo==''){if(company.phoneNo.indexOf(params.phoneNo)>=0){isTrue=true;}else{isTrue=false;}} + if(params.orgId||params.orgId==''){if(company.orgId.indexOf(params.orgId)>=0){isTrue=true;}else{isTrue=false;}} + if(params.address||params.address==''){if(company.address.indexOf(params.address)>=0){isTrue=true;}else{isTrue=false;}} + if(params.branchId||params.branchId==''){if(company.branchId.indexOf(params.branchId)>=0){isTrue=true;}else{isTrue=false;}} + return isTrue; + }); + if(!config.params.currentPage){ + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + data: mockCompanys + }]); + }, 1000); + }); + } + + let {pageSize,currentPage, total} = config.params; + total = mockCompanys.length; + mockCompanys = mockCompanys.filter((company, index) => index < pageSize * currentPage && index >= pageSize * (currentPage - 1)); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + pageInfo: { + total:total + }, + data: mockCompanys, + tips:{ + isOk:true, + msg:'查询成功' + } + }]); + }, 1000); + }); + }); + + //删除 + mock.onPost('/mdp/pub/company/del').reply(config => { + var params = JSON.parse( config.data ); + let { companyId } = params; + _Companys = _Companys.filter(company => company.companyId !== companyId); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + tips:{ + isOk:true, + msg:'删除成功' + } + }]); + }, 500); + }); + }); + + //批量删除 + mock.onPost('/mdp/pub/company/batchDel').reply(config => { + var params = JSON.parse( config.data ); + _Companys = _Companys.filter(company => !params.includes(company.companyId)); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + tips:{ + isOk:true, + msg:'删除成功' + } + }]); + }, 500); + }); + }); + + //编辑 + mock.onPost('/mdp/pub/company/edit').reply(config => { + var params = JSON.parse( config.data ); + let { companyId,companyName,districtId,categoryId,phoneNo,orgId,address,branchId } = params; + _Companys.some(company => { + if (company.companyId === companyId) { + company.companyId = companyId; + company.companyName = companyName; + company.districtId = districtId; + company.categoryId = categoryId; + company.phoneNo = phoneNo; + company.orgId = orgId; + company.address = address; + company.branchId = branchId + return true; + } + }); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + tips:{ + isOk:true, + msg:'编辑成功' + } + }]); + }, 500); + }); + }); + + //新增 + mock.onPost('/mdp/pub/company/add').reply(config => { + var params = JSON.parse( config.data ); + let { companyId,companyName,districtId,categoryId,phoneNo,orgId,address,branchId } = params; + _Companys.push({ + companyId:companyId, + companyName:companyName, + districtId:districtId, + categoryId:categoryId, + phoneNo:phoneNo, + orgId:orgId, + address:address, + branchId:branchId + }); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + tips:{ + isOk:true, + msg:'新增成功' + } + }]); + }, 500); + }); + }); + + } +}; \ No newline at end of file diff --git a/src/mock/mdp/pub/cust.js b/src/mock/mdp/pub/cust.js new file mode 100644 index 00000000..f529224d --- /dev/null +++ b/src/mock/mdp/pub/cust.js @@ -0,0 +1,14 @@ + import Mock from 'mockjs'; + +const Custs = []; + +for (let i = 0; i < 25; i++) { + Custs.push(Mock.mock({ + custId:Mock.Random.string(5), + branchId:Mock.Random.string(5), + custName:Mock.Random.ctitle(1,0) , + enabled:Mock.Random.character('lower') + })); +} + +export { Custs }; diff --git a/src/mock/mdp/pub/custMock.js b/src/mock/mdp/pub/custMock.js new file mode 100644 index 00000000..87018d69 --- /dev/null +++ b/src/mock/mdp/pub/custMock.js @@ -0,0 +1,156 @@ +import { Custs } from './cust'; +let _Custs = Custs; +/** + * 拷贝下面两行到 mock/index.js中,即可支持客户端虚拟数据、免服务端连接 + * import CustMock from './mdp/pub/custMock'; + * CustMock.bootstrap(mock); + */ +export default { + /** + * mock bootstrap + */ + bootstrap(mock) { + + //获取列表 模糊查询、根据关键字查询 + mock.onGet('/mdp/pub/cust/listKey').reply(config => { + let params = config.params; + let mockCusts = _Custs.filter(cust => { + if(params.custId||params.custId==''){ if( cust.custId.indexOf(params.custId)>=0) return true;} + if(params.custName||params.custName==''){ if( cust.custName.indexOf(params.custName)>=0) return true;} + if(params.enabled||params.enabled==''){ if( cust.enabled.indexOf(params.enabled)>=0) return true;} + if(params.branchId||params.branchId==''){ if( cust.branchId.indexOf(params.branchId)>=0) return true;} + return false; + }); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + data: mockCusts + }]); + }, 1000); + }); + }); + + + + //获取列表(分页/不分页) + mock.onGet('/mdp/pub/cust/list').reply(config => { + let params = config.params; + let mockCusts = _Custs.filter(cust => { + var isTrue=false; + if(params.custId||params.custId==''){if(cust.custId.indexOf(params.custId)>=0){isTrue=true;}else{isTrue=false;}} + if(params.custName||params.custName==''){if(cust.custName.indexOf(params.custName)>=0){isTrue=true;}else{isTrue=false;}} + if(params.enabled||params.enabled==''){if(cust.enabled.indexOf(params.enabled)>=0){isTrue=true;}else{isTrue=false;}} + if(params.branchId||params.branchId==''){if(cust.branchId.indexOf(params.branchId)>=0){isTrue=true;}else{isTrue=false;}} + return isTrue; + }); + if(!config.params.currentPage){ + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + data: mockCusts + }]); + }, 1000); + }); + } + + let {pageSize,currentPage, total} = config.params; + total = mockCusts.length; + mockCusts = mockCusts.filter((cust, index) => index < pageSize * currentPage && index >= pageSize * (currentPage - 1)); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + pageInfo: { + total:total + }, + data: mockCusts, + tips:{ + isOk:true, + msg:'查询成功' + } + }]); + }, 1000); + }); + }); + + //删除 + mock.onPost('/mdp/pub/cust/del').reply(config => { + var params = JSON.parse( config.data ); + let { custId } = params; + _Custs = _Custs.filter(cust => cust.custId !== custId); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + tips:{ + isOk:true, + msg:'删除成功' + } + }]); + }, 500); + }); + }); + + //批量删除 + mock.onPost('/mdp/pub/cust/batchDel').reply(config => { + var params = JSON.parse( config.data ); + _Custs = _Custs.filter(cust => !params.includes(cust.custId)); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + tips:{ + isOk:true, + msg:'删除成功' + } + }]); + }, 500); + }); + }); + + //编辑 + mock.onPost('/mdp/pub/cust/edit').reply(config => { + var params = JSON.parse( config.data ); + let { custId,custName,enabled,branchId } = params; + _Custs.some(cust => { + if (cust.custId === custId) { + cust.custId = custId; + cust.custName = custName; + cust.enabled = enabled; + cust.branchId = branchId + return true; + } + }); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + tips:{ + isOk:true, + msg:'编辑成功' + } + }]); + }, 500); + }); + }); + + //新增 + mock.onPost('/mdp/pub/cust/add').reply(config => { + var params = JSON.parse( config.data ); + let { custId,custName,enabled,branchId } = params; + _Custs.push({ + custId:custId, + custName:custName, + enabled:enabled, + branchId:branchId + }); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + tips:{ + isOk:true, + msg:'新增成功' + } + }]); + }, 500); + }); + }); + + } +}; \ No newline at end of file diff --git a/src/mock/mdp/pub/dist.js b/src/mock/mdp/pub/dist.js new file mode 100644 index 00000000..8b4d67a5 --- /dev/null +++ b/src/mock/mdp/pub/dist.js @@ -0,0 +1,14 @@ + import Mock from 'mockjs'; + +const Dists = []; + +for (let i = 0; i < 25; i++) { + Dists.push(Mock.mock({ + distId:Mock.Random.string(5), + branchId:Mock.Random.string(5), + distName:Mock.Random.ctitle(1,0) , + enabled:Mock.Random.character('lower') + })); +} + +export { Dists }; diff --git a/src/mock/mdp/pub/distMock.js b/src/mock/mdp/pub/distMock.js new file mode 100644 index 00000000..661c9258 --- /dev/null +++ b/src/mock/mdp/pub/distMock.js @@ -0,0 +1,156 @@ +import { Dists } from './dist'; +let _Dists = Dists; +/** + * 拷贝下面两行到 mock/index.js中,即可支持客户端虚拟数据、免服务端连接 + * import DistMock from './mdp/pub/distMock'; + * DistMock.bootstrap(mock); + */ +export default { + /** + * mock bootstrap + */ + bootstrap(mock) { + + //获取列表 模糊查询、根据关键字查询 + mock.onGet('/mdp/pub/dist/listKey').reply(config => { + let params = config.params; + let mockDists = _Dists.filter(dist => { + if(params.distId||params.distId==''){ if( dist.distId.indexOf(params.distId)>=0) return true;} + if(params.distName||params.distName==''){ if( dist.distName.indexOf(params.distName)>=0) return true;} + if(params.enabled||params.enabled==''){ if( dist.enabled.indexOf(params.enabled)>=0) return true;} + if(params.branchId||params.branchId==''){ if( dist.branchId.indexOf(params.branchId)>=0) return true;} + return false; + }); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + data: mockDists + }]); + }, 1000); + }); + }); + + + + //获取列表(分页/不分页) + mock.onGet('/mdp/pub/dist/list').reply(config => { + let params = config.params; + let mockDists = _Dists.filter(dist => { + var isTrue=false; + if(params.distId||params.distId==''){if(dist.distId.indexOf(params.distId)>=0){isTrue=true;}else{isTrue=false;}} + if(params.distName||params.distName==''){if(dist.distName.indexOf(params.distName)>=0){isTrue=true;}else{isTrue=false;}} + if(params.enabled||params.enabled==''){if(dist.enabled.indexOf(params.enabled)>=0){isTrue=true;}else{isTrue=false;}} + if(params.branchId||params.branchId==''){if(dist.branchId.indexOf(params.branchId)>=0){isTrue=true;}else{isTrue=false;}} + return isTrue; + }); + if(!config.params.currentPage){ + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + data: mockDists + }]); + }, 1000); + }); + } + + let {pageSize,currentPage, total} = config.params; + total = mockDists.length; + mockDists = mockDists.filter((dist, index) => index < pageSize * currentPage && index >= pageSize * (currentPage - 1)); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + pageInfo: { + total:total + }, + data: mockDists, + tips:{ + isOk:true, + msg:'查询成功' + } + }]); + }, 1000); + }); + }); + + //删除 + mock.onPost('/mdp/pub/dist/del').reply(config => { + var params = JSON.parse( config.data ); + let { distId } = params; + _Dists = _Dists.filter(dist => dist.distId !== distId); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + tips:{ + isOk:true, + msg:'删除成功' + } + }]); + }, 500); + }); + }); + + //批量删除 + mock.onPost('/mdp/pub/dist/batchDel').reply(config => { + var params = JSON.parse( config.data ); + _Dists = _Dists.filter(dist => !params.includes(dist.distId)); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + tips:{ + isOk:true, + msg:'删除成功' + } + }]); + }, 500); + }); + }); + + //编辑 + mock.onPost('/mdp/pub/dist/edit').reply(config => { + var params = JSON.parse( config.data ); + let { distId,distName,enabled,branchId } = params; + _Dists.some(dist => { + if (dist.distId === distId) { + dist.distId = distId; + dist.distName = distName; + dist.enabled = enabled; + dist.branchId = branchId + return true; + } + }); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + tips:{ + isOk:true, + msg:'编辑成功' + } + }]); + }, 500); + }); + }); + + //新增 + mock.onPost('/mdp/pub/dist/add').reply(config => { + var params = JSON.parse( config.data ); + let { distId,distName,enabled,branchId } = params; + _Dists.push({ + distId:distId, + distName:distName, + enabled:enabled, + branchId:branchId + }); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + tips:{ + isOk:true, + msg:'新增成功' + } + }]); + }, 500); + }); + }); + + } +}; \ No newline at end of file diff --git a/src/mock/mdp/pub/supplier.js b/src/mock/mdp/pub/supplier.js new file mode 100644 index 00000000..8a191bd1 --- /dev/null +++ b/src/mock/mdp/pub/supplier.js @@ -0,0 +1,14 @@ + import Mock from 'mockjs'; + +const Suppliers = []; + +for (let i = 0; i < 25; i++) { + Suppliers.push(Mock.mock({ + supplierId:Mock.Random.string(5), + branchId:Mock.Random.string(5), + supplierName:Mock.Random.ctitle(1,0) , + enabled:Mock.Random.character('lower') + })); +} + +export { Suppliers }; diff --git a/src/mock/mdp/pub/supplierMock.js b/src/mock/mdp/pub/supplierMock.js new file mode 100644 index 00000000..bab0e68c --- /dev/null +++ b/src/mock/mdp/pub/supplierMock.js @@ -0,0 +1,156 @@ +import { Suppliers } from './supplier'; +let _Suppliers = Suppliers; +/** + * 拷贝下面两行到 mock/index.js中,即可支持客户端虚拟数据、免服务端连接 + * import SupplierMock from './mdp/pub/supplierMock'; + * SupplierMock.bootstrap(mock); + */ +export default { + /** + * mock bootstrap + */ + bootstrap(mock) { + + //获取列表 模糊查询、根据关键字查询 + mock.onGet('/mdp/pub/supplier/listKey').reply(config => { + let params = config.params; + let mockSuppliers = _Suppliers.filter(supplier => { + if(params.supplierId||params.supplierId==''){ if( supplier.supplierId.indexOf(params.supplierId)>=0) return true;} + if(params.supplierName||params.supplierName==''){ if( supplier.supplierName.indexOf(params.supplierName)>=0) return true;} + if(params.enabled||params.enabled==''){ if( supplier.enabled.indexOf(params.enabled)>=0) return true;} + if(params.branchId||params.branchId==''){ if( supplier.branchId.indexOf(params.branchId)>=0) return true;} + return false; + }); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + data: mockSuppliers + }]); + }, 1000); + }); + }); + + + + //获取列表(分页/不分页) + mock.onGet('/mdp/pub/supplier/list').reply(config => { + let params = config.params; + let mockSuppliers = _Suppliers.filter(supplier => { + var isTrue=false; + if(params.supplierId||params.supplierId==''){if(supplier.supplierId.indexOf(params.supplierId)>=0){isTrue=true;}else{isTrue=false;}} + if(params.supplierName||params.supplierName==''){if(supplier.supplierName.indexOf(params.supplierName)>=0){isTrue=true;}else{isTrue=false;}} + if(params.enabled||params.enabled==''){if(supplier.enabled.indexOf(params.enabled)>=0){isTrue=true;}else{isTrue=false;}} + if(params.branchId||params.branchId==''){if(supplier.branchId.indexOf(params.branchId)>=0){isTrue=true;}else{isTrue=false;}} + return isTrue; + }); + if(!config.params.currentPage){ + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + data: mockSuppliers + }]); + }, 1000); + }); + } + + let {pageSize,currentPage, total} = config.params; + total = mockSuppliers.length; + mockSuppliers = mockSuppliers.filter((supplier, index) => index < pageSize * currentPage && index >= pageSize * (currentPage - 1)); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + pageInfo: { + total:total + }, + data: mockSuppliers, + tips:{ + isOk:true, + msg:'查询成功' + } + }]); + }, 1000); + }); + }); + + //删除 + mock.onPost('/mdp/pub/supplier/del').reply(config => { + var params = JSON.parse( config.data ); + let { supplierId } = params; + _Suppliers = _Suppliers.filter(supplier => supplier.supplierId !== supplierId); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + tips:{ + isOk:true, + msg:'删除成功' + } + }]); + }, 500); + }); + }); + + //批量删除 + mock.onPost('/mdp/pub/supplier/batchDel').reply(config => { + var params = JSON.parse( config.data ); + _Suppliers = _Suppliers.filter(supplier => !params.includes(supplier.supplierId)); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + tips:{ + isOk:true, + msg:'删除成功' + } + }]); + }, 500); + }); + }); + + //编辑 + mock.onPost('/mdp/pub/supplier/edit').reply(config => { + var params = JSON.parse( config.data ); + let { supplierId,supplierName,enabled,branchId } = params; + _Suppliers.some(supplier => { + if (supplier.supplierId === supplierId) { + supplier.supplierId = supplierId; + supplier.supplierName = supplierName; + supplier.enabled = enabled; + supplier.branchId = branchId + return true; + } + }); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + tips:{ + isOk:true, + msg:'编辑成功' + } + }]); + }, 500); + }); + }); + + //新增 + mock.onPost('/mdp/pub/supplier/add').reply(config => { + var params = JSON.parse( config.data ); + let { supplierId,supplierName,enabled,branchId } = params; + _Suppliers.push({ + supplierId:supplierId, + supplierName:supplierName, + enabled:enabled, + branchId:branchId + }); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + tips:{ + isOk:true, + msg:'新增成功' + } + }]); + }, 500); + }); + }); + + } +}; \ No newline at end of file diff --git a/src/mock/mdp/sys/category.js b/src/mock/mdp/sys/category.js new file mode 100644 index 00000000..6b9253cf --- /dev/null +++ b/src/mock/mdp/sys/category.js @@ -0,0 +1,14 @@ + import Mock from 'mockjs'; + +const Categorys = []; + +for (let i = 0; i < 25; i++) { + Categorys.push(Mock.mock({ + id:Mock.Random.string(5), + pid:Mock.Random.ctitle(1,0) , + name:Mock.Random.ctitle(1,0) , + 'sortOrder|0-5': 1 + })); +} + +export { Categorys }; diff --git a/src/mock/mdp/sys/categoryMock.js b/src/mock/mdp/sys/categoryMock.js new file mode 100644 index 00000000..d0f304d1 --- /dev/null +++ b/src/mock/mdp/sys/categoryMock.js @@ -0,0 +1,156 @@ +import { Categorys } from './category'; +let _Categorys = Categorys; +/** + * 拷贝下面两行到 mock/index.js中,即可支持客户端虚拟数据、免服务端连接 + * import CategoryMock from './mdp/sys/categoryMock'; + * CategoryMock.bootstrap(mock); + */ +export default { + /** + * mock bootstrap + */ + bootstrap(mock) { + + //获取列表 模糊查询、根据关键字查询 + mock.onGet('/mdp/sys/category/listKey').reply(config => { + let params = config.params; + let mockCategorys = _Categorys.filter(category => { + if(params.id||params.id==''){ if( category.id.indexOf(params.id)>=0) return true;} + if(params.pid||params.pid==''){ if( category.pid.indexOf(params.pid)>=0) return true;} + if(params.name||params.name==''){ if( category.name.indexOf(params.name)>=0) return true;} + if(params.sortOrder||params.sortOrder==''){ if( category.sortOrder.indexOf(params.sortOrder)>=0) return true;} + return false; + }); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + data: mockCategorys + }]); + }, 1000); + }); + }); + + + + //获取列表(分页/不分页) + mock.onGet('/mdp/sys/category/list').reply(config => { + let params = config.params; + let mockCategorys = _Categorys.filter(category => { + var isTrue=false; + if(params.id||params.id==''){if(category.id.indexOf(params.id)>=0){isTrue=true;}else{isTrue=false;}} + if(params.pid||params.pid==''){if(category.pid.indexOf(params.pid)>=0){isTrue=true;}else{isTrue=false;}} + if(params.name||params.name==''){if(category.name.indexOf(params.name)>=0){isTrue=true;}else{isTrue=false;}} + if(params.sortOrder||params.sortOrder==''){if(category.sortOrder.indexOf(params.sortOrder)>=0){isTrue=true;}else{isTrue=false;}} + return isTrue; + }); + if(!config.params.currentPage){ + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + data: mockCategorys + }]); + }, 1000); + }); + } + + let {pageSize,currentPage, total} = config.params; + total = mockCategorys.length; + mockCategorys = mockCategorys.filter((category, index) => index < pageSize * currentPage && index >= pageSize * (currentPage - 1)); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + pageInfo: { + total:total + }, + data: mockCategorys, + tips:{ + isOk:true, + msg:'查询成功' + } + }]); + }, 1000); + }); + }); + + //删除 + mock.onPost('/mdp/sys/category/del').reply(config => { + var params = JSON.parse( config.data ); + let { id } = params; + _Categorys = _Categorys.filter(category => category.id !== id); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + tips:{ + isOk:true, + msg:'删除成功' + } + }]); + }, 500); + }); + }); + + //批量删除 + mock.onPost('/mdp/sys/category/batchDel').reply(config => { + var params = JSON.parse( config.data ); + _Categorys = _Categorys.filter(category => !params.includes(category.id)); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + tips:{ + isOk:true, + msg:'删除成功' + } + }]); + }, 500); + }); + }); + + //编辑 + mock.onPost('/mdp/sys/category/edit').reply(config => { + var params = JSON.parse( config.data ); + let { id,pid,name,sortOrder } = params; + _Categorys.some(category => { + if (category.id === id) { + category.id = id; + category.pid = pid; + category.name = name; + category.sortOrder = sortOrder + return true; + } + }); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + tips:{ + isOk:true, + msg:'编辑成功' + } + }]); + }, 500); + }); + }); + + //新增 + mock.onPost('/mdp/sys/category/add').reply(config => { + var params = JSON.parse( config.data ); + let { id,pid,name,sortOrder } = params; + _Categorys.push({ + id:id, + pid:pid, + name:name, + sortOrder:sortOrder + }); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + tips:{ + isOk:true, + msg:'新增成功' + } + }]); + }, 500); + }); + }); + + } +}; \ No newline at end of file diff --git a/src/mock/mdp/sys/code.js b/src/mock/mdp/sys/code.js new file mode 100644 index 00000000..bfe24953 --- /dev/null +++ b/src/mock/mdp/sys/code.js @@ -0,0 +1,21 @@ + import Mock from 'mockjs'; + +const Codes = []; + +for (let i = 0; i < 25; i++) { + Codes.push(Mock.mock({ + codeRow:Mock.Random.string(5), + tcodeId:Mock.Random.ctitle(2,32) , + tcodeName:Mock.Random.ctitle(2,12) , + remark:Mock.Random.ctitle(2,24) , + state:Mock.Random.ctitle(2,4) , + codeBeg:Mock.Random.date('yyyy-MM-dd') , + codeEnd:Mock.Random.date('yyyy-MM-dd') , + createPerson:Mock.Random.ctitle(2,8) , + createDate:Mock.Random.date('yyyy-MM-dd') , + loperatePerson:Mock.Random.ctitle(2,8) , + loperateDate:Mock.Random.date('yyyy-MM-dd') + })); +} + +export { Codes }; diff --git a/src/mock/mdp/sys/codeDetail.js b/src/mock/mdp/sys/codeDetail.js new file mode 100644 index 00000000..f5eb9429 --- /dev/null +++ b/src/mock/mdp/sys/codeDetail.js @@ -0,0 +1,31 @@ + import Mock from 'mockjs'; + +const CodeDetails = []; + +for (let i = 0; i < 25; i++) { + CodeDetails.push(Mock.mock({ + dcodeRow:Mock.Random.string(5), + codeValue:Mock.Random.ctitle(1,0) , + codeName:Mock.Random.ctitle(1,2) , + ifdefault:Mock.Random.character('lower') , + state:Mock.Random.ctitle(1,4) , + codeBeg:Mock.Random.date('yyyy-MM-dd') , + codeEnd:Mock.Random.date('yyyy-MM-dd') , + createPerson:Mock.Random.ctitle(1,8) , + createDate:Mock.Random.date('yyyy-MM-dd') , + loperatePerson:Mock.Random.ctitle(1,8) , + loperateDate:Mock.Random.date('yyyy-MM-dd') , + 'seqOrder|0-5': 1 , + keys:Mock.Random.ctitle(1,0) , + fp:Mock.Random.ctitle(1,0) , + sp:Mock.Random.ctitle(1,0) , + tp:Mock.Random.ctitle(1,0) , + secondCodeRow:Mock.Random.ctitle(1,0) , + deptid:Mock.Random.ctitle(1,0) , + codeRow:Mock.Random.ctitle(1,0) , + dtcodeId:Mock.Random.ctitle(1,2) , + dtcodeName:Mock.Random.ctitle(1,2) + })); +} + +export { CodeDetails }; diff --git a/src/mock/mdp/sys/codeDetailMock.js b/src/mock/mdp/sys/codeDetailMock.js new file mode 100644 index 00000000..af68cd20 --- /dev/null +++ b/src/mock/mdp/sys/codeDetailMock.js @@ -0,0 +1,224 @@ +import { CodeDetails } from './codeDetail'; +let _CodeDetails = CodeDetails; +/** + * 拷贝下面两行到 mock/index.js中,即可支持客户端虚拟数据、免服务端连接 + * import CodeDetailMock from './mdp/sys/codeDetailMock'; + * CodeDetailMock.bootstrap(mock); + */ +export default { + /** + * mock bootstrap + */ + bootstrap(mock) { + + //获取列表 模糊查询、根据关键字查询 + mock.onGet('/mdp/sys/codeDetail/listKey').reply(config => { + let params = config.params; + let mockCodeDetails = _CodeDetails.filter(codeDetail => { + if(params.dcodeRow||params.dcodeRow==''){ if( codeDetail.dcodeRow.indexOf(params.dcodeRow)>=0) return true;} + if(params.codeValue||params.codeValue==''){ if( codeDetail.codeValue.indexOf(params.codeValue)>=0) return true;} + if(params.codeName||params.codeName==''){ if( codeDetail.codeName.indexOf(params.codeName)>=0) return true;} + if(params.ifdefault||params.ifdefault==''){ if( codeDetail.ifdefault.indexOf(params.ifdefault)>=0) return true;} + if(params.state||params.state==''){ if( codeDetail.state.indexOf(params.state)>=0) return true;} + if(params.codeBeg||params.codeBeg==''){ if( codeDetail.codeBeg.indexOf(params.codeBeg)>=0) return true;} + if(params.codeEnd||params.codeEnd==''){ if( codeDetail.codeEnd.indexOf(params.codeEnd)>=0) return true;} + if(params.createPerson||params.createPerson==''){ if( codeDetail.createPerson.indexOf(params.createPerson)>=0) return true;} + if(params.createDate||params.createDate==''){ if( codeDetail.createDate.indexOf(params.createDate)>=0) return true;} + if(params.loperatePerson||params.loperatePerson==''){ if( codeDetail.loperatePerson.indexOf(params.loperatePerson)>=0) return true;} + if(params.loperateDate||params.loperateDate==''){ if( codeDetail.loperateDate.indexOf(params.loperateDate)>=0) return true;} + if(params.seqOrder||params.seqOrder==''){ if( codeDetail.seqOrder.indexOf(params.seqOrder)>=0) return true;} + if(params.keys||params.keys==''){ if( codeDetail.keys.indexOf(params.keys)>=0) return true;} + if(params.fp||params.fp==''){ if( codeDetail.fp.indexOf(params.fp)>=0) return true;} + if(params.sp||params.sp==''){ if( codeDetail.sp.indexOf(params.sp)>=0) return true;} + if(params.tp||params.tp==''){ if( codeDetail.tp.indexOf(params.tp)>=0) return true;} + if(params.secondCodeRow||params.secondCodeRow==''){ if( codeDetail.secondCodeRow.indexOf(params.secondCodeRow)>=0) return true;} + if(params.deptid||params.deptid==''){ if( codeDetail.deptid.indexOf(params.deptid)>=0) return true;} + if(params.codeRow||params.codeRow==''){ if( codeDetail.codeRow.indexOf(params.codeRow)>=0) return true;} + if(params.dtcodeId||params.dtcodeId==''){ if( codeDetail.dtcodeId.indexOf(params.dtcodeId)>=0) return true;} + if(params.dtcodeName||params.dtcodeName==''){ if( codeDetail.dtcodeName.indexOf(params.dtcodeName)>=0) return true;} + return false; + }); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + data: mockCodeDetails + }]); + }, 1000); + }); + }); + + + + //获取列表(分页/不分页) + mock.onGet('/mdp/sys/codeDetail/list').reply(config => { + let params = config.params; + let mockCodeDetails = _CodeDetails.filter(codeDetail => { + var isTrue=false; + if(params.dcodeRow||params.dcodeRow==''){if(codeDetail.dcodeRow.indexOf(params.dcodeRow)>=0){isTrue=true;}else{isTrue=false;}} + if(params.codeValue||params.codeValue==''){if(codeDetail.codeValue.indexOf(params.codeValue)>=0){isTrue=true;}else{isTrue=false;}} + if(params.codeName||params.codeName==''){if(codeDetail.codeName.indexOf(params.codeName)>=0){isTrue=true;}else{isTrue=false;}} + if(params.ifdefault||params.ifdefault==''){if(codeDetail.ifdefault.indexOf(params.ifdefault)>=0){isTrue=true;}else{isTrue=false;}} + if(params.state||params.state==''){if(codeDetail.state.indexOf(params.state)>=0){isTrue=true;}else{isTrue=false;}} + if(params.codeBeg||params.codeBeg==''){if(codeDetail.codeBeg.indexOf(params.codeBeg)>=0){isTrue=true;}else{isTrue=false;}} + if(params.codeEnd||params.codeEnd==''){if(codeDetail.codeEnd.indexOf(params.codeEnd)>=0){isTrue=true;}else{isTrue=false;}} + if(params.createPerson||params.createPerson==''){if(codeDetail.createPerson.indexOf(params.createPerson)>=0){isTrue=true;}else{isTrue=false;}} + if(params.createDate||params.createDate==''){if(codeDetail.createDate.indexOf(params.createDate)>=0){isTrue=true;}else{isTrue=false;}} + if(params.loperatePerson||params.loperatePerson==''){if(codeDetail.loperatePerson.indexOf(params.loperatePerson)>=0){isTrue=true;}else{isTrue=false;}} + if(params.loperateDate||params.loperateDate==''){if(codeDetail.loperateDate.indexOf(params.loperateDate)>=0){isTrue=true;}else{isTrue=false;}} + if(params.seqOrder||params.seqOrder==''){if(codeDetail.seqOrder.indexOf(params.seqOrder)>=0){isTrue=true;}else{isTrue=false;}} + if(params.keys||params.keys==''){if(codeDetail.keys.indexOf(params.keys)>=0){isTrue=true;}else{isTrue=false;}} + if(params.fp||params.fp==''){if(codeDetail.fp.indexOf(params.fp)>=0){isTrue=true;}else{isTrue=false;}} + if(params.sp||params.sp==''){if(codeDetail.sp.indexOf(params.sp)>=0){isTrue=true;}else{isTrue=false;}} + if(params.tp||params.tp==''){if(codeDetail.tp.indexOf(params.tp)>=0){isTrue=true;}else{isTrue=false;}} + if(params.secondCodeRow||params.secondCodeRow==''){if(codeDetail.secondCodeRow.indexOf(params.secondCodeRow)>=0){isTrue=true;}else{isTrue=false;}} + if(params.deptid||params.deptid==''){if(codeDetail.deptid.indexOf(params.deptid)>=0){isTrue=true;}else{isTrue=false;}} + if(params.codeRow||params.codeRow==''){if(codeDetail.codeRow.indexOf(params.codeRow)>=0){isTrue=true;}else{isTrue=false;}} + if(params.dtcodeId||params.dtcodeId==''){if(codeDetail.dtcodeId.indexOf(params.dtcodeId)>=0){isTrue=true;}else{isTrue=false;}} + if(params.dtcodeName||params.dtcodeName==''){if(codeDetail.dtcodeName.indexOf(params.dtcodeName)>=0){isTrue=true;}else{isTrue=false;}} + return isTrue; + }); + if(!config.params.currentPage){ + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + data: mockCodeDetails + }]); + }, 1000); + }); + } + + let {pageSize,currentPage, total} = config.params; + total = mockCodeDetails.length; + mockCodeDetails = mockCodeDetails.filter((codeDetail, index) => index < pageSize * currentPage && index >= pageSize * (currentPage - 1)); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + pageInfo: { + total:total + }, + data: mockCodeDetails, + tips:{ + isOk:true, + msg:'查询成功' + } + }]); + }, 1000); + }); + }); + + //删除 + mock.onPost('/mdp/sys/codeDetail/del').reply(config => { + var params = JSON.parse( config.data ); + let { dcodeRow } = params; + _CodeDetails = _CodeDetails.filter(codeDetail => codeDetail.dcodeRow !== dcodeRow); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + tips:{ + isOk:true, + msg:'删除成功' + } + }]); + }, 500); + }); + }); + + //批量删除 + mock.onPost('/mdp/sys/codeDetail/batchDel').reply(config => { + var params = JSON.parse( config.data ); + _CodeDetails = _CodeDetails.filter(codeDetail => !params.includes(codeDetail.dcodeRow)); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + tips:{ + isOk:true, + msg:'删除成功' + } + }]); + }, 500); + }); + }); + + //编辑 + mock.onPost('/mdp/sys/codeDetail/edit').reply(config => { + var params = JSON.parse( config.data ); + let { dcodeRow,codeValue,codeName,ifdefault,state,codeBeg,codeEnd,createPerson,createDate,loperatePerson,loperateDate,seqOrder,keys,fp,sp,tp,secondCodeRow,deptid,codeRow,dtcodeId,dtcodeName } = params; + _CodeDetails.some(codeDetail => { + if (codeDetail.dcodeRow === dcodeRow) { + codeDetail.dcodeRow = dcodeRow; + codeDetail.codeValue = codeValue; + codeDetail.codeName = codeName; + codeDetail.ifdefault = ifdefault; + codeDetail.state = state; + codeDetail.codeBeg = codeBeg; + codeDetail.codeEnd = codeEnd; + codeDetail.createPerson = createPerson; + codeDetail.createDate = createDate; + codeDetail.loperatePerson = loperatePerson; + codeDetail.loperateDate = loperateDate; + codeDetail.seqOrder = seqOrder; + codeDetail.keys = keys; + codeDetail.fp = fp; + codeDetail.sp = sp; + codeDetail.tp = tp; + codeDetail.secondCodeRow = secondCodeRow; + codeDetail.deptid = deptid; + codeDetail.codeRow = codeRow; + codeDetail.dtcodeId = dtcodeId; + codeDetail.dtcodeName = dtcodeName + return true; + } + }); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + tips:{ + isOk:true, + msg:'编辑成功' + } + }]); + }, 500); + }); + }); + + //新增 + mock.onPost('/mdp/sys/codeDetail/add').reply(config => { + var params = JSON.parse( config.data ); + let { dcodeRow,codeValue,codeName,ifdefault,state,codeBeg,codeEnd,createPerson,createDate,loperatePerson,loperateDate,seqOrder,keys,fp,sp,tp,secondCodeRow,deptid,codeRow,dtcodeId,dtcodeName } = params; + _CodeDetails.push({ + dcodeRow:dcodeRow, + codeValue:codeValue, + codeName:codeName, + ifdefault:ifdefault, + state:state, + codeBeg:codeBeg, + codeEnd:codeEnd, + createPerson:createPerson, + createDate:createDate, + loperatePerson:loperatePerson, + loperateDate:loperateDate, + seqOrder:seqOrder, + keys:keys, + fp:fp, + sp:sp, + tp:tp, + secondCodeRow:secondCodeRow, + deptid:deptid, + codeRow:codeRow, + dtcodeId:dtcodeId, + dtcodeName:dtcodeName + }); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + tips:{ + isOk:true, + msg:'新增成功' + } + }]); + }, 500); + }); + }); + + } +}; \ No newline at end of file diff --git a/src/mock/mdp/sys/codeMock.js b/src/mock/mdp/sys/codeMock.js new file mode 100644 index 00000000..e5e77467 --- /dev/null +++ b/src/mock/mdp/sys/codeMock.js @@ -0,0 +1,186 @@ +import { Codes } from './code'; +let _Codes = Codes; +/** + * 拷贝下面两行到 mock/index.js中,即可支持客户端虚拟数据、免服务端连接 + * import CodeMock from './mdp/sys/codeMock'; + * CodeMock.bootstrap(mock); + */ +export default { + /** + * mock bootstrap + */ + bootstrap(mock) { + + //获取列表 模糊查询、根据关键字查询 + mock.onGet('/mdp/sys/code/listKey').reply(config => { + let params = config.params; + let mockCodes = _Codes.filter(code => { + if(params.codeRow||params.codeRow==''){ if( code.codeRow.indexOf(params.codeRow)>=0) return true;} + if(params.tcodeId||params.tcodeId==''){ if( code.tcodeId.indexOf(params.tcodeId)>=0) return true;} + if(params.tcodeName||params.tcodeName==''){ if( code.tcodeName.indexOf(params.tcodeName)>=0) return true;} + if(params.remark||params.remark==''){ if( code.remark.indexOf(params.remark)>=0) return true;} + if(params.state||params.state==''){ if( code.state.indexOf(params.state)>=0) return true;} + if(params.codeBeg||params.codeBeg==''){ if( code.codeBeg.indexOf(params.codeBeg)>=0) return true;} + if(params.codeEnd||params.codeEnd==''){ if( code.codeEnd.indexOf(params.codeEnd)>=0) return true;} + if(params.createPerson||params.createPerson==''){ if( code.createPerson.indexOf(params.createPerson)>=0) return true;} + if(params.createDate||params.createDate==''){ if( code.createDate.indexOf(params.createDate)>=0) return true;} + if(params.loperatePerson||params.loperatePerson==''){ if( code.loperatePerson.indexOf(params.loperatePerson)>=0) return true;} + if(params.loperateDate||params.loperateDate==''){ if( code.loperateDate.indexOf(params.loperateDate)>=0) return true;} + return false; + }); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + data: mockCodes + }]); + }, 1000); + }); + }); + + + + //获取列表(分页/不分页) + mock.onGet('/mdp/sys/code/list').reply(config => { + let params = config.params; + let mockCodes = _Codes.filter(code => { + var isTrue=false; + if(params.codeRow||params.codeRow==''){if(code.codeRow.indexOf(params.codeRow)>=0){isTrue=true;}else{isTrue=false;}} + if(params.tcodeId||params.tcodeId==''){if(code.tcodeId.indexOf(params.tcodeId)>=0){isTrue=true;}else{isTrue=false;}} + if(params.tcodeName||params.tcodeName==''){if(code.tcodeName.indexOf(params.tcodeName)>=0){isTrue=true;}else{isTrue=false;}} + if(params.remark||params.remark==''){if(code.remark.indexOf(params.remark)>=0){isTrue=true;}else{isTrue=false;}} + if(params.state||params.state==''){if(code.state.indexOf(params.state)>=0){isTrue=true;}else{isTrue=false;}} + if(params.codeBeg||params.codeBeg==''){if(code.codeBeg.indexOf(params.codeBeg)>=0){isTrue=true;}else{isTrue=false;}} + if(params.codeEnd||params.codeEnd==''){if(code.codeEnd.indexOf(params.codeEnd)>=0){isTrue=true;}else{isTrue=false;}} + if(params.createPerson||params.createPerson==''){if(code.createPerson.indexOf(params.createPerson)>=0){isTrue=true;}else{isTrue=false;}} + if(params.createDate||params.createDate==''){if(code.createDate.indexOf(params.createDate)>=0){isTrue=true;}else{isTrue=false;}} + if(params.loperatePerson||params.loperatePerson==''){if(code.loperatePerson.indexOf(params.loperatePerson)>=0){isTrue=true;}else{isTrue=false;}} + if(params.loperateDate||params.loperateDate==''){if(code.loperateDate.indexOf(params.loperateDate)>=0){isTrue=true;}else{isTrue=false;}} + return isTrue; + }); + if(!config.params.currentPage){ + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + data: mockCodes + }]); + }, 1000); + }); + } + + let {pageSize,currentPage, total} = config.params; + total = mockCodes.length; + mockCodes = mockCodes.filter((code, index) => index < pageSize * currentPage && index >= pageSize * (currentPage - 1)); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + pageInfo: { + total:total + }, + data: mockCodes, + tips:{ + isOk:true, + msg:'查询成功' + } + }]); + }, 1000); + }); + }); + + //删除 + mock.onPost('/mdp/sys/code/del').reply(config => { + var params = JSON.parse( config.data ); + let { codeRow } = params; + _Codes = _Codes.filter(code => code.codeRow !== codeRow); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + tips:{ + isOk:true, + msg:'删除成功' + } + }]); + }, 500); + }); + }); + + //批量删除 + mock.onPost('/mdp/sys/code/batchDel').reply(config => { + var params = JSON.parse( config.data ); + + codeRows = codeRows.split(','); + _Codes = _Codes.filter(code => !params.includes(code.codeRow)); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + tips:{ + isOk:true, + msg:'删除成功' + } + }]); + }, 500); + }); + }); + + //编辑 + mock.onPost('/mdp/sys/code/edit').reply(config => { + var params = JSON.parse( config.data ); + let { codeRow,tcodeId,tcodeName,remark,state,codeBeg,codeEnd,createPerson,createDate,loperatePerson,loperateDate } = params; + _Codes.some(code => { + if (code.codeRow === codeRow) { + code.codeRow = codeRow; + code.tcodeId = tcodeId; + code.tcodeName = tcodeName; + code.remark = remark; + code.state = state; + code.codeBeg = codeBeg; + code.codeEnd = codeEnd; + code.createPerson = createPerson; + code.createDate = createDate; + code.loperatePerson = loperatePerson; + code.loperateDate = loperateDate + return true; + } + }); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + tips:{ + isOk:true, + msg:'编辑成功' + } + }]); + }, 500); + }); + }); + + //新增 + mock.onPost('/mdp/sys/code/add').reply(config => { + var params = JSON.parse( config.data ); + let { codeRow,tcodeId,tcodeName,remark,state,codeBeg,codeEnd,createPerson,createDate,loperatePerson,loperateDate } = params; + _Codes.push({ + codeRow:codeRow, + tcodeId:tcodeId, + tcodeName:tcodeName, + remark:remark, + state:state, + codeBeg:codeBeg, + codeEnd:codeEnd, + createPerson:createPerson, + createDate:createDate, + loperatePerson:loperatePerson, + loperateDate:loperateDate + }); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + tips:{ + isOk:true, + msg:'新增成功' + } + }]); + }, 500); + }); + }); + + } +}; \ No newline at end of file diff --git a/src/mock/mdp/sys/codeSecond.js b/src/mock/mdp/sys/codeSecond.js new file mode 100644 index 00000000..1c9a5486 --- /dev/null +++ b/src/mock/mdp/sys/codeSecond.js @@ -0,0 +1,18 @@ + import Mock from 'mockjs'; + +const CodeSeconds = []; + +for (let i = 0; i < 25; i++) { + CodeSeconds.push(Mock.mock({ + secondCodeRow:Mock.Random.string(5), + codeRow:Mock.Random.ctitle(1,0) , + dtcodeId:Mock.Random.ctitle(1,2) , + dtcodeName:Mock.Random.ctitle(1,2) , + fp:Mock.Random.ctitle(1,0) , + sp:Mock.Random.ctitle(1,0) , + state:Mock.Random.character('lower') , + deptid:Mock.Random.ctitle(1,0) + })); +} + +export { CodeSeconds }; diff --git a/src/mock/mdp/sys/codeSecondMock.js b/src/mock/mdp/sys/codeSecondMock.js new file mode 100644 index 00000000..6e8377dd --- /dev/null +++ b/src/mock/mdp/sys/codeSecondMock.js @@ -0,0 +1,172 @@ +import { CodeSeconds } from './codeSecond'; +let _CodeSeconds = CodeSeconds; +/** + * 拷贝下面两行到 mock/index.js中,即可支持客户端虚拟数据、免服务端连接 + * import CodeSecondMock from './mdp/sys/codeSecondMock'; + * CodeSecondMock.bootstrap(mock); + */ +export default { + /** + * mock bootstrap + */ + bootstrap(mock) { + + //获取列表 模糊查询、根据关键字查询 + mock.onGet('/mdp/sys/codeSecond/listKey').reply(config => { + let params = config.params; + let mockCodeSeconds = _CodeSeconds.filter(codeSecond => { + if(params.secondCodeRow||params.secondCodeRow==''){ if( codeSecond.secondCodeRow.indexOf(params.secondCodeRow)>=0) return true;} + if(params.codeRow||params.codeRow==''){ if( codeSecond.codeRow.indexOf(params.codeRow)>=0) return true;} + if(params.dtcodeId||params.dtcodeId==''){ if( codeSecond.dtcodeId.indexOf(params.dtcodeId)>=0) return true;} + if(params.dtcodeName||params.dtcodeName==''){ if( codeSecond.dtcodeName.indexOf(params.dtcodeName)>=0) return true;} + if(params.fp||params.fp==''){ if( codeSecond.fp.indexOf(params.fp)>=0) return true;} + if(params.sp||params.sp==''){ if( codeSecond.sp.indexOf(params.sp)>=0) return true;} + if(params.state||params.state==''){ if( codeSecond.state.indexOf(params.state)>=0) return true;} + if(params.deptid||params.deptid==''){ if( codeSecond.deptid.indexOf(params.deptid)>=0) return true;} + return false; + }); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + data: mockCodeSeconds + }]); + }, 1000); + }); + }); + + + + //获取列表(分页/不分页) + mock.onGet('/mdp/sys/codeSecond/list').reply(config => { + let params = config.params; + let mockCodeSeconds = _CodeSeconds.filter(codeSecond => { + var isTrue=false; + if(params.secondCodeRow||params.secondCodeRow==''){if(codeSecond.secondCodeRow.indexOf(params.secondCodeRow)>=0){isTrue=true;}else{isTrue=false;}} + if(params.codeRow||params.codeRow==''){if(codeSecond.codeRow.indexOf(params.codeRow)>=0){isTrue=true;}else{isTrue=false;}} + if(params.dtcodeId||params.dtcodeId==''){if(codeSecond.dtcodeId.indexOf(params.dtcodeId)>=0){isTrue=true;}else{isTrue=false;}} + if(params.dtcodeName||params.dtcodeName==''){if(codeSecond.dtcodeName.indexOf(params.dtcodeName)>=0){isTrue=true;}else{isTrue=false;}} + if(params.fp||params.fp==''){if(codeSecond.fp.indexOf(params.fp)>=0){isTrue=true;}else{isTrue=false;}} + if(params.sp||params.sp==''){if(codeSecond.sp.indexOf(params.sp)>=0){isTrue=true;}else{isTrue=false;}} + if(params.state||params.state==''){if(codeSecond.state.indexOf(params.state)>=0){isTrue=true;}else{isTrue=false;}} + if(params.deptid||params.deptid==''){if(codeSecond.deptid.indexOf(params.deptid)>=0){isTrue=true;}else{isTrue=false;}} + return isTrue; + }); + if(!config.params.currentPage){ + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + data: mockCodeSeconds + }]); + }, 1000); + }); + } + + let {pageSize,currentPage, total} = config.params; + total = mockCodeSeconds.length; + mockCodeSeconds = mockCodeSeconds.filter((codeSecond, index) => index < pageSize * currentPage && index >= pageSize * (currentPage - 1)); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + pageInfo: { + total:total + }, + data: mockCodeSeconds, + tips:{ + isOk:true, + msg:'查询成功' + } + }]); + }, 1000); + }); + }); + + //删除 + mock.onPost('/mdp/sys/codeSecond/del').reply(config => { + var params = JSON.parse( config.data ); + let { secondCodeRow } = params; + _CodeSeconds = _CodeSeconds.filter(codeSecond => codeSecond.secondCodeRow !== secondCodeRow); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + tips:{ + isOk:true, + msg:'删除成功' + } + }]); + }, 500); + }); + }); + + //批量删除 + mock.onPost('/mdp/sys/codeSecond/batchDel').reply(config => { + var params = JSON.parse( config.data ); + _CodeSeconds = _CodeSeconds.filter(codeSecond => !params.includes(codeSecond.secondCodeRow)); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + tips:{ + isOk:true, + msg:'删除成功' + } + }]); + }, 500); + }); + }); + + //编辑 + mock.onPost('/mdp/sys/codeSecond/edit').reply(config => { + var params = JSON.parse( config.data ); + let { secondCodeRow,codeRow,dtcodeId,dtcodeName,fp,sp,state,deptid } = params; + _CodeSeconds.some(codeSecond => { + if (codeSecond.secondCodeRow === secondCodeRow) { + codeSecond.secondCodeRow = secondCodeRow; + codeSecond.codeRow = codeRow; + codeSecond.dtcodeId = dtcodeId; + codeSecond.dtcodeName = dtcodeName; + codeSecond.fp = fp; + codeSecond.sp = sp; + codeSecond.state = state; + codeSecond.deptid = deptid + return true; + } + }); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + tips:{ + isOk:true, + msg:'编辑成功' + } + }]); + }, 500); + }); + }); + + //新增 + mock.onPost('/mdp/sys/codeSecond/add').reply(config => { + var params = JSON.parse( config.data ); + let { secondCodeRow,codeRow,dtcodeId,dtcodeName,fp,sp,state,deptid } = params; + _CodeSeconds.push({ + secondCodeRow:secondCodeRow, + codeRow:codeRow, + dtcodeId:dtcodeId, + dtcodeName:dtcodeName, + fp:fp, + sp:sp, + state:state, + deptid:deptid + }); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + tips:{ + isOk:true, + msg:'新增成功' + } + }]); + }, 500); + }); + }); + + } +}; \ No newline at end of file diff --git a/src/mock/mdp/sys/company.js b/src/mock/mdp/sys/company.js new file mode 100644 index 00000000..18cc0dd8 --- /dev/null +++ b/src/mock/mdp/sys/company.js @@ -0,0 +1,17 @@ + import Mock from 'mockjs'; + +const Companys = []; + +for (let i = 0; i < 25; i++) { + Companys.push(Mock.mock({ + id:Mock.Random.string(5), + companyName:Mock.Random.ctitle(1,0) , + districtId:Mock.Random.ctitle(1,0) , + categoryId:Mock.Random.ctitle(1,0) , + phoneNo:Mock.Random.ctitle(1,0) , + orgId:Mock.Random.ctitle(1,0) , + address:Mock.Random.ctitle(1,0) + })); +} + +export { Companys }; diff --git a/src/mock/mdp/sys/companyCategory.js b/src/mock/mdp/sys/companyCategory.js new file mode 100644 index 00000000..5f1faaf6 --- /dev/null +++ b/src/mock/mdp/sys/companyCategory.js @@ -0,0 +1,13 @@ + import Mock from 'mockjs'; + +const CompanyCategorys = []; + +for (let i = 0; i < 25; i++) { + CompanyCategorys.push(Mock.mock({ + id:Mock.Random.string(5), + categoryName:Mock.Random.ctitle(1,0) , + pid:Mock.Random.ctitle(1,0) + })); +} + +export { CompanyCategorys }; diff --git a/src/mock/mdp/sys/companyCategoryMock.js b/src/mock/mdp/sys/companyCategoryMock.js new file mode 100644 index 00000000..0c952254 --- /dev/null +++ b/src/mock/mdp/sys/companyCategoryMock.js @@ -0,0 +1,152 @@ +import { CompanyCategorys } from './companyCategory'; +let _CompanyCategorys = CompanyCategorys; +/** + * 拷贝下面两行到 mock/index.js中,即可支持客户端虚拟数据、免服务端连接 + * import CompanyCategoryMock from './mdp/sys/companyCategoryMock'; + * CompanyCategoryMock.bootstrap(mock); + */ +export default { + /** + * mock bootstrap + */ + bootstrap(mock) { + + //获取列表 模糊查询、根据关键字查询 + mock.onGet('/mdp/sys/companyCategory/listKey').reply(config => { + let params = config.params; + let mockCompanyCategorys = _CompanyCategorys.filter(companyCategory => { + if(params.id||params.id==''){ if( companyCategory.id.indexOf(params.id)>=0) return true;} + if(params.categoryName||params.categoryName==''){ if( companyCategory.categoryName.indexOf(params.categoryName)>=0) return true;} + if(params.pid||params.pid==''){ if( companyCategory.pid.indexOf(params.pid)>=0) return true;} + return false; + }); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + data: mockCompanyCategorys + }]); + }, 1000); + }); + }); + + + + //获取列表(分页/不分页) + mock.onGet('/mdp/sys/companyCategory/list').reply(config => { + let params = config.params; + let mockCompanyCategorys = _CompanyCategorys.filter(companyCategory => { + var isTrue=false; + if(params.id||params.id==''){if(companyCategory.id.indexOf(params.id)>=0){isTrue=true;}else{isTrue=false;}} + if(params.categoryName||params.categoryName==''){if(companyCategory.categoryName.indexOf(params.categoryName)>=0){isTrue=true;}else{isTrue=false;}} + if(params.pid||params.pid==''){if(companyCategory.pid.indexOf(params.pid)>=0){isTrue=true;}else{isTrue=false;}} + return isTrue; + }); + if(!config.params.currentPage){ + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + data: mockCompanyCategorys + }]); + }, 1000); + }); + } + + let {pageSize,currentPage, total} = config.params; + total = mockCompanyCategorys.length; + mockCompanyCategorys = mockCompanyCategorys.filter((companyCategory, index) => index < pageSize * currentPage && index >= pageSize * (currentPage - 1)); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + pageInfo: { + total:total + }, + data: mockCompanyCategorys, + tips:{ + isOk:true, + msg:'查询成功' + } + }]); + }, 1000); + }); + }); + + //删除 + mock.onPost('/mdp/sys/companyCategory/del').reply(config => { + var params = JSON.parse( config.data ); + let { id } = params; + _CompanyCategorys = _CompanyCategorys.filter(companyCategory => companyCategory.id !== id); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + tips:{ + isOk:true, + msg:'删除成功' + } + }]); + }, 500); + }); + }); + + //批量删除 + mock.onPost('/mdp/sys/companyCategory/batchDel').reply(config => { + var params = JSON.parse( config.data ); + _CompanyCategorys = _CompanyCategorys.filter(companyCategory => !params.includes(companyCategory.id)); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + tips:{ + isOk:true, + msg:'删除成功' + } + }]); + }, 500); + }); + }); + + //编辑 + mock.onPost('/mdp/sys/companyCategory/edit').reply(config => { + var params = JSON.parse( config.data ); + let { id,categoryName,pid } = params; + _CompanyCategorys.some(companyCategory => { + if (companyCategory.id === id) { + companyCategory.id = id; + companyCategory.categoryName = categoryName; + companyCategory.pid = pid + return true; + } + }); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + tips:{ + isOk:true, + msg:'编辑成功' + } + }]); + }, 500); + }); + }); + + //新增 + mock.onPost('/mdp/sys/companyCategory/add').reply(config => { + var params = JSON.parse( config.data ); + let { id,categoryName,pid } = params; + _CompanyCategorys.push({ + id:id, + categoryName:categoryName, + pid:pid + }); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + tips:{ + isOk:true, + msg:'新增成功' + } + }]); + }, 500); + }); + }); + + } +}; \ No newline at end of file diff --git a/src/mock/mdp/sys/companyMock.js b/src/mock/mdp/sys/companyMock.js new file mode 100644 index 00000000..8d242131 --- /dev/null +++ b/src/mock/mdp/sys/companyMock.js @@ -0,0 +1,168 @@ +import { Companys } from './company'; +let _Companys = Companys; +/** + * 拷贝下面两行到 mock/index.js中,即可支持客户端虚拟数据、免服务端连接 + * import CompanyMock from './mdp/sys/companyMock'; + * CompanyMock.bootstrap(mock); + */ +export default { + /** + * mock bootstrap + */ + bootstrap(mock) { + + //获取列表 模糊查询、根据关键字查询 + mock.onGet('/mdp/sys/company/listKey').reply(config => { + let params = config.params; + let mockCompanys = _Companys.filter(company => { + if(params.id||params.id==''){ if( company.id.indexOf(params.id)>=0) return true;} + if(params.companyName||params.companyName==''){ if( company.companyName.indexOf(params.companyName)>=0) return true;} + if(params.districtId||params.districtId==''){ if( company.districtId.indexOf(params.districtId)>=0) return true;} + if(params.categoryId||params.categoryId==''){ if( company.categoryId.indexOf(params.categoryId)>=0) return true;} + if(params.phoneNo||params.phoneNo==''){ if( company.phoneNo.indexOf(params.phoneNo)>=0) return true;} + if(params.orgId||params.orgId==''){ if( company.orgId.indexOf(params.orgId)>=0) return true;} + if(params.address||params.address==''){ if( company.address.indexOf(params.address)>=0) return true;} + return false; + }); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + data: mockCompanys + }]); + }, 1000); + }); + }); + + + + //获取列表(分页/不分页) + mock.onGet('/mdp/sys/company/list').reply(config => { + let params = config.params; + let mockCompanys = _Companys.filter(company => { + var isTrue=false; + if(params.id||params.id==''){if(company.id.indexOf(params.id)>=0){isTrue=true;}else{isTrue=false;}} + if(params.companyName||params.companyName==''){if(company.companyName.indexOf(params.companyName)>=0){isTrue=true;}else{isTrue=false;}} + if(params.districtId||params.districtId==''){if(company.districtId.indexOf(params.districtId)>=0){isTrue=true;}else{isTrue=false;}} + if(params.categoryId||params.categoryId==''){if(company.categoryId.indexOf(params.categoryId)>=0){isTrue=true;}else{isTrue=false;}} + if(params.phoneNo||params.phoneNo==''){if(company.phoneNo.indexOf(params.phoneNo)>=0){isTrue=true;}else{isTrue=false;}} + if(params.orgId||params.orgId==''){if(company.orgId.indexOf(params.orgId)>=0){isTrue=true;}else{isTrue=false;}} + if(params.address||params.address==''){if(company.address.indexOf(params.address)>=0){isTrue=true;}else{isTrue=false;}} + return isTrue; + }); + if(!config.params.currentPage){ + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + data: mockCompanys + }]); + }, 1000); + }); + } + + let {pageSize,currentPage, total} = config.params; + total = mockCompanys.length; + mockCompanys = mockCompanys.filter((company, index) => index < pageSize * currentPage && index >= pageSize * (currentPage - 1)); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + pageInfo: { + total:total + }, + data: mockCompanys, + tips:{ + isOk:true, + msg:'查询成功' + } + }]); + }, 1000); + }); + }); + + //删除 + mock.onPost('/mdp/sys/company/del').reply(config => { + var params = JSON.parse( config.data ); + let { id } = params; + _Companys = _Companys.filter(company => company.id !== id); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + tips:{ + isOk:true, + msg:'删除成功' + } + }]); + }, 500); + }); + }); + + //批量删除 + mock.onPost('/mdp/sys/company/batchDel').reply(config => { + var params = JSON.parse( config.data ); + _Companys = _Companys.filter(company => !params.includes(company.id)); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + tips:{ + isOk:true, + msg:'删除成功' + } + }]); + }, 500); + }); + }); + + //编辑 + mock.onPost('/mdp/sys/company/edit').reply(config => { + var params = JSON.parse( config.data ); + let { id,companyName,districtId,categoryId,phoneNo,orgId,address } = params; + _Companys.some(company => { + if (company.id === id) { + company.id = id; + company.companyName = companyName; + company.districtId = districtId; + company.categoryId = categoryId; + company.phoneNo = phoneNo; + company.orgId = orgId; + company.address = address + return true; + } + }); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + tips:{ + isOk:true, + msg:'编辑成功' + } + }]); + }, 500); + }); + }); + + //新增 + mock.onPost('/mdp/sys/company/add').reply(config => { + var params = JSON.parse( config.data ); + let { id,companyName,districtId,categoryId,phoneNo,orgId,address } = params; + _Companys.push({ + id:id, + companyName:companyName, + districtId:districtId, + categoryId:categoryId, + phoneNo:phoneNo, + orgId:orgId, + address:address + }); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + tips:{ + isOk:true, + msg:'新增成功' + } + }]); + }, 500); + }); + }); + + } +}; \ No newline at end of file diff --git a/src/mock/mdp/sys/dept.js b/src/mock/mdp/sys/dept.js new file mode 100644 index 00000000..762428b2 --- /dev/null +++ b/src/mock/mdp/sys/dept.js @@ -0,0 +1,22 @@ + import Mock from 'mockjs'; + +const Depts = []; + +for (let i = 0; i < 25; i++) { + Depts.push(Mock.mock({ + deptid:Mock.Random.string(5), + deptName:Mock.Random.ctitle(1,4) , + pdeptid:Mock.Random.ctitle(1,0) , + deptType:Mock.Random.character('lower') , + state:Mock.Random.ctitle(1,4) , + manager:Mock.Random.ctitle(1,0) , + leader:Mock.Random.ctitle(1,0) , + shortName:Mock.Random.ctitle(1,2) , + displayDeptid:Mock.Random.ctitle(1,0) , + orgType:Mock.Random.character('lower') , + managerName:Mock.Random.ctitle(1,0) , + leaderName:Mock.Random.ctitle(1,0) + })); +} + +export { Depts }; diff --git a/src/mock/mdp/sys/deptExtinfo.js b/src/mock/mdp/sys/deptExtinfo.js new file mode 100644 index 00000000..153ab5ac --- /dev/null +++ b/src/mock/mdp/sys/deptExtinfo.js @@ -0,0 +1,13 @@ + import Mock from 'mockjs'; + +const DeptExtinfos = []; + +for (let i = 0; i < 25; i++) { + DeptExtinfos.push(Mock.mock({ + deptid:Mock.Random.string(5), + extState:Mock.Random.character('lower') , + extFlowState:Mock.Random.character('lower') + })); +} + +export { DeptExtinfos }; diff --git a/src/mock/mdp/sys/deptExtinfoMock.js b/src/mock/mdp/sys/deptExtinfoMock.js new file mode 100644 index 00000000..0d4039c7 --- /dev/null +++ b/src/mock/mdp/sys/deptExtinfoMock.js @@ -0,0 +1,152 @@ +import { DeptExtinfos } from './deptExtinfo'; +let _DeptExtinfos = DeptExtinfos; +/** + * 拷贝下面两行到 mock/index.js中,即可支持客户端虚拟数据、免服务端连接 + * import DeptExtinfoMock from './mdp/sys/deptExtinfoMock'; + * DeptExtinfoMock.bootstrap(mock); + */ +export default { + /** + * mock bootstrap + */ + bootstrap(mock) { + + //获取列表 模糊查询、根据关键字查询 + mock.onGet('/mdp/sys/deptExtinfo/listKey').reply(config => { + let params = config.params; + let mockDeptExtinfos = _DeptExtinfos.filter(deptExtinfo => { + if(params.deptid||params.deptid==''){ if( deptExtinfo.deptid.indexOf(params.deptid)>=0) return true;} + if(params.extState||params.extState==''){ if( deptExtinfo.extState.indexOf(params.extState)>=0) return true;} + if(params.extFlowState||params.extFlowState==''){ if( deptExtinfo.extFlowState.indexOf(params.extFlowState)>=0) return true;} + return false; + }); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + data: mockDeptExtinfos + }]); + }, 1000); + }); + }); + + + + //获取列表(分页/不分页) + mock.onGet('/mdp/sys/deptExtinfo/list').reply(config => { + let params = config.params; + let mockDeptExtinfos = _DeptExtinfos.filter(deptExtinfo => { + var isTrue=false; + if(params.deptid||params.deptid==''){if(deptExtinfo.deptid.indexOf(params.deptid)>=0){isTrue=true;}else{isTrue=false;}} + if(params.extState||params.extState==''){if(deptExtinfo.extState.indexOf(params.extState)>=0){isTrue=true;}else{isTrue=false;}} + if(params.extFlowState||params.extFlowState==''){if(deptExtinfo.extFlowState.indexOf(params.extFlowState)>=0){isTrue=true;}else{isTrue=false;}} + return isTrue; + }); + if(!config.params.currentPage){ + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + data: mockDeptExtinfos + }]); + }, 1000); + }); + } + + let {pageSize,currentPage, total} = config.params; + total = mockDeptExtinfos.length; + mockDeptExtinfos = mockDeptExtinfos.filter((deptExtinfo, index) => index < pageSize * currentPage && index >= pageSize * (currentPage - 1)); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + pageInfo: { + total:total + }, + data: mockDeptExtinfos, + tips:{ + isOk:true, + msg:'查询成功' + } + }]); + }, 1000); + }); + }); + + //删除 + mock.onPost('/mdp/sys/deptExtinfo/del').reply(config => { + var params = JSON.parse( config.data ); + let { deptid } = params; + _DeptExtinfos = _DeptExtinfos.filter(deptExtinfo => deptExtinfo.deptid !== deptid); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + tips:{ + isOk:true, + msg:'删除成功' + } + }]); + }, 500); + }); + }); + + //批量删除 + mock.onPost('/mdp/sys/deptExtinfo/batchDel').reply(config => { + var params = JSON.parse( config.data ); + _DeptExtinfos = _DeptExtinfos.filter(deptExtinfo => !params.includes(deptExtinfo.deptid)); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + tips:{ + isOk:true, + msg:'删除成功' + } + }]); + }, 500); + }); + }); + + //编辑 + mock.onPost('/mdp/sys/deptExtinfo/edit').reply(config => { + var params = JSON.parse( config.data ); + let { deptid,extState,extFlowState } = params; + _DeptExtinfos.some(deptExtinfo => { + if (deptExtinfo.deptid === deptid) { + deptExtinfo.deptid = deptid; + deptExtinfo.extState = extState; + deptExtinfo.extFlowState = extFlowState + return true; + } + }); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + tips:{ + isOk:true, + msg:'编辑成功' + } + }]); + }, 500); + }); + }); + + //新增 + mock.onPost('/mdp/sys/deptExtinfo/add').reply(config => { + var params = JSON.parse( config.data ); + let { deptid,extState,extFlowState } = params; + _DeptExtinfos.push({ + deptid:deptid, + extState:extState, + extFlowState:extFlowState + }); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + tips:{ + isOk:true, + msg:'新增成功' + } + }]); + }, 500); + }); + }); + + } +}; \ No newline at end of file diff --git a/src/mock/mdp/sys/deptMch.js b/src/mock/mdp/sys/deptMch.js new file mode 100644 index 00000000..65ae5fbf --- /dev/null +++ b/src/mock/mdp/sys/deptMch.js @@ -0,0 +1,25 @@ + import Mock from 'mockjs'; + +const DeptMchs = []; + +for (let i = 0; i < 25; i++) { + DeptMchs.push(Mock.mock({ + mchid:Mock.Random.string(5), + deptid:Mock.Random.ctitle(1,0) , + mchName:Mock.Random.ctitle(1,0) , + bankName:Mock.Random.ctitle(1,0) , + bankAccount:Mock.Random.ctitle(1,0) , + bankBranchName:Mock.Random.ctitle(1,0) , + creditCode:Mock.Random.ctitle(1,0) , + businessLicenseImage:Mock.Random.ctitle(1,0) , + mchImage:Mock.Random.ctitle(1,0) , + legalPerson:Mock.Random.ctitle(1,0) , + businessLicenseBegin:Mock.Random.date('yyyy-MM-dd') , + businessLicenseEnd:Mock.Random.date('yyyy-MM-dd') , + businessLicenseType:Mock.Random.character('lower') , + mchState:Mock.Random.character('lower') , + mchFlowState:Mock.Random.character('lower') + })); +} + +export { DeptMchs }; diff --git a/src/mock/mdp/sys/deptMchMock.js b/src/mock/mdp/sys/deptMchMock.js new file mode 100644 index 00000000..4f5ab9dd --- /dev/null +++ b/src/mock/mdp/sys/deptMchMock.js @@ -0,0 +1,200 @@ +import { DeptMchs } from './deptMch'; +let _DeptMchs = DeptMchs; +/** + * 拷贝下面两行到 mock/index.js中,即可支持客户端虚拟数据、免服务端连接 + * import DeptMchMock from './mdp/sys/deptMchMock'; + * DeptMchMock.bootstrap(mock); + */ +export default { + /** + * mock bootstrap + */ + bootstrap(mock) { + + //获取列表 模糊查询、根据关键字查询 + mock.onGet('/mdp/sys/deptMch/listKey').reply(config => { + let params = config.params; + let mockDeptMchs = _DeptMchs.filter(deptMch => { + if(params.deptid||params.deptid==''){ if( deptMch.deptid.indexOf(params.deptid)>=0) return true;} + if(params.mchid||params.mchid==''){ if( deptMch.mchid.indexOf(params.mchid)>=0) return true;} + if(params.mchName||params.mchName==''){ if( deptMch.mchName.indexOf(params.mchName)>=0) return true;} + if(params.bankName||params.bankName==''){ if( deptMch.bankName.indexOf(params.bankName)>=0) return true;} + if(params.bankAccount||params.bankAccount==''){ if( deptMch.bankAccount.indexOf(params.bankAccount)>=0) return true;} + if(params.bankBranchName||params.bankBranchName==''){ if( deptMch.bankBranchName.indexOf(params.bankBranchName)>=0) return true;} + if(params.creditCode||params.creditCode==''){ if( deptMch.creditCode.indexOf(params.creditCode)>=0) return true;} + if(params.businessLicenseImage||params.businessLicenseImage==''){ if( deptMch.businessLicenseImage.indexOf(params.businessLicenseImage)>=0) return true;} + if(params.mchImage||params.mchImage==''){ if( deptMch.mchImage.indexOf(params.mchImage)>=0) return true;} + if(params.legalPerson||params.legalPerson==''){ if( deptMch.legalPerson.indexOf(params.legalPerson)>=0) return true;} + if(params.businessLicenseBegin||params.businessLicenseBegin==''){ if( deptMch.businessLicenseBegin.indexOf(params.businessLicenseBegin)>=0) return true;} + if(params.businessLicenseEnd||params.businessLicenseEnd==''){ if( deptMch.businessLicenseEnd.indexOf(params.businessLicenseEnd)>=0) return true;} + if(params.businessLicenseType||params.businessLicenseType==''){ if( deptMch.businessLicenseType.indexOf(params.businessLicenseType)>=0) return true;} + if(params.mchState||params.mchState==''){ if( deptMch.mchState.indexOf(params.mchState)>=0) return true;} + if(params.mchFlowState||params.mchFlowState==''){ if( deptMch.mchFlowState.indexOf(params.mchFlowState)>=0) return true;} + return false; + }); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + data: mockDeptMchs + }]); + }, 1000); + }); + }); + + + + //获取列表(分页/不分页) + mock.onGet('/mdp/sys/deptMch/list').reply(config => { + let params = config.params; + let mockDeptMchs = _DeptMchs.filter(deptMch => { + var isTrue=false; + if(params.deptid||params.deptid==''){if(deptMch.deptid.indexOf(params.deptid)>=0){isTrue=true;}else{isTrue=false;}} + if(params.mchid||params.mchid==''){if(deptMch.mchid.indexOf(params.mchid)>=0){isTrue=true;}else{isTrue=false;}} + if(params.mchName||params.mchName==''){if(deptMch.mchName.indexOf(params.mchName)>=0){isTrue=true;}else{isTrue=false;}} + if(params.bankName||params.bankName==''){if(deptMch.bankName.indexOf(params.bankName)>=0){isTrue=true;}else{isTrue=false;}} + if(params.bankAccount||params.bankAccount==''){if(deptMch.bankAccount.indexOf(params.bankAccount)>=0){isTrue=true;}else{isTrue=false;}} + if(params.bankBranchName||params.bankBranchName==''){if(deptMch.bankBranchName.indexOf(params.bankBranchName)>=0){isTrue=true;}else{isTrue=false;}} + if(params.creditCode||params.creditCode==''){if(deptMch.creditCode.indexOf(params.creditCode)>=0){isTrue=true;}else{isTrue=false;}} + if(params.businessLicenseImage||params.businessLicenseImage==''){if(deptMch.businessLicenseImage.indexOf(params.businessLicenseImage)>=0){isTrue=true;}else{isTrue=false;}} + if(params.mchImage||params.mchImage==''){if(deptMch.mchImage.indexOf(params.mchImage)>=0){isTrue=true;}else{isTrue=false;}} + if(params.legalPerson||params.legalPerson==''){if(deptMch.legalPerson.indexOf(params.legalPerson)>=0){isTrue=true;}else{isTrue=false;}} + if(params.businessLicenseBegin||params.businessLicenseBegin==''){if(deptMch.businessLicenseBegin.indexOf(params.businessLicenseBegin)>=0){isTrue=true;}else{isTrue=false;}} + if(params.businessLicenseEnd||params.businessLicenseEnd==''){if(deptMch.businessLicenseEnd.indexOf(params.businessLicenseEnd)>=0){isTrue=true;}else{isTrue=false;}} + if(params.businessLicenseType||params.businessLicenseType==''){if(deptMch.businessLicenseType.indexOf(params.businessLicenseType)>=0){isTrue=true;}else{isTrue=false;}} + if(params.mchState||params.mchState==''){if(deptMch.mchState.indexOf(params.mchState)>=0){isTrue=true;}else{isTrue=false;}} + if(params.mchFlowState||params.mchFlowState==''){if(deptMch.mchFlowState.indexOf(params.mchFlowState)>=0){isTrue=true;}else{isTrue=false;}} + return isTrue; + }); + if(!config.params.currentPage){ + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + data: mockDeptMchs + }]); + }, 1000); + }); + } + + let {pageSize,currentPage, total} = config.params; + total = mockDeptMchs.length; + mockDeptMchs = mockDeptMchs.filter((deptMch, index) => index < pageSize * currentPage && index >= pageSize * (currentPage - 1)); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + pageInfo: { + total:total + }, + data: mockDeptMchs, + tips:{ + isOk:true, + msg:'查询成功' + } + }]); + }, 1000); + }); + }); + + //删除 + mock.onPost('/mdp/sys/deptMch/del').reply(config => { + var params = JSON.parse( config.data ); + let { mchid } = params; + _DeptMchs = _DeptMchs.filter(deptMch => deptMch.mchid !== mchid); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + tips:{ + isOk:true, + msg:'删除成功' + } + }]); + }, 500); + }); + }); + + //批量删除 + mock.onPost('/mdp/sys/deptMch/batchDel').reply(config => { + var params = JSON.parse( config.data ); + _DeptMchs = _DeptMchs.filter(deptMch => !params.includes(deptMch.mchid)); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + tips:{ + isOk:true, + msg:'删除成功' + } + }]); + }, 500); + }); + }); + + //编辑 + mock.onPost('/mdp/sys/deptMch/edit').reply(config => { + var params = JSON.parse( config.data ); + let { deptid,mchid,mchName,bankName,bankAccount,bankBranchName,creditCode,businessLicenseImage,mchImage,legalPerson,businessLicenseBegin,businessLicenseEnd,businessLicenseType,mchState,mchFlowState } = params; + _DeptMchs.some(deptMch => { + if (deptMch.mchid === mchid) { + deptMch.deptid = deptid; + deptMch.mchid = mchid; + deptMch.mchName = mchName; + deptMch.bankName = bankName; + deptMch.bankAccount = bankAccount; + deptMch.bankBranchName = bankBranchName; + deptMch.creditCode = creditCode; + deptMch.businessLicenseImage = businessLicenseImage; + deptMch.mchImage = mchImage; + deptMch.legalPerson = legalPerson; + deptMch.businessLicenseBegin = businessLicenseBegin; + deptMch.businessLicenseEnd = businessLicenseEnd; + deptMch.businessLicenseType = businessLicenseType; + deptMch.mchState = mchState; + deptMch.mchFlowState = mchFlowState + return true; + } + }); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + tips:{ + isOk:true, + msg:'编辑成功' + } + }]); + }, 500); + }); + }); + + //新增 + mock.onPost('/mdp/sys/deptMch/add').reply(config => { + var params = JSON.parse( config.data ); + let { deptid,mchid,mchName,bankName,bankAccount,bankBranchName,creditCode,businessLicenseImage,mchImage,legalPerson,businessLicenseBegin,businessLicenseEnd,businessLicenseType,mchState,mchFlowState } = params; + _DeptMchs.push({ + deptid:deptid, + mchid:mchid, + mchName:mchName, + bankName:bankName, + bankAccount:bankAccount, + bankBranchName:bankBranchName, + creditCode:creditCode, + businessLicenseImage:businessLicenseImage, + mchImage:mchImage, + legalPerson:legalPerson, + businessLicenseBegin:businessLicenseBegin, + businessLicenseEnd:businessLicenseEnd, + businessLicenseType:businessLicenseType, + mchState:mchState, + mchFlowState:mchFlowState + }); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + tips:{ + isOk:true, + msg:'新增成功' + } + }]); + }, 500); + }); + }); + + } +}; \ No newline at end of file diff --git a/src/mock/mdp/sys/deptMock.js b/src/mock/mdp/sys/deptMock.js new file mode 100644 index 00000000..a70022bc --- /dev/null +++ b/src/mock/mdp/sys/deptMock.js @@ -0,0 +1,188 @@ +import { Depts } from './dept'; +let _Depts = Depts; +/** + * 拷贝下面两行到 mock/index.js中,即可支持客户端虚拟数据、免服务端连接 + * import DeptMock from './mdp/sys/deptMock'; + * DeptMock.bootstrap(mock); + */ +export default { + /** + * mock bootstrap + */ + bootstrap(mock) { + + //获取列表 模糊查询、根据关键字查询 + mock.onGet('/mdp/sys/dept/listKey').reply(config => { + let params = config.params; + let mockDepts = _Depts.filter(dept => { + if(params.deptid||params.deptid==''){ if( dept.deptid.indexOf(params.deptid)>=0) return true;} + if(params.deptName||params.deptName==''){ if( dept.deptName.indexOf(params.deptName)>=0) return true;} + if(params.pdeptid||params.pdeptid==''){ if( dept.pdeptid.indexOf(params.pdeptid)>=0) return true;} + if(params.deptType||params.deptType==''){ if( dept.deptType.indexOf(params.deptType)>=0) return true;} + if(params.state||params.state==''){ if( dept.state.indexOf(params.state)>=0) return true;} + if(params.manager||params.manager==''){ if( dept.manager.indexOf(params.manager)>=0) return true;} + if(params.leader||params.leader==''){ if( dept.leader.indexOf(params.leader)>=0) return true;} + if(params.shortName||params.shortName==''){ if( dept.shortName.indexOf(params.shortName)>=0) return true;} + if(params.displayDeptid||params.displayDeptid==''){ if( dept.displayDeptid.indexOf(params.displayDeptid)>=0) return true;} + if(params.orgType||params.orgType==''){ if( dept.orgType.indexOf(params.orgType)>=0) return true;} + if(params.managerName||params.managerName==''){ if( dept.managerName.indexOf(params.managerName)>=0) return true;} + if(params.leaderName||params.leaderName==''){ if( dept.leaderName.indexOf(params.leaderName)>=0) return true;} + return false; + }); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + data: mockDepts + }]); + }, 1000); + }); + }); + + + + //获取列表(分页/不分页) + mock.onGet('/mdp/sys/dept/list').reply(config => { + let params = config.params; + let mockDepts = _Depts.filter(dept => { + var isTrue=false; + if(params.deptid||params.deptid==''){if(dept.deptid.indexOf(params.deptid)>=0){isTrue=true;}else{isTrue=false;}} + if(params.deptName||params.deptName==''){if(dept.deptName.indexOf(params.deptName)>=0){isTrue=true;}else{isTrue=false;}} + if(params.pdeptid||params.pdeptid==''){if(dept.pdeptid.indexOf(params.pdeptid)>=0){isTrue=true;}else{isTrue=false;}} + if(params.deptType||params.deptType==''){if(dept.deptType.indexOf(params.deptType)>=0){isTrue=true;}else{isTrue=false;}} + if(params.state||params.state==''){if(dept.state.indexOf(params.state)>=0){isTrue=true;}else{isTrue=false;}} + if(params.manager||params.manager==''){if(dept.manager.indexOf(params.manager)>=0){isTrue=true;}else{isTrue=false;}} + if(params.leader||params.leader==''){if(dept.leader.indexOf(params.leader)>=0){isTrue=true;}else{isTrue=false;}} + if(params.shortName||params.shortName==''){if(dept.shortName.indexOf(params.shortName)>=0){isTrue=true;}else{isTrue=false;}} + if(params.displayDeptid||params.displayDeptid==''){if(dept.displayDeptid.indexOf(params.displayDeptid)>=0){isTrue=true;}else{isTrue=false;}} + if(params.orgType||params.orgType==''){if(dept.orgType.indexOf(params.orgType)>=0){isTrue=true;}else{isTrue=false;}} + if(params.managerName||params.managerName==''){if(dept.managerName.indexOf(params.managerName)>=0){isTrue=true;}else{isTrue=false;}} + if(params.leaderName||params.leaderName==''){if(dept.leaderName.indexOf(params.leaderName)>=0){isTrue=true;}else{isTrue=false;}} + return isTrue; + }); + if(!config.params.currentPage){ + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + data: mockDepts + }]); + }, 1000); + }); + } + + let {pageSize,currentPage, total} = config.params; + total = mockDepts.length; + mockDepts = mockDepts.filter((dept, index) => index < pageSize * currentPage && index >= pageSize * (currentPage - 1)); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + pageInfo: { + total:total + }, + data: mockDepts, + tips:{ + isOk:true, + msg:'查询成功' + } + }]); + }, 1000); + }); + }); + + //删除 + mock.onPost('/mdp/sys/dept/del').reply(config => { + var params = JSON.parse( config.data ); + let { deptid } = params; + _Depts = _Depts.filter(dept => dept.deptid !== deptid); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + tips:{ + isOk:true, + msg:'删除成功' + } + }]); + }, 500); + }); + }); + + //批量删除 + mock.onPost('/mdp/sys/dept/batchDel').reply(config => { + var params = JSON.parse( config.data ); + _Depts = _Depts.filter(dept => !params.includes(dept.deptid)); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + tips:{ + isOk:true, + msg:'删除成功' + } + }]); + }, 500); + }); + }); + + //编辑 + mock.onPost('/mdp/sys/dept/edit').reply(config => { + var params = JSON.parse( config.data ); + let { deptid,deptName,pdeptid,deptType,state,manager,leader,shortName,displayDeptid,orgType,managerName,leaderName } = params; + _Depts.some(dept => { + if (dept.deptid === deptid) { + dept.deptid = deptid; + dept.deptName = deptName; + dept.pdeptid = pdeptid; + dept.deptType = deptType; + dept.state = state; + dept.manager = manager; + dept.leader = leader; + dept.shortName = shortName; + dept.displayDeptid = displayDeptid; + dept.orgType = orgType; + dept.managerName = managerName; + dept.leaderName = leaderName + return true; + } + }); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + tips:{ + isOk:true, + msg:'编辑成功' + } + }]); + }, 500); + }); + }); + + //新增 + mock.onPost('/mdp/sys/dept/add').reply(config => { + var params = JSON.parse( config.data ); + let { deptid,deptName,pdeptid,deptType,state,manager,leader,shortName,displayDeptid,orgType,managerName,leaderName } = params; + _Depts.push({ + deptid:deptid, + deptName:deptName, + pdeptid:pdeptid, + deptType:deptType, + state:state, + manager:manager, + leader:leader, + shortName:shortName, + displayDeptid:displayDeptid, + orgType:orgType, + managerName:managerName, + leaderName:leaderName + }); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + tips:{ + isOk:true, + msg:'新增成功' + } + }]); + }, 500); + }); + }); + + } +}; \ No newline at end of file diff --git a/src/mock/mdp/sys/operDataTrail.js b/src/mock/mdp/sys/operDataTrail.js new file mode 100644 index 00000000..953daf75 --- /dev/null +++ b/src/mock/mdp/sys/operDataTrail.js @@ -0,0 +1,19 @@ + import Mock from 'mockjs'; + +const OperDataTrails = []; + +for (let i = 0; i < 25; i++) { + OperDataTrails.push(Mock.mock({ + id:Mock.Random.string(5), + userid:Mock.Random.ctitle(1,0) , + startDate:Mock.Random.date('yyyy-MM-dd') , + endDate:Mock.Random.date('yyyy-MM-dd') , + fkey:Mock.Random.ctitle(1,0) , + skey:Mock.Random.ctitle(1,0) , + tableName:Mock.Random.ctitle(1,0) , + fields:Mock.Random.ctitle(1,0) , + remark:Mock.Random.ctitle(1,0) + })); +} + +export { OperDataTrails }; diff --git a/src/mock/mdp/sys/operDataTrailMock.js b/src/mock/mdp/sys/operDataTrailMock.js new file mode 100644 index 00000000..4c2b25e9 --- /dev/null +++ b/src/mock/mdp/sys/operDataTrailMock.js @@ -0,0 +1,176 @@ +import { OperDataTrails } from './operDataTrail'; +let _OperDataTrails = OperDataTrails; +/** + * 拷贝下面两行到 mock/index.js中,即可支持客户端虚拟数据、免服务端连接 + * import OperDataTrailMock from './mdp/sys/operDataTrailMock'; + * OperDataTrailMock.bootstrap(mock); + */ +export default { + /** + * mock bootstrap + */ + bootstrap(mock) { + + //获取列表 模糊查询、根据关键字查询 + mock.onGet('/mdp/sys/operDataTrail/listKey').reply(config => { + let params = config.params; + let mockOperDataTrails = _OperDataTrails.filter(operDataTrail => { + if(params.userid||params.userid==''){ if( operDataTrail.userid.indexOf(params.userid)>=0) return true;} + if(params.startDate||params.startDate==''){ if( operDataTrail.startDate.indexOf(params.startDate)>=0) return true;} + if(params.endDate||params.endDate==''){ if( operDataTrail.endDate.indexOf(params.endDate)>=0) return true;} + if(params.fkey||params.fkey==''){ if( operDataTrail.fkey.indexOf(params.fkey)>=0) return true;} + if(params.skey||params.skey==''){ if( operDataTrail.skey.indexOf(params.skey)>=0) return true;} + if(params.tableName||params.tableName==''){ if( operDataTrail.tableName.indexOf(params.tableName)>=0) return true;} + if(params.fields||params.fields==''){ if( operDataTrail.fields.indexOf(params.fields)>=0) return true;} + if(params.remark||params.remark==''){ if( operDataTrail.remark.indexOf(params.remark)>=0) return true;} + if(params.id||params.id==''){ if( operDataTrail.id.indexOf(params.id)>=0) return true;} + return false; + }); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + data: mockOperDataTrails + }]); + }, 1000); + }); + }); + + + + //获取列表(分页/不分页) + mock.onGet('/mdp/sys/operDataTrail/list').reply(config => { + let params = config.params; + let mockOperDataTrails = _OperDataTrails.filter(operDataTrail => { + var isTrue=false; + if(params.userid||params.userid==''){if(operDataTrail.userid.indexOf(params.userid)>=0){isTrue=true;}else{isTrue=false;}} + if(params.startDate||params.startDate==''){if(operDataTrail.startDate.indexOf(params.startDate)>=0){isTrue=true;}else{isTrue=false;}} + if(params.endDate||params.endDate==''){if(operDataTrail.endDate.indexOf(params.endDate)>=0){isTrue=true;}else{isTrue=false;}} + if(params.fkey||params.fkey==''){if(operDataTrail.fkey.indexOf(params.fkey)>=0){isTrue=true;}else{isTrue=false;}} + if(params.skey||params.skey==''){if(operDataTrail.skey.indexOf(params.skey)>=0){isTrue=true;}else{isTrue=false;}} + if(params.tableName||params.tableName==''){if(operDataTrail.tableName.indexOf(params.tableName)>=0){isTrue=true;}else{isTrue=false;}} + if(params.fields||params.fields==''){if(operDataTrail.fields.indexOf(params.fields)>=0){isTrue=true;}else{isTrue=false;}} + if(params.remark||params.remark==''){if(operDataTrail.remark.indexOf(params.remark)>=0){isTrue=true;}else{isTrue=false;}} + if(params.id||params.id==''){if(operDataTrail.id.indexOf(params.id)>=0){isTrue=true;}else{isTrue=false;}} + return isTrue; + }); + if(!config.params.currentPage){ + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + data: mockOperDataTrails + }]); + }, 1000); + }); + } + + let {pageSize,currentPage, total} = config.params; + total = mockOperDataTrails.length; + mockOperDataTrails = mockOperDataTrails.filter((operDataTrail, index) => index < pageSize * currentPage && index >= pageSize * (currentPage - 1)); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + pageInfo: { + total:total + }, + data: mockOperDataTrails, + tips:{ + isOk:true, + msg:'查询成功' + } + }]); + }, 1000); + }); + }); + + //删除 + mock.onPost('/mdp/sys/operDataTrail/del').reply(config => { + var params = JSON.parse( config.data ); + let { id } = params; + _OperDataTrails = _OperDataTrails.filter(operDataTrail => operDataTrail.id !== id); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + tips:{ + isOk:true, + msg:'删除成功' + } + }]); + }, 500); + }); + }); + + //批量删除 + mock.onPost('/mdp/sys/operDataTrail/batchDel').reply(config => { + var params = JSON.parse( config.data ); + _OperDataTrails = _OperDataTrails.filter(operDataTrail => !params.includes(operDataTrail.id)); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + tips:{ + isOk:true, + msg:'删除成功' + } + }]); + }, 500); + }); + }); + + //编辑 + mock.onPost('/mdp/sys/operDataTrail/edit').reply(config => { + var params = JSON.parse( config.data ); + let { userid,startDate,endDate,fkey,skey,tableName,fields,remark,id } = params; + _OperDataTrails.some(operDataTrail => { + if (operDataTrail.id === id) { + operDataTrail.userid = userid; + operDataTrail.startDate = startDate; + operDataTrail.endDate = endDate; + operDataTrail.fkey = fkey; + operDataTrail.skey = skey; + operDataTrail.tableName = tableName; + operDataTrail.fields = fields; + operDataTrail.remark = remark; + operDataTrail.id = id + return true; + } + }); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + tips:{ + isOk:true, + msg:'编辑成功' + } + }]); + }, 500); + }); + }); + + //新增 + mock.onPost('/mdp/sys/operDataTrail/add').reply(config => { + var params = JSON.parse( config.data ); + let { userid,startDate,endDate,fkey,skey,tableName,fields,remark,id } = params; + _OperDataTrails.push({ + userid:userid, + startDate:startDate, + endDate:endDate, + fkey:fkey, + skey:skey, + tableName:tableName, + fields:fields, + remark:remark, + id:id + }); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + tips:{ + isOk:true, + msg:'新增成功' + } + }]); + }, 500); + }); + }); + + } +}; \ No newline at end of file diff --git a/src/mock/mdp/sys/qx.js b/src/mock/mdp/sys/qx.js new file mode 100644 index 00000000..5ba604b2 --- /dev/null +++ b/src/mock/mdp/sys/qx.js @@ -0,0 +1,17 @@ + import Mock from 'mockjs'; + +const Qxs = []; + +for (let i = 0; i < 25; i++) { + Qxs.push(Mock.mock({ + qxId:Mock.Random.string(5), + qxName:Mock.Random.ctitle(1,0) , + qxType:Mock.Random.ctitle(1,0) , + remark:Mock.Random.ctitle(1,0) , + qxCode:Mock.Random.ctitle(1,0) , + enabled:Mock.Random.character('lower') , + deptid:Mock.Random.ctitle(1,0) + })); +} + +export { Qxs }; diff --git a/src/mock/mdp/sys/qxMock.js b/src/mock/mdp/sys/qxMock.js new file mode 100644 index 00000000..633bac9d --- /dev/null +++ b/src/mock/mdp/sys/qxMock.js @@ -0,0 +1,168 @@ +import { Qxs } from './qx'; +let _Qxs = Qxs; +/** + * 拷贝下面两行到 mock/index.js中,即可支持客户端虚拟数据、免服务端连接 + * import QxMock from './mdp/sys/qxMock'; + * QxMock.bootstrap(mock); + */ +export default { + /** + * mock bootstrap + */ + bootstrap(mock) { + + //获取列表 模糊查询、根据关键字查询 + mock.onGet('/mdp/sys/qx/listKey').reply(config => { + let params = config.params; + let mockQxs = _Qxs.filter(qx => { + if(params.qxId||params.qxId==''){ if( qx.qxId.indexOf(params.qxId)>=0) return true;} + if(params.qxName||params.qxName==''){ if( qx.qxName.indexOf(params.qxName)>=0) return true;} + if(params.qxType||params.qxType==''){ if( qx.qxType.indexOf(params.qxType)>=0) return true;} + if(params.remark||params.remark==''){ if( qx.remark.indexOf(params.remark)>=0) return true;} + if(params.qxCode||params.qxCode==''){ if( qx.qxCode.indexOf(params.qxCode)>=0) return true;} + if(params.enabled||params.enabled==''){ if( qx.enabled.indexOf(params.enabled)>=0) return true;} + if(params.deptid||params.deptid==''){ if( qx.deptid.indexOf(params.deptid)>=0) return true;} + return false; + }); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + data: mockQxs + }]); + }, 1000); + }); + }); + + + + //获取列表(分页/不分页) + mock.onGet('/mdp/sys/qx/list').reply(config => { + let params = config.params; + let mockQxs = _Qxs.filter(qx => { + var isTrue=false; + if(params.qxId||params.qxId==''){if(qx.qxId.indexOf(params.qxId)>=0){isTrue=true;}else{isTrue=false;}} + if(params.qxName||params.qxName==''){if(qx.qxName.indexOf(params.qxName)>=0){isTrue=true;}else{isTrue=false;}} + if(params.qxType||params.qxType==''){if(qx.qxType.indexOf(params.qxType)>=0){isTrue=true;}else{isTrue=false;}} + if(params.remark||params.remark==''){if(qx.remark.indexOf(params.remark)>=0){isTrue=true;}else{isTrue=false;}} + if(params.qxCode||params.qxCode==''){if(qx.qxCode.indexOf(params.qxCode)>=0){isTrue=true;}else{isTrue=false;}} + if(params.enabled||params.enabled==''){if(qx.enabled.indexOf(params.enabled)>=0){isTrue=true;}else{isTrue=false;}} + if(params.deptid||params.deptid==''){if(qx.deptid.indexOf(params.deptid)>=0){isTrue=true;}else{isTrue=false;}} + return isTrue; + }); + if(!config.params.currentPage){ + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + data: mockQxs + }]); + }, 1000); + }); + } + + let {pageSize,currentPage, total} = config.params; + total = mockQxs.length; + mockQxs = mockQxs.filter((qx, index) => index < pageSize * currentPage && index >= pageSize * (currentPage - 1)); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + pageInfo: { + total:total + }, + data: mockQxs, + tips:{ + isOk:true, + msg:'查询成功' + } + }]); + }, 1000); + }); + }); + + //删除 + mock.onPost('/mdp/sys/qx/del').reply(config => { + var params = JSON.parse( config.data ); + let { qxId } = params; + _Qxs = _Qxs.filter(qx => qx.qxId !== qxId); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + tips:{ + isOk:true, + msg:'删除成功' + } + }]); + }, 500); + }); + }); + + //批量删除 + mock.onPost('/mdp/sys/qx/batchDel').reply(config => { + var params = JSON.parse( config.data ); + _Qxs = _Qxs.filter(qx => !params.includes(qx.qxId)); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + tips:{ + isOk:true, + msg:'删除成功' + } + }]); + }, 500); + }); + }); + + //编辑 + mock.onPost('/mdp/sys/qx/edit').reply(config => { + var params = JSON.parse( config.data ); + let { qxId,qxName,qxType,remark,qxCode,enabled,deptid } = params; + _Qxs.some(qx => { + if (qx.qxId === qxId) { + qx.qxId = qxId; + qx.qxName = qxName; + qx.qxType = qxType; + qx.remark = remark; + qx.qxCode = qxCode; + qx.enabled = enabled; + qx.deptid = deptid + return true; + } + }); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + tips:{ + isOk:true, + msg:'编辑成功' + } + }]); + }, 500); + }); + }); + + //新增 + mock.onPost('/mdp/sys/qx/add').reply(config => { + var params = JSON.parse( config.data ); + let { qxId,qxName,qxType,remark,qxCode,enabled,deptid } = params; + _Qxs.push({ + qxId:qxId, + qxName:qxName, + qxType:qxType, + remark:remark, + qxCode:qxCode, + enabled:enabled, + deptid:deptid + }); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + tips:{ + isOk:true, + msg:'新增成功' + } + }]); + }, 500); + }); + }); + + } +}; \ No newline at end of file diff --git a/src/mock/mdp/sys/region.js b/src/mock/mdp/sys/region.js new file mode 100644 index 00000000..4740cee7 --- /dev/null +++ b/src/mock/mdp/sys/region.js @@ -0,0 +1,15 @@ + import Mock from 'mockjs'; + +const Regions = []; + +for (let i = 0; i < 25; i++) { + Regions.push(Mock.mock({ + id:Mock.Random.string(5), + parentId:Mock.Random.ctitle(1,0) , + name:Mock.Random.ctitle(1,0) , + type:Mock.Random.character('lower') , + agencyId:Mock.Random.ctitle(1,0) + })); +} + +export { Regions }; diff --git a/src/mock/mdp/sys/regionMock.js b/src/mock/mdp/sys/regionMock.js new file mode 100644 index 00000000..837fc8ab --- /dev/null +++ b/src/mock/mdp/sys/regionMock.js @@ -0,0 +1,160 @@ +import { Regions } from './region'; +let _Regions = Regions; +/** + * 拷贝下面两行到 mock/index.js中,即可支持客户端虚拟数据、免服务端连接 + * import RegionMock from './mdp/sys/regionMock'; + * RegionMock.bootstrap(mock); + */ +export default { + /** + * mock bootstrap + */ + bootstrap(mock) { + + //获取列表 模糊查询、根据关键字查询 + mock.onGet('/mdp/sys/region/listKey').reply(config => { + let params = config.params; + let mockRegions = _Regions.filter(region => { + if(params.id||params.id==''){ if( region.id.indexOf(params.id)>=0) return true;} + if(params.parentId||params.parentId==''){ if( region.parentId.indexOf(params.parentId)>=0) return true;} + if(params.name||params.name==''){ if( region.name.indexOf(params.name)>=0) return true;} + if(params.type||params.type==''){ if( region.type.indexOf(params.type)>=0) return true;} + if(params.agencyId||params.agencyId==''){ if( region.agencyId.indexOf(params.agencyId)>=0) return true;} + return false; + }); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + data: mockRegions + }]); + }, 1000); + }); + }); + + + + //获取列表(分页/不分页) + mock.onGet('/mdp/sys/region/list').reply(config => { + let params = config.params; + let mockRegions = _Regions.filter(region => { + var isTrue=false; + if(params.id||params.id==''){if(region.id.indexOf(params.id)>=0){isTrue=true;}else{isTrue=false;}} + if(params.parentId||params.parentId==''){if(region.parentId.indexOf(params.parentId)>=0){isTrue=true;}else{isTrue=false;}} + if(params.name||params.name==''){if(region.name.indexOf(params.name)>=0){isTrue=true;}else{isTrue=false;}} + if(params.type||params.type==''){if(region.type.indexOf(params.type)>=0){isTrue=true;}else{isTrue=false;}} + if(params.agencyId||params.agencyId==''){if(region.agencyId.indexOf(params.agencyId)>=0){isTrue=true;}else{isTrue=false;}} + return isTrue; + }); + if(!config.params.currentPage){ + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + data: mockRegions + }]); + }, 1000); + }); + } + + let {pageSize,currentPage, total} = config.params; + total = mockRegions.length; + mockRegions = mockRegions.filter((region, index) => index < pageSize * currentPage && index >= pageSize * (currentPage - 1)); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + pageInfo: { + total:total + }, + data: mockRegions, + tips:{ + isOk:true, + msg:'查询成功' + } + }]); + }, 1000); + }); + }); + + //删除 + mock.onPost('/mdp/sys/region/del').reply(config => { + var params = JSON.parse( config.data ); + let { id } = params; + _Regions = _Regions.filter(region => region.id !== id); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + tips:{ + isOk:true, + msg:'删除成功' + } + }]); + }, 500); + }); + }); + + //批量删除 + mock.onPost('/mdp/sys/region/batchDel').reply(config => { + var params = JSON.parse( config.data ); + _Regions = _Regions.filter(region => !params.includes(region.id)); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + tips:{ + isOk:true, + msg:'删除成功' + } + }]); + }, 500); + }); + }); + + //编辑 + mock.onPost('/mdp/sys/region/edit').reply(config => { + var params = JSON.parse( config.data ); + let { id,parentId,name,type,agencyId } = params; + _Regions.some(region => { + if (region.id === id) { + region.id = id; + region.parentId = parentId; + region.name = name; + region.type = type; + region.agencyId = agencyId + return true; + } + }); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + tips:{ + isOk:true, + msg:'编辑成功' + } + }]); + }, 500); + }); + }); + + //新增 + mock.onPost('/mdp/sys/region/add').reply(config => { + var params = JSON.parse( config.data ); + let { id,parentId,name,type,agencyId } = params; + _Regions.push({ + id:id, + parentId:parentId, + name:name, + type:type, + agencyId:agencyId + }); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + tips:{ + isOk:true, + msg:'新增成功' + } + }]); + }, 500); + }); + }); + + } +}; \ No newline at end of file diff --git a/src/mock/mdp/sys/role.js b/src/mock/mdp/sys/role.js new file mode 100644 index 00000000..af535a10 --- /dev/null +++ b/src/mock/mdp/sys/role.js @@ -0,0 +1,23 @@ + import Mock from 'mockjs'; + +const Roles = []; + +for (let i = 0; i < 25; i++) { + Roles.push(Mock.mock({ + roleid:Mock.Random.string(5), + rolename:Mock.Random.ctitle(1,5) , + remark:Mock.Random.ctitle(1,5) , + roletype:Mock.Random.character('lower') , + rolebeg:Mock.Random.date('yyyy-MM-dd') , + roleend:Mock.Random.date('yyyy-MM-dd') , + crperson:Mock.Random.ctitle(1,8) , + crdate:Mock.Random.date('yyyy-MM-dd') , + lopperson:Mock.Random.ctitle(1,8) , + lopdate:Mock.Random.date('yyyy-MM-dd') , + enabled:Mock.Random.character('lower') , + deptid:Mock.Random.ctitle(1,0) , + 'sortOrder|0-2': 1 + })); +} + +export { Roles }; diff --git a/src/mock/mdp/sys/roleMock.js b/src/mock/mdp/sys/roleMock.js new file mode 100644 index 00000000..a2faaaac --- /dev/null +++ b/src/mock/mdp/sys/roleMock.js @@ -0,0 +1,192 @@ +import { Roles } from './role'; +let _Roles = Roles; +/** + * 拷贝下面两行到 mock/index.js中,即可支持客户端虚拟数据、免服务端连接 + * import RoleMock from './mdp/sys/roleMock'; + * RoleMock.bootstrap(mock); + */ +export default { + /** + * mock bootstrap + */ + bootstrap(mock) { + + //获取列表 模糊查询、根据关键字查询 + mock.onGet('/mdp/sys/role/listKey').reply(config => { + let params = config.params; + let mockRoles = _Roles.filter(role => { + if(params.roleid||params.roleid==''){ if( role.roleid.indexOf(params.roleid)>=0) return true;} + if(params.rolename||params.rolename==''){ if( role.rolename.indexOf(params.rolename)>=0) return true;} + if(params.remark||params.remark==''){ if( role.remark.indexOf(params.remark)>=0) return true;} + if(params.roletype||params.roletype==''){ if( role.roletype.indexOf(params.roletype)>=0) return true;} + if(params.rolebeg||params.rolebeg==''){ if( role.rolebeg.indexOf(params.rolebeg)>=0) return true;} + if(params.roleend||params.roleend==''){ if( role.roleend.indexOf(params.roleend)>=0) return true;} + if(params.crperson||params.crperson==''){ if( role.crperson.indexOf(params.crperson)>=0) return true;} + if(params.crdate||params.crdate==''){ if( role.crdate.indexOf(params.crdate)>=0) return true;} + if(params.lopperson||params.lopperson==''){ if( role.lopperson.indexOf(params.lopperson)>=0) return true;} + if(params.lopdate||params.lopdate==''){ if( role.lopdate.indexOf(params.lopdate)>=0) return true;} + if(params.enabled||params.enabled==''){ if( role.enabled.indexOf(params.enabled)>=0) return true;} + if(params.deptid||params.deptid==''){ if( role.deptid.indexOf(params.deptid)>=0) return true;} + if(params.sortOrder||params.sortOrder==''){ if( role.sortOrder.indexOf(params.sortOrder)>=0) return true;} + return false; + }); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + data: mockRoles + }]); + }, 1000); + }); + }); + + + + //获取列表(分页/不分页) + mock.onGet('/mdp/sys/role/list').reply(config => { + let params = config.params; + let mockRoles = _Roles.filter(role => { + var isTrue=false; + if(params.roleid||params.roleid==''){if(role.roleid.indexOf(params.roleid)>=0){isTrue=true;}else{isTrue=false;}} + if(params.rolename||params.rolename==''){if(role.rolename.indexOf(params.rolename)>=0){isTrue=true;}else{isTrue=false;}} + if(params.remark||params.remark==''){if(role.remark.indexOf(params.remark)>=0){isTrue=true;}else{isTrue=false;}} + if(params.roletype||params.roletype==''){if(role.roletype.indexOf(params.roletype)>=0){isTrue=true;}else{isTrue=false;}} + if(params.rolebeg||params.rolebeg==''){if(role.rolebeg.indexOf(params.rolebeg)>=0){isTrue=true;}else{isTrue=false;}} + if(params.roleend||params.roleend==''){if(role.roleend.indexOf(params.roleend)>=0){isTrue=true;}else{isTrue=false;}} + if(params.crperson||params.crperson==''){if(role.crperson.indexOf(params.crperson)>=0){isTrue=true;}else{isTrue=false;}} + if(params.crdate||params.crdate==''){if(role.crdate.indexOf(params.crdate)>=0){isTrue=true;}else{isTrue=false;}} + if(params.lopperson||params.lopperson==''){if(role.lopperson.indexOf(params.lopperson)>=0){isTrue=true;}else{isTrue=false;}} + if(params.lopdate||params.lopdate==''){if(role.lopdate.indexOf(params.lopdate)>=0){isTrue=true;}else{isTrue=false;}} + if(params.enabled||params.enabled==''){if(role.enabled.indexOf(params.enabled)>=0){isTrue=true;}else{isTrue=false;}} + if(params.deptid||params.deptid==''){if(role.deptid.indexOf(params.deptid)>=0){isTrue=true;}else{isTrue=false;}} + if(params.sortOrder||params.sortOrder==''){if(role.sortOrder.indexOf(params.sortOrder)>=0){isTrue=true;}else{isTrue=false;}} + return isTrue; + }); + if(!config.params.currentPage){ + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + data: mockRoles + }]); + }, 1000); + }); + } + + let {pageSize,currentPage, total} = config.params; + total = mockRoles.length; + mockRoles = mockRoles.filter((role, index) => index < pageSize * currentPage && index >= pageSize * (currentPage - 1)); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + pageInfo: { + total:total + }, + data: mockRoles, + tips:{ + isOk:true, + msg:'查询成功' + } + }]); + }, 1000); + }); + }); + + //删除 + mock.onPost('/mdp/sys/role/del').reply(config => { + var params = JSON.parse( config.data ); + let { roleid } = params; + _Roles = _Roles.filter(role => role.roleid !== roleid); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + tips:{ + isOk:true, + msg:'删除成功' + } + }]); + }, 500); + }); + }); + + //批量删除 + mock.onPost('/mdp/sys/role/batchDel').reply(config => { + var params = JSON.parse( config.data ); + _Roles = _Roles.filter(role => !params.includes(role.roleid)); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + tips:{ + isOk:true, + msg:'删除成功' + } + }]); + }, 500); + }); + }); + + //编辑 + mock.onPost('/mdp/sys/role/edit').reply(config => { + var params = JSON.parse( config.data ); + let { roleid,rolename,remark,roletype,rolebeg,roleend,crperson,crdate,lopperson,lopdate,enabled,deptid,sortOrder } = params; + _Roles.some(role => { + if (role.roleid === roleid) { + role.roleid = roleid; + role.rolename = rolename; + role.remark = remark; + role.roletype = roletype; + role.rolebeg = rolebeg; + role.roleend = roleend; + role.crperson = crperson; + role.crdate = crdate; + role.lopperson = lopperson; + role.lopdate = lopdate; + role.enabled = enabled; + role.deptid = deptid; + role.sortOrder = sortOrder + return true; + } + }); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + tips:{ + isOk:true, + msg:'编辑成功' + } + }]); + }, 500); + }); + }); + + //新增 + mock.onPost('/mdp/sys/role/add').reply(config => { + var params = JSON.parse( config.data ); + let { roleid,rolename,remark,roletype,rolebeg,roleend,crperson,crdate,lopperson,lopdate,enabled,deptid,sortOrder } = params; + _Roles.push({ + roleid:roleid, + rolename:rolename, + remark:remark, + roletype:roletype, + rolebeg:rolebeg, + roleend:roleend, + crperson:crperson, + crdate:crdate, + lopperson:lopperson, + lopdate:lopdate, + enabled:enabled, + deptid:deptid, + sortOrder:sortOrder + }); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + tips:{ + isOk:true, + msg:'新增成功' + } + }]); + }, 500); + }); + }); + + } +}; \ No newline at end of file diff --git a/src/mock/mdp/sys/roleQx.js b/src/mock/mdp/sys/roleQx.js new file mode 100644 index 00000000..3ecdf240 --- /dev/null +++ b/src/mock/mdp/sys/roleQx.js @@ -0,0 +1,14 @@ + import Mock from 'mockjs'; + +const RoleQxs = []; + +for (let i = 0; i < 25; i++) { + RoleQxs.push(Mock.mock({ + id:Mock.Random.string(5), + qxId:Mock.Random.ctitle(1,0) , + remark:Mock.Random.ctitle(1,0) , + roleid:Mock.Random.ctitle(1,0) + })); +} + +export { RoleQxs }; diff --git a/src/mock/mdp/sys/roleQxMock.js b/src/mock/mdp/sys/roleQxMock.js new file mode 100644 index 00000000..e6645405 --- /dev/null +++ b/src/mock/mdp/sys/roleQxMock.js @@ -0,0 +1,156 @@ +import { RoleQxs } from './roleQx'; +let _RoleQxs = RoleQxs; +/** + * 拷贝下面两行到 mock/index.js中,即可支持客户端虚拟数据、免服务端连接 + * import RoleQxMock from './mdp/sys/roleQxMock'; + * RoleQxMock.bootstrap(mock); + */ +export default { + /** + * mock bootstrap + */ + bootstrap(mock) { + + //获取列表 模糊查询、根据关键字查询 + mock.onGet('/mdp/sys/roleQx/listKey').reply(config => { + let params = config.params; + let mockRoleQxs = _RoleQxs.filter(roleQx => { + if(params.qxId||params.qxId==''){ if( roleQx.qxId.indexOf(params.qxId)>=0) return true;} + if(params.id||params.id==''){ if( roleQx.id.indexOf(params.id)>=0) return true;} + if(params.remark||params.remark==''){ if( roleQx.remark.indexOf(params.remark)>=0) return true;} + if(params.roleid||params.roleid==''){ if( roleQx.roleid.indexOf(params.roleid)>=0) return true;} + return false; + }); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + data: mockRoleQxs + }]); + }, 1000); + }); + }); + + + + //获取列表(分页/不分页) + mock.onGet('/mdp/sys/roleQx/list').reply(config => { + let params = config.params; + let mockRoleQxs = _RoleQxs.filter(roleQx => { + var isTrue=false; + if(params.qxId||params.qxId==''){if(roleQx.qxId.indexOf(params.qxId)>=0){isTrue=true;}else{isTrue=false;}} + if(params.id||params.id==''){if(roleQx.id.indexOf(params.id)>=0){isTrue=true;}else{isTrue=false;}} + if(params.remark||params.remark==''){if(roleQx.remark.indexOf(params.remark)>=0){isTrue=true;}else{isTrue=false;}} + if(params.roleid||params.roleid==''){if(roleQx.roleid.indexOf(params.roleid)>=0){isTrue=true;}else{isTrue=false;}} + return isTrue; + }); + if(!config.params.currentPage){ + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + data: mockRoleQxs + }]); + }, 1000); + }); + } + + let {pageSize,currentPage, total} = config.params; + total = mockRoleQxs.length; + mockRoleQxs = mockRoleQxs.filter((roleQx, index) => index < pageSize * currentPage && index >= pageSize * (currentPage - 1)); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + pageInfo: { + total:total + }, + data: mockRoleQxs, + tips:{ + isOk:true, + msg:'查询成功' + } + }]); + }, 1000); + }); + }); + + //删除 + mock.onPost('/mdp/sys/roleQx/del').reply(config => { + var params = JSON.parse( config.data ); + let { id } = params; + _RoleQxs = _RoleQxs.filter(roleQx => roleQx.id !== id); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + tips:{ + isOk:true, + msg:'删除成功' + } + }]); + }, 500); + }); + }); + + //批量删除 + mock.onPost('/mdp/sys/roleQx/batchDel').reply(config => { + var params = JSON.parse( config.data ); + _RoleQxs = _RoleQxs.filter(roleQx => !params.includes(roleQx.id)); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + tips:{ + isOk:true, + msg:'删除成功' + } + }]); + }, 500); + }); + }); + + //编辑 + mock.onPost('/mdp/sys/roleQx/edit').reply(config => { + var params = JSON.parse( config.data ); + let { qxId,id,remark,roleid } = params; + _RoleQxs.some(roleQx => { + if (roleQx.id === id) { + roleQx.qxId = qxId; + roleQx.id = id; + roleQx.remark = remark; + roleQx.roleid = roleid + return true; + } + }); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + tips:{ + isOk:true, + msg:'编辑成功' + } + }]); + }, 500); + }); + }); + + //新增 + mock.onPost('/mdp/sys/roleQx/add').reply(config => { + var params = JSON.parse( config.data ); + let { qxId,id,remark,roleid } = params; + _RoleQxs.push({ + qxId:qxId, + id:id, + remark:remark, + roleid:roleid + }); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + tips:{ + isOk:true, + msg:'新增成功' + } + }]); + }, 500); + }); + }); + + } +}; \ No newline at end of file diff --git a/src/mock/mdp/sys/thirdPartyAccount.js b/src/mock/mdp/sys/thirdPartyAccount.js new file mode 100644 index 00000000..753a171a --- /dev/null +++ b/src/mock/mdp/sys/thirdPartyAccount.js @@ -0,0 +1,24 @@ + import Mock from 'mockjs'; + +const ThirdPartyAccounts = []; + +for (let i = 0; i < 25; i++) { + ThirdPartyAccounts.push(Mock.mock({ + openid:Mock.Random.string(5), + unionid:Mock.Random.ctitle(1,4) , + userid:Mock.Random.ctitle(1,4) , + locked:Mock.Random.ctitle(1,6) , + startdate:Mock.Random.date('yyyy-MM-dd') , + nickname:Mock.Random.ctitle(1,8) , + username:Mock.Random.ctitle(1,8) , + phoneno:Mock.Random.ctitle(1,0) , + country:Mock.Random.ctitle(1,0) , + city:Mock.Random.ctitle(1,0) , + headimgurl:Mock.Random.ctitle(1,0) , + province:Mock.Random.ctitle(1,0) , + userunionid:Mock.Random.ctitle(1,4) , + frontApp:Mock.Random.ctitle(1,5) + })); +} + +export { ThirdPartyAccounts }; diff --git a/src/mock/mdp/sys/thirdPartyAccountMock.js b/src/mock/mdp/sys/thirdPartyAccountMock.js new file mode 100644 index 00000000..194e40ae --- /dev/null +++ b/src/mock/mdp/sys/thirdPartyAccountMock.js @@ -0,0 +1,196 @@ +import { ThirdPartyAccounts } from './thirdPartyAccount'; +let _ThirdPartyAccounts = ThirdPartyAccounts; +/** + * 拷贝下面两行到 mock/index.js中,即可支持客户端虚拟数据、免服务端连接 + * import ThirdPartyAccountMock from './mdp/sys/thirdPartyAccountMock'; + * ThirdPartyAccountMock.bootstrap(mock); + */ +export default { + /** + * mock bootstrap + */ + bootstrap(mock) { + + //获取列表 模糊查询、根据关键字查询 + mock.onGet('/mdp/sys/thirdPartyAccount/listKey').reply(config => { + let params = config.params; + let mockThirdPartyAccounts = _ThirdPartyAccounts.filter(thirdPartyAccount => { + if(params.unionid||params.unionid==''){ if( thirdPartyAccount.unionid.indexOf(params.unionid)>=0) return true;} + if(params.openid||params.openid==''){ if( thirdPartyAccount.openid.indexOf(params.openid)>=0) return true;} + if(params.userid||params.userid==''){ if( thirdPartyAccount.userid.indexOf(params.userid)>=0) return true;} + if(params.locked||params.locked==''){ if( thirdPartyAccount.locked.indexOf(params.locked)>=0) return true;} + if(params.startdate||params.startdate==''){ if( thirdPartyAccount.startdate.indexOf(params.startdate)>=0) return true;} + if(params.nickname||params.nickname==''){ if( thirdPartyAccount.nickname.indexOf(params.nickname)>=0) return true;} + if(params.username||params.username==''){ if( thirdPartyAccount.username.indexOf(params.username)>=0) return true;} + if(params.phoneno||params.phoneno==''){ if( thirdPartyAccount.phoneno.indexOf(params.phoneno)>=0) return true;} + if(params.country||params.country==''){ if( thirdPartyAccount.country.indexOf(params.country)>=0) return true;} + if(params.city||params.city==''){ if( thirdPartyAccount.city.indexOf(params.city)>=0) return true;} + if(params.headimgurl||params.headimgurl==''){ if( thirdPartyAccount.headimgurl.indexOf(params.headimgurl)>=0) return true;} + if(params.province||params.province==''){ if( thirdPartyAccount.province.indexOf(params.province)>=0) return true;} + if(params.userunionid||params.userunionid==''){ if( thirdPartyAccount.userunionid.indexOf(params.userunionid)>=0) return true;} + if(params.frontApp||params.frontApp==''){ if( thirdPartyAccount.frontApp.indexOf(params.frontApp)>=0) return true;} + return false; + }); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + data: mockThirdPartyAccounts + }]); + }, 1000); + }); + }); + + + + //获取列表(分页/不分页) + mock.onGet('/mdp/sys/thirdPartyAccount/list').reply(config => { + let params = config.params; + let mockThirdPartyAccounts = _ThirdPartyAccounts.filter(thirdPartyAccount => { + var isTrue=false; + if(params.unionid||params.unionid==''){if(thirdPartyAccount.unionid.indexOf(params.unionid)>=0){isTrue=true;}else{isTrue=false;}} + if(params.openid||params.openid==''){if(thirdPartyAccount.openid.indexOf(params.openid)>=0){isTrue=true;}else{isTrue=false;}} + if(params.userid||params.userid==''){if(thirdPartyAccount.userid.indexOf(params.userid)>=0){isTrue=true;}else{isTrue=false;}} + if(params.locked||params.locked==''){if(thirdPartyAccount.locked.indexOf(params.locked)>=0){isTrue=true;}else{isTrue=false;}} + if(params.startdate||params.startdate==''){if(thirdPartyAccount.startdate.indexOf(params.startdate)>=0){isTrue=true;}else{isTrue=false;}} + if(params.nickname||params.nickname==''){if(thirdPartyAccount.nickname.indexOf(params.nickname)>=0){isTrue=true;}else{isTrue=false;}} + if(params.username||params.username==''){if(thirdPartyAccount.username.indexOf(params.username)>=0){isTrue=true;}else{isTrue=false;}} + if(params.phoneno||params.phoneno==''){if(thirdPartyAccount.phoneno.indexOf(params.phoneno)>=0){isTrue=true;}else{isTrue=false;}} + if(params.country||params.country==''){if(thirdPartyAccount.country.indexOf(params.country)>=0){isTrue=true;}else{isTrue=false;}} + if(params.city||params.city==''){if(thirdPartyAccount.city.indexOf(params.city)>=0){isTrue=true;}else{isTrue=false;}} + if(params.headimgurl||params.headimgurl==''){if(thirdPartyAccount.headimgurl.indexOf(params.headimgurl)>=0){isTrue=true;}else{isTrue=false;}} + if(params.province||params.province==''){if(thirdPartyAccount.province.indexOf(params.province)>=0){isTrue=true;}else{isTrue=false;}} + if(params.userunionid||params.userunionid==''){if(thirdPartyAccount.userunionid.indexOf(params.userunionid)>=0){isTrue=true;}else{isTrue=false;}} + if(params.frontApp||params.frontApp==''){if(thirdPartyAccount.frontApp.indexOf(params.frontApp)>=0){isTrue=true;}else{isTrue=false;}} + return isTrue; + }); + if(!config.params.currentPage){ + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + data: mockThirdPartyAccounts + }]); + }, 1000); + }); + } + + let {pageSize,currentPage, total} = config.params; + total = mockThirdPartyAccounts.length; + mockThirdPartyAccounts = mockThirdPartyAccounts.filter((thirdPartyAccount, index) => index < pageSize * currentPage && index >= pageSize * (currentPage - 1)); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + pageInfo: { + total:total + }, + data: mockThirdPartyAccounts, + tips:{ + isOk:true, + msg:'查询成功' + } + }]); + }, 1000); + }); + }); + + //删除 + mock.onPost('/mdp/sys/thirdPartyAccount/del').reply(config => { + var params = JSON.parse( config.data ); + let { openid } = params; + _ThirdPartyAccounts = _ThirdPartyAccounts.filter(thirdPartyAccount => thirdPartyAccount.openid !== openid); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + tips:{ + isOk:true, + msg:'删除成功' + } + }]); + }, 500); + }); + }); + + //批量删除 + mock.onPost('/mdp/sys/thirdPartyAccount/batchDel').reply(config => { + var params = JSON.parse( config.data ); + _ThirdPartyAccounts = _ThirdPartyAccounts.filter(thirdPartyAccount => !params.includes(thirdPartyAccount.openid)); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + tips:{ + isOk:true, + msg:'删除成功' + } + }]); + }, 500); + }); + }); + + //编辑 + mock.onPost('/mdp/sys/thirdPartyAccount/edit').reply(config => { + var params = JSON.parse( config.data ); + let { unionid,openid,userid,locked,startdate,nickname,username,phoneno,country,city,headimgurl,province,userunionid,frontApp } = params; + _ThirdPartyAccounts.some(thirdPartyAccount => { + if (thirdPartyAccount.openid === openid) { + thirdPartyAccount.unionid = unionid; + thirdPartyAccount.openid = openid; + thirdPartyAccount.userid = userid; + thirdPartyAccount.locked = locked; + thirdPartyAccount.startdate = startdate; + thirdPartyAccount.nickname = nickname; + thirdPartyAccount.username = username; + thirdPartyAccount.phoneno = phoneno; + thirdPartyAccount.country = country; + thirdPartyAccount.city = city; + thirdPartyAccount.headimgurl = headimgurl; + thirdPartyAccount.province = province; + thirdPartyAccount.userunionid = userunionid; + thirdPartyAccount.frontApp = frontApp + return true; + } + }); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + tips:{ + isOk:true, + msg:'编辑成功' + } + }]); + }, 500); + }); + }); + + //新增 + mock.onPost('/mdp/sys/thirdPartyAccount/add').reply(config => { + var params = JSON.parse( config.data ); + let { unionid,openid,userid,locked,startdate,nickname,username,phoneno,country,city,headimgurl,province,userunionid,frontApp } = params; + _ThirdPartyAccounts.push({ + unionid:unionid, + openid:openid, + userid:userid, + locked:locked, + startdate:startdate, + nickname:nickname, + username:username, + phoneno:phoneno, + country:country, + city:city, + headimgurl:headimgurl, + province:province, + userunionid:userunionid, + frontApp:frontApp + }); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + tips:{ + isOk:true, + msg:'新增成功' + } + }]); + }, 500); + }); + }); + + } +}; \ No newline at end of file diff --git a/src/mock/mdp/sys/user.js b/src/mock/mdp/sys/user.js new file mode 100644 index 00000000..70231163 --- /dev/null +++ b/src/mock/mdp/sys/user.js @@ -0,0 +1,35 @@ + import Mock from 'mockjs'; + +const Users = []; + +for (let i = 0; i < 25; i++) { + Users.push(Mock.mock({ + userid:Mock.Random.string(5), + unionid:Mock.Random.ctitle(1,4) , + displayUserid:Mock.Random.ctitle(1,4) , + locked:Mock.Random.character('lower') , + startdate:Mock.Random.date('yyyy-MM-dd') , + nickname:Mock.Random.ctitle(1,8) , + username:Mock.Random.ctitle(1,8) , + deptid:Mock.Random.ctitle(1,0) , + phoneno:Mock.Random.ctitle(1,0) , + password:Mock.Random.ctitle(1,0) , + salt:Mock.Random.ctitle(1,0) , + fingerpassword1:Mock.Random.ctitle(1,0) , + fingerpassword2:Mock.Random.ctitle(1,0) , + fingerpassword3:Mock.Random.ctitle(1,0) , + fingerpassword4:Mock.Random.ctitle(1,0) , + pwdtype:Mock.Random.character('lower') , + headimgurl:Mock.Random.ctitle(1,0) , + country:Mock.Random.ctitle(1,0) , + city:Mock.Random.ctitle(1,0) , + province:Mock.Random.ctitle(1,0) , + address:Mock.Random.ctitle(1,0) , + sex:Mock.Random.ctitle(1,0) , + enddate:Mock.Random.date('yyyy-MM-dd') , + districtId:Mock.Random.ctitle(1,0) , + custtype:Mock.Random.ctitle(1,3) + })); +} + +export { Users }; diff --git a/src/mock/mdp/sys/userExtinfo.js b/src/mock/mdp/sys/userExtinfo.js new file mode 100644 index 00000000..291edbf5 --- /dev/null +++ b/src/mock/mdp/sys/userExtinfo.js @@ -0,0 +1,18 @@ + import Mock from 'mockjs'; + +const UserExtinfos = []; + +for (let i = 0; i < 25; i++) { + UserExtinfos.push(Mock.mock({ + userid:Mock.Random.string(5), + lastLoginTime:Mock.Random.date('yyyy-MM-dd') , + 'pwdErrorCount|0-0': 1 , + firstLoginChannel:Mock.Random.ctitle(1,0) , + lastLoginChannel:Mock.Random.ctitle(1,0) , + lastLoginArea:Mock.Random.ctitle(1,0) , + visitMsg:Mock.Random.ctitle(1,0) , + tpaOpenid:Mock.Random.ctitle(1,0) + })); +} + +export { UserExtinfos }; diff --git a/src/mock/mdp/sys/userExtinfoMock.js b/src/mock/mdp/sys/userExtinfoMock.js new file mode 100644 index 00000000..36b82326 --- /dev/null +++ b/src/mock/mdp/sys/userExtinfoMock.js @@ -0,0 +1,172 @@ +import { UserExtinfos } from './userExtinfo'; +let _UserExtinfos = UserExtinfos; +/** + * 拷贝下面两行到 mock/index.js中,即可支持客户端虚拟数据、免服务端连接 + * import UserExtinfoMock from './mdp/sys/userExtinfoMock'; + * UserExtinfoMock.bootstrap(mock); + */ +export default { + /** + * mock bootstrap + */ + bootstrap(mock) { + + //获取列表 模糊查询、根据关键字查询 + mock.onGet('/mdp/sys/userExtinfo/listKey').reply(config => { + let params = config.params; + let mockUserExtinfos = _UserExtinfos.filter(userExtinfo => { + if(params.lastLoginTime||params.lastLoginTime==''){ if( userExtinfo.lastLoginTime.indexOf(params.lastLoginTime)>=0) return true;} + if(params.pwdErrorCount||params.pwdErrorCount==''){ if( userExtinfo.pwdErrorCount.indexOf(params.pwdErrorCount)>=0) return true;} + if(params.userid||params.userid==''){ if( userExtinfo.userid.indexOf(params.userid)>=0) return true;} + if(params.firstLoginChannel||params.firstLoginChannel==''){ if( userExtinfo.firstLoginChannel.indexOf(params.firstLoginChannel)>=0) return true;} + if(params.lastLoginChannel||params.lastLoginChannel==''){ if( userExtinfo.lastLoginChannel.indexOf(params.lastLoginChannel)>=0) return true;} + if(params.lastLoginArea||params.lastLoginArea==''){ if( userExtinfo.lastLoginArea.indexOf(params.lastLoginArea)>=0) return true;} + if(params.visitMsg||params.visitMsg==''){ if( userExtinfo.visitMsg.indexOf(params.visitMsg)>=0) return true;} + if(params.tpaOpenid||params.tpaOpenid==''){ if( userExtinfo.tpaOpenid.indexOf(params.tpaOpenid)>=0) return true;} + return false; + }); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + data: mockUserExtinfos + }]); + }, 1000); + }); + }); + + + + //获取列表(分页/不分页) + mock.onGet('/mdp/sys/userExtinfo/list').reply(config => { + let params = config.params; + let mockUserExtinfos = _UserExtinfos.filter(userExtinfo => { + var isTrue=false; + if(params.lastLoginTime||params.lastLoginTime==''){if(userExtinfo.lastLoginTime.indexOf(params.lastLoginTime)>=0){isTrue=true;}else{isTrue=false;}} + if(params.pwdErrorCount||params.pwdErrorCount==''){if(userExtinfo.pwdErrorCount.indexOf(params.pwdErrorCount)>=0){isTrue=true;}else{isTrue=false;}} + if(params.userid||params.userid==''){if(userExtinfo.userid.indexOf(params.userid)>=0){isTrue=true;}else{isTrue=false;}} + if(params.firstLoginChannel||params.firstLoginChannel==''){if(userExtinfo.firstLoginChannel.indexOf(params.firstLoginChannel)>=0){isTrue=true;}else{isTrue=false;}} + if(params.lastLoginChannel||params.lastLoginChannel==''){if(userExtinfo.lastLoginChannel.indexOf(params.lastLoginChannel)>=0){isTrue=true;}else{isTrue=false;}} + if(params.lastLoginArea||params.lastLoginArea==''){if(userExtinfo.lastLoginArea.indexOf(params.lastLoginArea)>=0){isTrue=true;}else{isTrue=false;}} + if(params.visitMsg||params.visitMsg==''){if(userExtinfo.visitMsg.indexOf(params.visitMsg)>=0){isTrue=true;}else{isTrue=false;}} + if(params.tpaOpenid||params.tpaOpenid==''){if(userExtinfo.tpaOpenid.indexOf(params.tpaOpenid)>=0){isTrue=true;}else{isTrue=false;}} + return isTrue; + }); + if(!config.params.currentPage){ + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + data: mockUserExtinfos + }]); + }, 1000); + }); + } + + let {pageSize,currentPage, total} = config.params; + total = mockUserExtinfos.length; + mockUserExtinfos = mockUserExtinfos.filter((userExtinfo, index) => index < pageSize * currentPage && index >= pageSize * (currentPage - 1)); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + pageInfo: { + total:total + }, + data: mockUserExtinfos, + tips:{ + isOk:true, + msg:'查询成功' + } + }]); + }, 1000); + }); + }); + + //删除 + mock.onPost('/mdp/sys/userExtinfo/del').reply(config => { + var params = JSON.parse( config.data ); + let { userid } = params; + _UserExtinfos = _UserExtinfos.filter(userExtinfo => userExtinfo.userid !== userid); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + tips:{ + isOk:true, + msg:'删除成功' + } + }]); + }, 500); + }); + }); + + //批量删除 + mock.onPost('/mdp/sys/userExtinfo/batchDel').reply(config => { + var params = JSON.parse( config.data ); + _UserExtinfos = _UserExtinfos.filter(userExtinfo => !params.includes(userExtinfo.userid)); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + tips:{ + isOk:true, + msg:'删除成功' + } + }]); + }, 500); + }); + }); + + //编辑 + mock.onPost('/mdp/sys/userExtinfo/edit').reply(config => { + var params = JSON.parse( config.data ); + let { lastLoginTime,pwdErrorCount,userid,firstLoginChannel,lastLoginChannel,lastLoginArea,visitMsg,tpaOpenid } = params; + _UserExtinfos.some(userExtinfo => { + if (userExtinfo.userid === userid) { + userExtinfo.lastLoginTime = lastLoginTime; + userExtinfo.pwdErrorCount = pwdErrorCount; + userExtinfo.userid = userid; + userExtinfo.firstLoginChannel = firstLoginChannel; + userExtinfo.lastLoginChannel = lastLoginChannel; + userExtinfo.lastLoginArea = lastLoginArea; + userExtinfo.visitMsg = visitMsg; + userExtinfo.tpaOpenid = tpaOpenid + return true; + } + }); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + tips:{ + isOk:true, + msg:'编辑成功' + } + }]); + }, 500); + }); + }); + + //新增 + mock.onPost('/mdp/sys/userExtinfo/add').reply(config => { + var params = JSON.parse( config.data ); + let { lastLoginTime,pwdErrorCount,userid,firstLoginChannel,lastLoginChannel,lastLoginArea,visitMsg,tpaOpenid } = params; + _UserExtinfos.push({ + lastLoginTime:lastLoginTime, + pwdErrorCount:pwdErrorCount, + userid:userid, + firstLoginChannel:firstLoginChannel, + lastLoginChannel:lastLoginChannel, + lastLoginArea:lastLoginArea, + visitMsg:visitMsg, + tpaOpenid:tpaOpenid + }); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + tips:{ + isOk:true, + msg:'新增成功' + } + }]); + }, 500); + }); + }); + + } +}; \ No newline at end of file diff --git a/src/mock/mdp/sys/userMock.js b/src/mock/mdp/sys/userMock.js new file mode 100644 index 00000000..26fe3234 --- /dev/null +++ b/src/mock/mdp/sys/userMock.js @@ -0,0 +1,240 @@ +import { Users } from './user'; +let _Users = Users; +/** + * 拷贝下面两行到 mock/index.js中,即可支持客户端虚拟数据、免服务端连接 + * import UserMock from './mdp/sys/userMock'; + * UserMock.bootstrap(mock); + */ +export default { + /** + * mock bootstrap + */ + bootstrap(mock) { + + //获取列表 模糊查询、根据关键字查询 + mock.onGet('/mdp/sys/user/listKey').reply(config => { + let params = config.params; + let mockUsers = _Users.filter(user => { + if(params.unionid||params.unionid==''){ if( user.unionid.indexOf(params.unionid)>=0) return true;} + if(params.displayUserid||params.displayUserid==''){ if( user.displayUserid.indexOf(params.displayUserid)>=0) return true;} + if(params.userid||params.userid==''){ if( user.userid.indexOf(params.userid)>=0) return true;} + if(params.locked||params.locked==''){ if( user.locked.indexOf(params.locked)>=0) return true;} + if(params.startdate||params.startdate==''){ if( user.startdate.indexOf(params.startdate)>=0) return true;} + if(params.nickname||params.nickname==''){ if( user.nickname.indexOf(params.nickname)>=0) return true;} + if(params.username||params.username==''){ if( user.username.indexOf(params.username)>=0) return true;} + if(params.deptid||params.deptid==''){ if( user.deptid.indexOf(params.deptid)>=0) return true;} + if(params.phoneno||params.phoneno==''){ if( user.phoneno.indexOf(params.phoneno)>=0) return true;} + if(params.password||params.password==''){ if( user.password.indexOf(params.password)>=0) return true;} + if(params.salt||params.salt==''){ if( user.salt.indexOf(params.salt)>=0) return true;} + if(params.fingerpassword1||params.fingerpassword1==''){ if( user.fingerpassword1.indexOf(params.fingerpassword1)>=0) return true;} + if(params.fingerpassword2||params.fingerpassword2==''){ if( user.fingerpassword2.indexOf(params.fingerpassword2)>=0) return true;} + if(params.fingerpassword3||params.fingerpassword3==''){ if( user.fingerpassword3.indexOf(params.fingerpassword3)>=0) return true;} + if(params.fingerpassword4||params.fingerpassword4==''){ if( user.fingerpassword4.indexOf(params.fingerpassword4)>=0) return true;} + if(params.pwdtype||params.pwdtype==''){ if( user.pwdtype.indexOf(params.pwdtype)>=0) return true;} + if(params.headimgurl||params.headimgurl==''){ if( user.headimgurl.indexOf(params.headimgurl)>=0) return true;} + if(params.country||params.country==''){ if( user.country.indexOf(params.country)>=0) return true;} + if(params.city||params.city==''){ if( user.city.indexOf(params.city)>=0) return true;} + if(params.province||params.province==''){ if( user.province.indexOf(params.province)>=0) return true;} + if(params.address||params.address==''){ if( user.address.indexOf(params.address)>=0) return true;} + if(params.sex||params.sex==''){ if( user.sex.indexOf(params.sex)>=0) return true;} + if(params.enddate||params.enddate==''){ if( user.enddate.indexOf(params.enddate)>=0) return true;} + if(params.districtId||params.districtId==''){ if( user.districtId.indexOf(params.districtId)>=0) return true;} + if(params.custtype||params.custtype==''){ if( user.custtype.indexOf(params.custtype)>=0) return true;} + return false; + }); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + data: mockUsers + }]); + }, 1000); + }); + }); + + + + //获取列表(分页/不分页) + mock.onGet('/mdp/sys/user/list').reply(config => { + let params = config.params; + let mockUsers = _Users.filter(user => { + var isTrue=false; + if(params.unionid||params.unionid==''){if(user.unionid.indexOf(params.unionid)>=0){isTrue=true;}else{isTrue=false;}} + if(params.displayUserid||params.displayUserid==''){if(user.displayUserid.indexOf(params.displayUserid)>=0){isTrue=true;}else{isTrue=false;}} + if(params.userid||params.userid==''){if(user.userid.indexOf(params.userid)>=0){isTrue=true;}else{isTrue=false;}} + if(params.locked||params.locked==''){if(user.locked.indexOf(params.locked)>=0){isTrue=true;}else{isTrue=false;}} + if(params.startdate||params.startdate==''){if(user.startdate.indexOf(params.startdate)>=0){isTrue=true;}else{isTrue=false;}} + if(params.nickname||params.nickname==''){if(user.nickname.indexOf(params.nickname)>=0){isTrue=true;}else{isTrue=false;}} + if(params.username||params.username==''){if(user.username.indexOf(params.username)>=0){isTrue=true;}else{isTrue=false;}} + if(params.deptid||params.deptid==''){if(user.deptid.indexOf(params.deptid)>=0){isTrue=true;}else{isTrue=false;}} + if(params.phoneno||params.phoneno==''){if(user.phoneno.indexOf(params.phoneno)>=0){isTrue=true;}else{isTrue=false;}} + if(params.password||params.password==''){if(user.password.indexOf(params.password)>=0){isTrue=true;}else{isTrue=false;}} + if(params.salt||params.salt==''){if(user.salt.indexOf(params.salt)>=0){isTrue=true;}else{isTrue=false;}} + if(params.fingerpassword1||params.fingerpassword1==''){if(user.fingerpassword1.indexOf(params.fingerpassword1)>=0){isTrue=true;}else{isTrue=false;}} + if(params.fingerpassword2||params.fingerpassword2==''){if(user.fingerpassword2.indexOf(params.fingerpassword2)>=0){isTrue=true;}else{isTrue=false;}} + if(params.fingerpassword3||params.fingerpassword3==''){if(user.fingerpassword3.indexOf(params.fingerpassword3)>=0){isTrue=true;}else{isTrue=false;}} + if(params.fingerpassword4||params.fingerpassword4==''){if(user.fingerpassword4.indexOf(params.fingerpassword4)>=0){isTrue=true;}else{isTrue=false;}} + if(params.pwdtype||params.pwdtype==''){if(user.pwdtype.indexOf(params.pwdtype)>=0){isTrue=true;}else{isTrue=false;}} + if(params.headimgurl||params.headimgurl==''){if(user.headimgurl.indexOf(params.headimgurl)>=0){isTrue=true;}else{isTrue=false;}} + if(params.country||params.country==''){if(user.country.indexOf(params.country)>=0){isTrue=true;}else{isTrue=false;}} + if(params.city||params.city==''){if(user.city.indexOf(params.city)>=0){isTrue=true;}else{isTrue=false;}} + if(params.province||params.province==''){if(user.province.indexOf(params.province)>=0){isTrue=true;}else{isTrue=false;}} + if(params.address||params.address==''){if(user.address.indexOf(params.address)>=0){isTrue=true;}else{isTrue=false;}} + if(params.sex||params.sex==''){if(user.sex.indexOf(params.sex)>=0){isTrue=true;}else{isTrue=false;}} + if(params.enddate||params.enddate==''){if(user.enddate.indexOf(params.enddate)>=0){isTrue=true;}else{isTrue=false;}} + if(params.districtId||params.districtId==''){if(user.districtId.indexOf(params.districtId)>=0){isTrue=true;}else{isTrue=false;}} + if(params.custtype||params.custtype==''){if(user.custtype.indexOf(params.custtype)>=0){isTrue=true;}else{isTrue=false;}} + return isTrue; + }); + if(!config.params.currentPage){ + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + data: mockUsers + }]); + }, 1000); + }); + } + + let {pageSize,currentPage, total} = config.params; + total = mockUsers.length; + mockUsers = mockUsers.filter((user, index) => index < pageSize * currentPage && index >= pageSize * (currentPage - 1)); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + pageInfo: { + total:total + }, + data: mockUsers, + tips:{ + isOk:true, + msg:'查询成功' + } + }]); + }, 1000); + }); + }); + + //删除 + mock.onPost('/mdp/sys/user/del').reply(config => { + var params = JSON.parse( config.data ); + let { userid } = params; + _Users = _Users.filter(user => user.userid !== userid); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + tips:{ + isOk:true, + msg:'删除成功' + } + }]); + }, 500); + }); + }); + + //批量删除 + mock.onPost('/mdp/sys/user/batchDel').reply(config => { + var params = JSON.parse( config.data ); + _Users = _Users.filter(user => !params.includes(user.userid)); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + tips:{ + isOk:true, + msg:'删除成功' + } + }]); + }, 500); + }); + }); + + //编辑 + mock.onPost('/mdp/sys/user/edit').reply(config => { + var params = JSON.parse( config.data ); + let { unionid,displayUserid,userid,locked,startdate,nickname,username,deptid,phoneno,password,salt,fingerpassword1,fingerpassword2,fingerpassword3,fingerpassword4,pwdtype,headimgurl,country,city,province,address,sex,enddate,districtId,custtype } = params; + _Users.some(user => { + if (user.userid === userid) { + user.unionid = unionid; + user.displayUserid = displayUserid; + user.userid = userid; + user.locked = locked; + user.startdate = startdate; + user.nickname = nickname; + user.username = username; + user.deptid = deptid; + user.phoneno = phoneno; + user.password = password; + user.salt = salt; + user.fingerpassword1 = fingerpassword1; + user.fingerpassword2 = fingerpassword2; + user.fingerpassword3 = fingerpassword3; + user.fingerpassword4 = fingerpassword4; + user.pwdtype = pwdtype; + user.headimgurl = headimgurl; + user.country = country; + user.city = city; + user.province = province; + user.address = address; + user.sex = sex; + user.enddate = enddate; + user.districtId = districtId; + user.custtype = custtype + return true; + } + }); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + tips:{ + isOk:true, + msg:'编辑成功' + } + }]); + }, 500); + }); + }); + + //新增 + mock.onPost('/mdp/sys/user/add').reply(config => { + var params = JSON.parse( config.data ); + let { unionid,displayUserid,userid,locked,startdate,nickname,username,deptid,phoneno,password,salt,fingerpassword1,fingerpassword2,fingerpassword3,fingerpassword4,pwdtype,headimgurl,country,city,province,address,sex,enddate,districtId,custtype } = params; + _Users.push({ + unionid:unionid, + displayUserid:displayUserid, + userid:userid, + locked:locked, + startdate:startdate, + nickname:nickname, + username:username, + deptid:deptid, + phoneno:phoneno, + password:password, + salt:salt, + fingerpassword1:fingerpassword1, + fingerpassword2:fingerpassword2, + fingerpassword3:fingerpassword3, + fingerpassword4:fingerpassword4, + pwdtype:pwdtype, + headimgurl:headimgurl, + country:country, + city:city, + province:province, + address:address, + sex:sex, + enddate:enddate, + districtId:districtId, + custtype:custtype + }); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + tips:{ + isOk:true, + msg:'新增成功' + } + }]); + }, 500); + }); + }); + + } +}; \ No newline at end of file diff --git a/src/mock/mdp/sys/userRole.js b/src/mock/mdp/sys/userRole.js new file mode 100644 index 00000000..e085a9ea --- /dev/null +++ b/src/mock/mdp/sys/userRole.js @@ -0,0 +1,23 @@ + import Mock from 'mockjs'; + +const UserRoles = []; + +for (let i = 0; i < 25; i++) { + UserRoles.push(Mock.mock({ + id:Mock.Random.string(5), + roleid:Mock.Random.ctitle(1,0) , + userid:Mock.Random.ctitle(1,4) , + remark:Mock.Random.ctitle(1,5) , + userroleBeg:Mock.Random.date('yyyy-MM-dd') , + userroleEnd:Mock.Random.date('yyyy-MM-dd') , + createPerson:Mock.Random.ctitle(1,0) , + createDate:Mock.Random.date('yyyy-MM-dd') , + loperatePerson:Mock.Random.ctitle(1,0) , + loperateDate:Mock.Random.date('yyyy-MM-dd') , + 'roleSort|0-4': 1 , + enabled:Mock.Random.character('lower') , + deptid:Mock.Random.ctitle(1,0) + })); +} + +export { UserRoles }; diff --git a/src/mock/mdp/sys/userRoleMock.js b/src/mock/mdp/sys/userRoleMock.js new file mode 100644 index 00000000..c118ce88 --- /dev/null +++ b/src/mock/mdp/sys/userRoleMock.js @@ -0,0 +1,192 @@ +import { UserRoles } from './userRole'; +let _UserRoles = UserRoles; +/** + * 拷贝下面两行到 mock/index.js中,即可支持客户端虚拟数据、免服务端连接 + * import UserRoleMock from './mdp/sys/userRoleMock'; + * UserRoleMock.bootstrap(mock); + */ +export default { + /** + * mock bootstrap + */ + bootstrap(mock) { + + //获取列表 模糊查询、根据关键字查询 + mock.onGet('/mdp/sys/userRole/listKey').reply(config => { + let params = config.params; + let mockUserRoles = _UserRoles.filter(userRole => { + if(params.id||params.id==''){ if( userRole.id.indexOf(params.id)>=0) return true;} + if(params.roleid||params.roleid==''){ if( userRole.roleid.indexOf(params.roleid)>=0) return true;} + if(params.userid||params.userid==''){ if( userRole.userid.indexOf(params.userid)>=0) return true;} + if(params.remark||params.remark==''){ if( userRole.remark.indexOf(params.remark)>=0) return true;} + if(params.userroleBeg||params.userroleBeg==''){ if( userRole.userroleBeg.indexOf(params.userroleBeg)>=0) return true;} + if(params.userroleEnd||params.userroleEnd==''){ if( userRole.userroleEnd.indexOf(params.userroleEnd)>=0) return true;} + if(params.createPerson||params.createPerson==''){ if( userRole.createPerson.indexOf(params.createPerson)>=0) return true;} + if(params.createDate||params.createDate==''){ if( userRole.createDate.indexOf(params.createDate)>=0) return true;} + if(params.loperatePerson||params.loperatePerson==''){ if( userRole.loperatePerson.indexOf(params.loperatePerson)>=0) return true;} + if(params.loperateDate||params.loperateDate==''){ if( userRole.loperateDate.indexOf(params.loperateDate)>=0) return true;} + if(params.roleSort||params.roleSort==''){ if( userRole.roleSort.indexOf(params.roleSort)>=0) return true;} + if(params.enabled||params.enabled==''){ if( userRole.enabled.indexOf(params.enabled)>=0) return true;} + if(params.deptid||params.deptid==''){ if( userRole.deptid.indexOf(params.deptid)>=0) return true;} + return false; + }); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + data: mockUserRoles + }]); + }, 1000); + }); + }); + + + + //获取列表(分页/不分页) + mock.onGet('/mdp/sys/userRole/list').reply(config => { + let params = config.params; + let mockUserRoles = _UserRoles.filter(userRole => { + var isTrue=false; + if(params.id||params.id==''){if(userRole.id.indexOf(params.id)>=0){isTrue=true;}else{isTrue=false;}} + if(params.roleid||params.roleid==''){if(userRole.roleid.indexOf(params.roleid)>=0){isTrue=true;}else{isTrue=false;}} + if(params.userid||params.userid==''){if(userRole.userid.indexOf(params.userid)>=0){isTrue=true;}else{isTrue=false;}} + if(params.remark||params.remark==''){if(userRole.remark.indexOf(params.remark)>=0){isTrue=true;}else{isTrue=false;}} + if(params.userroleBeg||params.userroleBeg==''){if(userRole.userroleBeg.indexOf(params.userroleBeg)>=0){isTrue=true;}else{isTrue=false;}} + if(params.userroleEnd||params.userroleEnd==''){if(userRole.userroleEnd.indexOf(params.userroleEnd)>=0){isTrue=true;}else{isTrue=false;}} + if(params.createPerson||params.createPerson==''){if(userRole.createPerson.indexOf(params.createPerson)>=0){isTrue=true;}else{isTrue=false;}} + if(params.createDate||params.createDate==''){if(userRole.createDate.indexOf(params.createDate)>=0){isTrue=true;}else{isTrue=false;}} + if(params.loperatePerson||params.loperatePerson==''){if(userRole.loperatePerson.indexOf(params.loperatePerson)>=0){isTrue=true;}else{isTrue=false;}} + if(params.loperateDate||params.loperateDate==''){if(userRole.loperateDate.indexOf(params.loperateDate)>=0){isTrue=true;}else{isTrue=false;}} + if(params.roleSort||params.roleSort==''){if(userRole.roleSort.indexOf(params.roleSort)>=0){isTrue=true;}else{isTrue=false;}} + if(params.enabled||params.enabled==''){if(userRole.enabled.indexOf(params.enabled)>=0){isTrue=true;}else{isTrue=false;}} + if(params.deptid||params.deptid==''){if(userRole.deptid.indexOf(params.deptid)>=0){isTrue=true;}else{isTrue=false;}} + return isTrue; + }); + if(!config.params.currentPage){ + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + data: mockUserRoles + }]); + }, 1000); + }); + } + + let {pageSize,currentPage, total} = config.params; + total = mockUserRoles.length; + mockUserRoles = mockUserRoles.filter((userRole, index) => index < pageSize * currentPage && index >= pageSize * (currentPage - 1)); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + pageInfo: { + total:total + }, + data: mockUserRoles, + tips:{ + isOk:true, + msg:'查询成功' + } + }]); + }, 1000); + }); + }); + + //删除 + mock.onPost('/mdp/sys/userRole/del').reply(config => { + var params = JSON.parse( config.data ); + let { id } = params; + _UserRoles = _UserRoles.filter(userRole => userRole.id !== id); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + tips:{ + isOk:true, + msg:'删除成功' + } + }]); + }, 500); + }); + }); + + //批量删除 + mock.onPost('/mdp/sys/userRole/batchDel').reply(config => { + var params = JSON.parse( config.data ); + _UserRoles = _UserRoles.filter(userRole => !params.includes(userRole.id)); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + tips:{ + isOk:true, + msg:'删除成功' + } + }]); + }, 500); + }); + }); + + //编辑 + mock.onPost('/mdp/sys/userRole/edit').reply(config => { + var params = JSON.parse( config.data ); + let { id,roleid,userid,remark,userroleBeg,userroleEnd,createPerson,createDate,loperatePerson,loperateDate,roleSort,enabled,deptid } = params; + _UserRoles.some(userRole => { + if (userRole.id === id) { + userRole.id = id; + userRole.roleid = roleid; + userRole.userid = userid; + userRole.remark = remark; + userRole.userroleBeg = userroleBeg; + userRole.userroleEnd = userroleEnd; + userRole.createPerson = createPerson; + userRole.createDate = createDate; + userRole.loperatePerson = loperatePerson; + userRole.loperateDate = loperateDate; + userRole.roleSort = roleSort; + userRole.enabled = enabled; + userRole.deptid = deptid + return true; + } + }); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + tips:{ + isOk:true, + msg:'编辑成功' + } + }]); + }, 500); + }); + }); + + //新增 + mock.onPost('/mdp/sys/userRole/add').reply(config => { + var params = JSON.parse( config.data ); + let { id,roleid,userid,remark,userroleBeg,userroleEnd,createPerson,createDate,loperatePerson,loperateDate,roleSort,enabled,deptid } = params; + _UserRoles.push({ + id:id, + roleid:roleid, + userid:userid, + remark:remark, + userroleBeg:userroleBeg, + userroleEnd:userroleEnd, + createPerson:createPerson, + createDate:createDate, + loperatePerson:loperatePerson, + loperateDate:loperateDate, + roleSort:roleSort, + enabled:enabled, + deptid:deptid + }); + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve([200, { + tips:{ + isOk:true, + msg:'新增成功' + } + }]); + }, 500); + }); + }); + + } +}; \ No newline at end of file diff --git a/src/router/routes_sys.js b/src/router/routes_sys.js new file mode 100644 index 00000000..a66d85de --- /dev/null +++ b/src/router/routes_sys.js @@ -0,0 +1,119 @@ +/* Layout */ +import Layout from '../views/layout/Layout' +const _import = require('./_import_' + process.env.NODE_ENV) + +export default { + routes:[ + { + path: '/mdp', + component: Layout, + meta: { + title: 'RoleQxMng', + icon: 'people' + }, + name: '角色权限', + iconCls: 'fa fa-tasks', + leaf: true,//只有一个节点 + children: [ + { path: 'sys/role/RoleMng', component: _import('mdp/sys/role/RoleMng'), name: 'RoleMng', meta: { title: 'RoleMng',menu:false }}, + { path: 'sys/qx/QxMng', component: _import('mdp/sys/qx/QxMng'), name: 'QxMng', meta: { title: 'QxMng' ,menu:true}}, + { path: 'menu/menuDef/MenuDefMng', component: _import('mdp/menu/menuDef/MenuDefMng'), name: 'MenuDefMng', meta: { title: 'MenuDefMng' ,menu:true}}, + { path: 'MenuModuleMng', component: _import('mdp/menu/menuModule/MenuModuleMng'), name: 'MenuModuleMng', meta: { title: '模块管理' ,menu:true }}, + { path: 'MenuModuleBranchMng', component: _import('mdp/menu/menuModuleBranch/MenuModuleBranchMng'), name: 'MenuModuleBranchMng', meta: { title: '已开通模块',menu:false }}, + ] + }, + { + path: '/mdp/sys', + component: Layout, + meta: { + title: 'OrgMng', + icon: 'peoples' + }, + name: '机构管理', + iconCls: 'fa fa-tasks', + leaf: true,//只有一个节点 + children: [ + { path: 'branch/BranchSet', component: _import('mdp/sys/branch/BranchSet'), name: 'BranchSet', meta: { title: '机构设置' ,menu:false}}, + + { path: 'dept/DeptMng', component: _import('mdp/sys/dept/DeptMng'), name: 'DeptMng', meta: { title: 'DeptMng' ,menu:false}}, + { path: 'branch/BranchMng', component: _import('mdp/sys/branch/BranchMng'), name: 'BranchMng', meta: { title: 'BranchMng' ,menu:false}}, + { path: 'post/post/PostMng', component: _import('mdp/sys/post/post/PostMng'), name: 'PostMng', meta: { title: 'PostMng' ,menu:false}}, + { path: 'user/BranchAdm', component: _import('mdp/sys/user/BranchAdm'), name: 'BranchAdm', meta: { title: '机构管理员',menu:false },hidden:true}, + { path: 'user/deptUserMng', component: _import('mdp/sys/user/UserMng'), name: 'UserMng', meta: { title: 'UserMng',menu:false }}, + //{ path: 'user/noDeptUserMng', component: _import('mdp/sys/user/UserMng'), name: '用户管理(未分部门)',query:{showDeptTree:false}, meta: { title: 'NoDeptUserMng',menu:true }}, + { path: 'user/deptPostUserMng', component: _import('mdp/sys/post/deptPostUser/DeptPostUserMng'), name: 'DeptPostUserMng', meta: { title: 'DeptPostUserMng',menu:false },hidden:true,}, + { path: 'user/deptPostUserRole', component: _import('mdp/sys/post/deptPostUser/DeptPostUserRole'), name: 'DeptPostUserRole', meta: { title: 'DeptPostUserRole',menu:false },hidden:true,}, + { path: 'user/deptPostUserMenu', component: _import('mdp/sys/post/deptPostUser/DeptPostUserMenu'), name: 'DeptPostUserMenu', meta: { title: 'DeptPostUserMenu',menu:false },hidden:true,}, + ] + }, + { + path: '/mdp/plat', + component: Layout, + meta: { + title: 'plat', + icon: 'international' + }, + name: '平台管理', + iconCls: 'fa fa-tasks', + leaf: true,//只有一个节点 + children: [ + { path: 'platform/PlatformMng', component: _import('mdp/plat/platform/PlatformMng'), name: 'PlatformMng', meta: { title: 'PlatformMng' ,menu:true}}, + { path: 'bankAccount/BankAccountMng', component: _import('mdp/plat/bankAccount/BankAccountMng'), name: 'BankAccountMng', meta: { title: 'BankAccountMng' ,menu:true}}, + ] + }, + { + path: '/mdp/meta', + component: Layout, + meta: { + title: 'MetaData', + icon: 'model' + }, + name: '元数据管理', + iconCls: 'fa el-icon-menu', + //leaf: true,//只有一个节点 + //参数路径------------------------------------------------------- + children: [ + { path: 'category/CategoryMng', component: _import('mdp/meta/category/CategoryMng'), name: 'CategoryMng', meta: { title: 'MetaCategoryMng' ,menu:true}}, + { path: 'item/ItemMng', component: _import('mdp/meta/item/ItemMng'), name: 'ItemMng', meta: { title: 'ItemMng' ,menu:true}}, + { path: 'item/ItemList', component: _import('mdp/meta/item/ItemList'), name: 'ItemList', meta: { title: 'ItemList' ,menu:true}}, + { path: 'item/ItemSetDataRoute', component: _import('mdp/meta/item/ItemSetDataRoute'), name: '参数例子', query:{itemCode:'itemTest',itemName:'参数测试',itemType:'1'}, meta: { title:'参数测试',menu:true}}, + { path: 'item/ItemSetDataFixdItemCode', component: _import('mdp/meta/item/ItemSetDataFixdItemCode'), name: '固定参数例子', meta: { title:'固定参数例子', menu:true}}, + + { path: 'sysParam/SysParamMng', component: _import('mdp/meta/sysParam/SysParamMng'), name: 'SysParamMng', meta: { title: 'SysParamMng' ,menu:true}}, + { path: 'sysParam/SysParamSet', component: _import('mdp/meta/sysParam/SysParamSet'), name: 'SysParamSet', meta: { title: 'SysParamSet' ,menu:true}}, + + ] + }, + { + path: '/mdp/app', + component: Layout, + meta: { + title: 'AppMdpMng', + icon: 'star' + }, + name: '第三方应用', + iconCls: 'fa el-icon-menu', + //leaf: true,//只有一个节点 + children: [ + { path: 'appMdpDef/AppMdpDefMng', component: _import('mdp/app/appMdpDef/AppMdpDefMng'), name: 'AppMdpDefMng', meta: { title: 'AppMdpDefMng' ,menu:true}}, + { path: 'appTpAuth/AppTpAuthMng', component: _import('mdp/app/appTpAuth/AppTpAuthMng'), name: 'AppTpAuthMng', meta: { title: 'AppTpAuthMng' ,menu:true}}, + + + ] + }, + { + path: '/mdp/openAccount', + component: Layout, + meta: { + title: 'AppMdpMng', + icon: 'example' + }, + name: '开户', + iconCls: 'fa el-icon-menu', + //leaf: true,//只有一个节点 + children: [ + { path: 'openAccount/openAccountMng', component: _import('mdp/openAccount/openAccount/openAccountMng'), name: 'openAccountMng', meta: { title: 'OpenAccount' ,icon:'supervise-and-handle',menu:true}} + ] + } + ] +} diff --git a/src/views/charts/keyboard.vue b/src/views/charts/keyboard.vue new file mode 100644 index 00000000..30ed5762 --- /dev/null +++ b/src/views/charts/keyboard.vue @@ -0,0 +1,24 @@ + + + + + + diff --git a/src/views/charts/line.vue b/src/views/charts/line.vue new file mode 100644 index 00000000..c45c3813 --- /dev/null +++ b/src/views/charts/line.vue @@ -0,0 +1,24 @@ + + + + + + diff --git a/src/views/charts/mixChart.vue b/src/views/charts/mixChart.vue new file mode 100644 index 00000000..1ca476e6 --- /dev/null +++ b/src/views/charts/mixChart.vue @@ -0,0 +1,24 @@ + + + + + + diff --git a/src/views/clipboard/index.vue b/src/views/clipboard/index.vue new file mode 100644 index 00000000..9d274122 --- /dev/null +++ b/src/views/clipboard/index.vue @@ -0,0 +1,45 @@ + + + + diff --git a/src/views/excel/exportExcel.vue b/src/views/excel/exportExcel.vue new file mode 100644 index 00000000..543ee2ee --- /dev/null +++ b/src/views/excel/exportExcel.vue @@ -0,0 +1,108 @@ + + + + + + diff --git a/src/views/excel/selectExcel.vue b/src/views/excel/selectExcel.vue new file mode 100644 index 00000000..f548eaa5 --- /dev/null +++ b/src/views/excel/selectExcel.vue @@ -0,0 +1,95 @@ + + + diff --git a/src/views/excel/uploadExcel.vue b/src/views/excel/uploadExcel.vue new file mode 100644 index 00000000..187f43af --- /dev/null +++ b/src/views/excel/uploadExcel.vue @@ -0,0 +1,30 @@ + + + diff --git a/src/views/mdp/app/appMdpDef/AppMdpDefAdd.vue b/src/views/mdp/app/appMdpDef/AppMdpDefAdd.vue new file mode 100644 index 00000000..c5b6ad16 --- /dev/null +++ b/src/views/mdp/app/appMdpDef/AppMdpDefAdd.vue @@ -0,0 +1,145 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/app/appMdpDef/AppMdpDefEdit.vue b/src/views/mdp/app/appMdpDef/AppMdpDefEdit.vue new file mode 100644 index 00000000..1783bc8b --- /dev/null +++ b/src/views/mdp/app/appMdpDef/AppMdpDefEdit.vue @@ -0,0 +1,143 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/app/appMdpDef/AppMdpDefMng.vue b/src/views/mdp/app/appMdpDef/AppMdpDefMng.vue new file mode 100644 index 00000000..9b85e53a --- /dev/null +++ b/src/views/mdp/app/appMdpDef/AppMdpDefMng.vue @@ -0,0 +1,545 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/app/appShopConfig/AppShopConfigAdd.vue b/src/views/mdp/app/appShopConfig/AppShopConfigAdd.vue new file mode 100644 index 00000000..89448917 --- /dev/null +++ b/src/views/mdp/app/appShopConfig/AppShopConfigAdd.vue @@ -0,0 +1,165 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/app/appShopConfig/AppShopConfigEdit.vue b/src/views/mdp/app/appShopConfig/AppShopConfigEdit.vue new file mode 100644 index 00000000..68308c92 --- /dev/null +++ b/src/views/mdp/app/appShopConfig/AppShopConfigEdit.vue @@ -0,0 +1,160 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/app/appShopConfig/AppShopConfigMng.vue b/src/views/mdp/app/appShopConfig/AppShopConfigMng.vue new file mode 100644 index 00000000..1d638fee --- /dev/null +++ b/src/views/mdp/app/appShopConfig/AppShopConfigMng.vue @@ -0,0 +1,254 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/app/appShopConfig/AppShopConfigSet.vue b/src/views/mdp/app/appShopConfig/AppShopConfigSet.vue new file mode 100644 index 00000000..c290643a --- /dev/null +++ b/src/views/mdp/app/appShopConfig/AppShopConfigSet.vue @@ -0,0 +1,335 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/app/appTpAuth/AppTpAuthAdd.vue b/src/views/mdp/app/appTpAuth/AppTpAuthAdd.vue new file mode 100644 index 00000000..e5aec1a5 --- /dev/null +++ b/src/views/mdp/app/appTpAuth/AppTpAuthAdd.vue @@ -0,0 +1,284 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/app/appTpAuth/AppTpAuthEdit.vue b/src/views/mdp/app/appTpAuth/AppTpAuthEdit.vue new file mode 100644 index 00000000..1224a1a6 --- /dev/null +++ b/src/views/mdp/app/appTpAuth/AppTpAuthEdit.vue @@ -0,0 +1,295 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/app/appTpAuth/AppTpAuthMng.vue b/src/views/mdp/app/appTpAuth/AppTpAuthMng.vue new file mode 100644 index 00000000..31e882b5 --- /dev/null +++ b/src/views/mdp/app/appTpAuth/AppTpAuthMng.vue @@ -0,0 +1,275 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/app/appTpPay/AppTpPayAdd.vue b/src/views/mdp/app/appTpPay/AppTpPayAdd.vue new file mode 100644 index 00000000..89c9fa8f --- /dev/null +++ b/src/views/mdp/app/appTpPay/AppTpPayAdd.vue @@ -0,0 +1,353 @@ + + + + + diff --git a/src/views/mdp/app/appTpPay/AppTpPayEdit.vue b/src/views/mdp/app/appTpPay/AppTpPayEdit.vue new file mode 100644 index 00000000..b0e6491f --- /dev/null +++ b/src/views/mdp/app/appTpPay/AppTpPayEdit.vue @@ -0,0 +1,341 @@ + + + + + diff --git a/src/views/mdp/app/appTpPay/AppTpPayMng.vue b/src/views/mdp/app/appTpPay/AppTpPayMng.vue new file mode 100644 index 00000000..eb474309 --- /dev/null +++ b/src/views/mdp/app/appTpPay/AppTpPayMng.vue @@ -0,0 +1,253 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/app/selectShop.vue b/src/views/mdp/app/selectShop.vue new file mode 100644 index 00000000..df3017d9 --- /dev/null +++ b/src/views/mdp/app/selectShop.vue @@ -0,0 +1,120 @@ + + + + + diff --git a/src/views/mdp/app/selectShopLocationBySysDept/selectShopLocationBySysDept.vue b/src/views/mdp/app/selectShopLocationBySysDept/selectShopLocationBySysDept.vue new file mode 100644 index 00000000..3779ae11 --- /dev/null +++ b/src/views/mdp/app/selectShopLocationBySysDept/selectShopLocationBySysDept.vue @@ -0,0 +1,144 @@ + + + + + diff --git a/src/views/mdp/form/formField/FormFieldAdd.vue b/src/views/mdp/form/formField/FormFieldAdd.vue new file mode 100644 index 00000000..a17139a9 --- /dev/null +++ b/src/views/mdp/form/formField/FormFieldAdd.vue @@ -0,0 +1,389 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/form/formField/FormFieldEdit.vue b/src/views/mdp/form/formField/FormFieldEdit.vue new file mode 100644 index 00000000..5e1adfc9 --- /dev/null +++ b/src/views/mdp/form/formField/FormFieldEdit.vue @@ -0,0 +1,169 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/form/formField/FormFieldMng.vue b/src/views/mdp/form/formField/FormFieldMng.vue new file mode 100644 index 00000000..54e9acae --- /dev/null +++ b/src/views/mdp/form/formField/FormFieldMng.vue @@ -0,0 +1,292 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/menu/menuBranch/MenuBranchAdd.vue b/src/views/mdp/menu/menuBranch/MenuBranchAdd.vue new file mode 100644 index 00000000..e4d718e4 --- /dev/null +++ b/src/views/mdp/menu/menuBranch/MenuBranchAdd.vue @@ -0,0 +1,116 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/menu/menuBranch/MenuBranchEdit.vue b/src/views/mdp/menu/menuBranch/MenuBranchEdit.vue new file mode 100644 index 00000000..e1bcfc4c --- /dev/null +++ b/src/views/mdp/menu/menuBranch/MenuBranchEdit.vue @@ -0,0 +1,111 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/menu/menuBranch/MenuBranchMng.vue b/src/views/mdp/menu/menuBranch/MenuBranchMng.vue new file mode 100644 index 00000000..3926dd7f --- /dev/null +++ b/src/views/mdp/menu/menuBranch/MenuBranchMng.vue @@ -0,0 +1,241 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/menu/menuDef/MenuButtons.vue b/src/views/mdp/menu/menuDef/MenuButtons.vue new file mode 100644 index 00000000..ac2152bd --- /dev/null +++ b/src/views/mdp/menu/menuDef/MenuButtons.vue @@ -0,0 +1,310 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/menu/menuDef/MenuDefAdd.vue b/src/views/mdp/menu/menuDef/MenuDefAdd.vue new file mode 100644 index 00000000..44845d79 --- /dev/null +++ b/src/views/mdp/menu/menuDef/MenuDefAdd.vue @@ -0,0 +1,183 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/menu/menuDef/MenuDefEdit.vue b/src/views/mdp/menu/menuDef/MenuDefEdit.vue new file mode 100644 index 00000000..91660d89 --- /dev/null +++ b/src/views/mdp/menu/menuDef/MenuDefEdit.vue @@ -0,0 +1,187 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/menu/menuDef/MenuDefImport.vue b/src/views/mdp/menu/menuDef/MenuDefImport.vue new file mode 100644 index 00000000..3e8ef6a6 --- /dev/null +++ b/src/views/mdp/menu/menuDef/MenuDefImport.vue @@ -0,0 +1,308 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/menu/menuDef/MenuDefMng.vue b/src/views/mdp/menu/menuDef/MenuDefMng.vue new file mode 100644 index 00000000..b41b8edc --- /dev/null +++ b/src/views/mdp/menu/menuDef/MenuDefMng.vue @@ -0,0 +1,394 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/menu/menuDef/MenuTree.vue b/src/views/mdp/menu/menuDef/MenuTree.vue new file mode 100644 index 00000000..3a0a4b75 --- /dev/null +++ b/src/views/mdp/menu/menuDef/MenuTree.vue @@ -0,0 +1,260 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/menu/menuFavorite/MenuFavoriteEdit.vue b/src/views/mdp/menu/menuFavorite/MenuFavoriteEdit.vue new file mode 100644 index 00000000..b3f907bc --- /dev/null +++ b/src/views/mdp/menu/menuFavorite/MenuFavoriteEdit.vue @@ -0,0 +1,178 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/menu/menuFavorite/MenuFavoriteMng.vue b/src/views/mdp/menu/menuFavorite/MenuFavoriteMng.vue new file mode 100644 index 00000000..7509b3b6 --- /dev/null +++ b/src/views/mdp/menu/menuFavorite/MenuFavoriteMng.vue @@ -0,0 +1,380 @@ + + + + + diff --git a/src/views/mdp/menu/menuModule/MenuModuleComplex.vue b/src/views/mdp/menu/menuModule/MenuModuleComplex.vue new file mode 100644 index 00000000..e2c91205 --- /dev/null +++ b/src/views/mdp/menu/menuModule/MenuModuleComplex.vue @@ -0,0 +1,384 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/menu/menuModule/MenuModuleEdit.vue b/src/views/mdp/menu/menuModule/MenuModuleEdit.vue new file mode 100644 index 00000000..c59aadab --- /dev/null +++ b/src/views/mdp/menu/menuModule/MenuModuleEdit.vue @@ -0,0 +1,205 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/menu/menuModule/MenuModuleMng.vue b/src/views/mdp/menu/menuModule/MenuModuleMng.vue new file mode 100644 index 00000000..583b3400 --- /dev/null +++ b/src/views/mdp/menu/menuModule/MenuModuleMng.vue @@ -0,0 +1,373 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/menu/menuModule/ModuleSelect.vue b/src/views/mdp/menu/menuModule/ModuleSelect.vue new file mode 100644 index 00000000..dd697ab1 --- /dev/null +++ b/src/views/mdp/menu/menuModule/ModuleSelect.vue @@ -0,0 +1,205 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/menu/menuModuleBranch/MenuModuleBranchComplex.vue b/src/views/mdp/menu/menuModuleBranch/MenuModuleBranchComplex.vue new file mode 100644 index 00000000..3e4589a2 --- /dev/null +++ b/src/views/mdp/menu/menuModuleBranch/MenuModuleBranchComplex.vue @@ -0,0 +1,345 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/menu/menuModuleBranch/MenuModuleBranchEdit.vue b/src/views/mdp/menu/menuModuleBranch/MenuModuleBranchEdit.vue new file mode 100644 index 00000000..670bf58f --- /dev/null +++ b/src/views/mdp/menu/menuModuleBranch/MenuModuleBranchEdit.vue @@ -0,0 +1,200 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/menu/menuModuleBranch/MenuModuleBranchMng.vue b/src/views/mdp/menu/menuModuleBranch/MenuModuleBranchMng.vue new file mode 100644 index 00000000..b87a1e10 --- /dev/null +++ b/src/views/mdp/menu/menuModuleBranch/MenuModuleBranchMng.vue @@ -0,0 +1,323 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/menu/menuRole/MenuRoleAdd.vue b/src/views/mdp/menu/menuRole/MenuRoleAdd.vue new file mode 100644 index 00000000..07b59482 --- /dev/null +++ b/src/views/mdp/menu/menuRole/MenuRoleAdd.vue @@ -0,0 +1,117 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/menu/menuRole/MenuRoleEdit.vue b/src/views/mdp/menu/menuRole/MenuRoleEdit.vue new file mode 100644 index 00000000..e08ed0b0 --- /dev/null +++ b/src/views/mdp/menu/menuRole/MenuRoleEdit.vue @@ -0,0 +1,112 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/menu/menuRole/MenuRoleMng.vue b/src/views/mdp/menu/menuRole/MenuRoleMng.vue new file mode 100644 index 00000000..60e76573 --- /dev/null +++ b/src/views/mdp/menu/menuRole/MenuRoleMng.vue @@ -0,0 +1,241 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/menu/menuRole/MenuRoleSet.vue b/src/views/mdp/menu/menuRole/MenuRoleSet.vue new file mode 100644 index 00000000..70bb9538 --- /dev/null +++ b/src/views/mdp/menu/menuRole/MenuRoleSet.vue @@ -0,0 +1,182 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/menu/menuRole/RoleMenuSet.vue b/src/views/mdp/menu/menuRole/RoleMenuSet.vue new file mode 100644 index 00000000..137dacea --- /dev/null +++ b/src/views/mdp/menu/menuRole/RoleMenuSet.vue @@ -0,0 +1,125 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/meta/item/ItemList.vue b/src/views/mdp/meta/item/ItemList.vue new file mode 100644 index 00000000..e615addd --- /dev/null +++ b/src/views/mdp/meta/item/ItemList.vue @@ -0,0 +1,287 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/meta/item/ItemSetData.vue b/src/views/mdp/meta/item/ItemSetData.vue new file mode 100644 index 00000000..28f8b9d5 --- /dev/null +++ b/src/views/mdp/meta/item/ItemSetData.vue @@ -0,0 +1,247 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/meta/item/ItemSetDataFixdItemCode.vue b/src/views/mdp/meta/item/ItemSetDataFixdItemCode.vue new file mode 100644 index 00000000..6a171486 --- /dev/null +++ b/src/views/mdp/meta/item/ItemSetDataFixdItemCode.vue @@ -0,0 +1,84 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/meta/item/ItemSetDataRoute.vue b/src/views/mdp/meta/item/ItemSetDataRoute.vue new file mode 100644 index 00000000..05e4e024 --- /dev/null +++ b/src/views/mdp/meta/item/ItemSetDataRoute.vue @@ -0,0 +1,103 @@ + + + + + + + \ No newline at end of file diff --git a/src/views/mdp/meta/pushLink/PushLinkEdit.vue b/src/views/mdp/meta/pushLink/PushLinkEdit.vue new file mode 100644 index 00000000..a2f9b75f --- /dev/null +++ b/src/views/mdp/meta/pushLink/PushLinkEdit.vue @@ -0,0 +1,153 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/meta/pushLink/PushLinkMng.vue b/src/views/mdp/meta/pushLink/PushLinkMng.vue new file mode 100644 index 00000000..d64ca2b5 --- /dev/null +++ b/src/views/mdp/meta/pushLink/PushLinkMng.vue @@ -0,0 +1,257 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/meta/sysParam/SysParamSet.vue b/src/views/mdp/meta/sysParam/SysParamSet.vue new file mode 100644 index 00000000..f99829d2 --- /dev/null +++ b/src/views/mdp/meta/sysParam/SysParamSet.vue @@ -0,0 +1,323 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/mo/moOrder/MoOrderEdit.vue b/src/views/mdp/mo/moOrder/MoOrderEdit.vue new file mode 100644 index 00000000..7b954bb0 --- /dev/null +++ b/src/views/mdp/mo/moOrder/MoOrderEdit.vue @@ -0,0 +1,326 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/mo/moOrder/MoOrderMng.vue b/src/views/mdp/mo/moOrder/MoOrderMng.vue new file mode 100644 index 00000000..a41d2ce2 --- /dev/null +++ b/src/views/mdp/mo/moOrder/MoOrderMng.vue @@ -0,0 +1,426 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/mo/moOrder/MyMoOrderMng.vue b/src/views/mdp/mo/moOrder/MyMoOrderMng.vue new file mode 100644 index 00000000..56fa61f6 --- /dev/null +++ b/src/views/mdp/mo/moOrder/MyMoOrderMng.vue @@ -0,0 +1,241 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/mo/moOrderModule/MoOrderModuleEdit.vue b/src/views/mdp/mo/moOrderModule/MoOrderModuleEdit.vue new file mode 100644 index 00000000..c02e600a --- /dev/null +++ b/src/views/mdp/mo/moOrderModule/MoOrderModuleEdit.vue @@ -0,0 +1,208 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/mo/moOrderModule/MoOrderModuleMng.vue b/src/views/mdp/mo/moOrderModule/MoOrderModuleMng.vue new file mode 100644 index 00000000..6b258ab8 --- /dev/null +++ b/src/views/mdp/mo/moOrderModule/MoOrderModuleMng.vue @@ -0,0 +1,329 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/openAccount/openAccount/openAccountMng.vue b/src/views/mdp/openAccount/openAccount/openAccountMng.vue new file mode 100644 index 00000000..7f4d19b2 --- /dev/null +++ b/src/views/mdp/openAccount/openAccount/openAccountMng.vue @@ -0,0 +1,458 @@ + + + + + diff --git a/src/views/mdp/plat/bankAccount/BankAccountAdd.vue b/src/views/mdp/plat/bankAccount/BankAccountAdd.vue new file mode 100644 index 00000000..cd9ba7bd --- /dev/null +++ b/src/views/mdp/plat/bankAccount/BankAccountAdd.vue @@ -0,0 +1,144 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/plat/bankAccount/BankAccountEdit.vue b/src/views/mdp/plat/bankAccount/BankAccountEdit.vue new file mode 100644 index 00000000..bdfee33a --- /dev/null +++ b/src/views/mdp/plat/bankAccount/BankAccountEdit.vue @@ -0,0 +1,147 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/plat/bankAccount/BankAccountMng.vue b/src/views/mdp/plat/bankAccount/BankAccountMng.vue new file mode 100644 index 00000000..c68dc6cf --- /dev/null +++ b/src/views/mdp/plat/bankAccount/BankAccountMng.vue @@ -0,0 +1,160 @@ + + + + + diff --git a/src/views/mdp/plat/bankAccount/BankAccountMng_old.vue b/src/views/mdp/plat/bankAccount/BankAccountMng_old.vue new file mode 100644 index 00000000..e1a32235 --- /dev/null +++ b/src/views/mdp/plat/bankAccount/BankAccountMng_old.vue @@ -0,0 +1,259 @@ + + + + + diff --git a/src/views/mdp/plat/platform/PlatformMng.vue b/src/views/mdp/plat/platform/PlatformMng.vue new file mode 100644 index 00000000..1d4c6ed9 --- /dev/null +++ b/src/views/mdp/plat/platform/PlatformMng.vue @@ -0,0 +1,402 @@ + + + + + diff --git a/src/views/mdp/sys/branch/BranchMng.vue b/src/views/mdp/sys/branch/BranchMng.vue new file mode 100644 index 00000000..daa988af --- /dev/null +++ b/src/views/mdp/sys/branch/BranchMng.vue @@ -0,0 +1,513 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/sys/branch/BranchSet.vue b/src/views/mdp/sys/branch/BranchSet.vue new file mode 100644 index 00000000..3a939faf --- /dev/null +++ b/src/views/mdp/sys/branch/BranchSet.vue @@ -0,0 +1,325 @@ + + + + + + \ No newline at end of file diff --git a/src/views/mdp/sys/branchConfig/BranchConfigEdit.vue b/src/views/mdp/sys/branchConfig/BranchConfigEdit.vue new file mode 100644 index 00000000..324f97a9 --- /dev/null +++ b/src/views/mdp/sys/branchConfig/BranchConfigEdit.vue @@ -0,0 +1,146 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/sys/branchConfig/BranchConfigMng.vue b/src/views/mdp/sys/branchConfig/BranchConfigMng.vue new file mode 100644 index 00000000..56271157 --- /dev/null +++ b/src/views/mdp/sys/branchConfig/BranchConfigMng.vue @@ -0,0 +1,332 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/sys/branchInterests/BranchInterestsEdit.vue b/src/views/mdp/sys/branchInterests/BranchInterestsEdit.vue new file mode 100644 index 00000000..48d1ada9 --- /dev/null +++ b/src/views/mdp/sys/branchInterests/BranchInterestsEdit.vue @@ -0,0 +1,233 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/sys/branchInterests/BranchInterestsMng.vue b/src/views/mdp/sys/branchInterests/BranchInterestsMng.vue new file mode 100644 index 00000000..24f06a50 --- /dev/null +++ b/src/views/mdp/sys/branchInterests/BranchInterestsMng.vue @@ -0,0 +1,451 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/sys/branchModule/BranchModuleEdit.vue b/src/views/mdp/sys/branchModule/BranchModuleEdit.vue new file mode 100644 index 00000000..712fdefb --- /dev/null +++ b/src/views/mdp/sys/branchModule/BranchModuleEdit.vue @@ -0,0 +1,199 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/sys/branchModule/BranchModuleMng.vue b/src/views/mdp/sys/branchModule/BranchModuleMng.vue new file mode 100644 index 00000000..9336f1f9 --- /dev/null +++ b/src/views/mdp/sys/branchModule/BranchModuleMng.vue @@ -0,0 +1,323 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/sys/dept/DeptAdd.vue b/src/views/mdp/sys/dept/DeptAdd.vue new file mode 100644 index 00000000..d1e2f103 --- /dev/null +++ b/src/views/mdp/sys/dept/DeptAdd.vue @@ -0,0 +1,209 @@ + + + + + diff --git a/src/views/mdp/sys/dept/DeptEdit.vue b/src/views/mdp/sys/dept/DeptEdit.vue new file mode 100644 index 00000000..c9a71bbf --- /dev/null +++ b/src/views/mdp/sys/dept/DeptEdit.vue @@ -0,0 +1,178 @@ + + + + + diff --git a/src/views/mdp/sys/dept/DeptLocationEdit.vue b/src/views/mdp/sys/dept/DeptLocationEdit.vue new file mode 100644 index 00000000..674d2b5b --- /dev/null +++ b/src/views/mdp/sys/dept/DeptLocationEdit.vue @@ -0,0 +1,395 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/sys/dept/DeptLocationEdit2.vue b/src/views/mdp/sys/dept/DeptLocationEdit2.vue new file mode 100644 index 00000000..0b731c85 --- /dev/null +++ b/src/views/mdp/sys/dept/DeptLocationEdit2.vue @@ -0,0 +1,474 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/sys/dept/DeptMng.vue b/src/views/mdp/sys/dept/DeptMng.vue new file mode 100644 index 00000000..6817bf82 --- /dev/null +++ b/src/views/mdp/sys/dept/DeptMng.vue @@ -0,0 +1,884 @@ + + + + + diff --git a/src/views/mdp/sys/dept/DeptSelect.vue b/src/views/mdp/sys/dept/DeptSelect.vue new file mode 100644 index 00000000..bb947e14 --- /dev/null +++ b/src/views/mdp/sys/dept/DeptSelect.vue @@ -0,0 +1,374 @@ + + + + + diff --git a/src/views/mdp/sys/deptLocation/DeptLocationAdd.vue b/src/views/mdp/sys/deptLocation/DeptLocationAdd.vue new file mode 100644 index 00000000..11bc0281 --- /dev/null +++ b/src/views/mdp/sys/deptLocation/DeptLocationAdd.vue @@ -0,0 +1,128 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/sys/deptLocation/DeptLocationEdit.vue b/src/views/mdp/sys/deptLocation/DeptLocationEdit.vue new file mode 100644 index 00000000..9fb56f7d --- /dev/null +++ b/src/views/mdp/sys/deptLocation/DeptLocationEdit.vue @@ -0,0 +1,123 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/sys/deptLocation/DeptLocationMng.vue b/src/views/mdp/sys/deptLocation/DeptLocationMng.vue new file mode 100644 index 00000000..b019005d --- /dev/null +++ b/src/views/mdp/sys/deptLocation/DeptLocationMng.vue @@ -0,0 +1,245 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/sys/module/ModuleEdit.vue b/src/views/mdp/sys/module/ModuleEdit.vue new file mode 100644 index 00000000..af7862c2 --- /dev/null +++ b/src/views/mdp/sys/module/ModuleEdit.vue @@ -0,0 +1,192 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/sys/module/ModuleMng.vue b/src/views/mdp/sys/module/ModuleMng.vue new file mode 100644 index 00000000..e76ecd87 --- /dev/null +++ b/src/views/mdp/sys/module/ModuleMng.vue @@ -0,0 +1,341 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/sys/module/ModuleSelect.vue b/src/views/mdp/sys/module/ModuleSelect.vue new file mode 100644 index 00000000..1efee0a2 --- /dev/null +++ b/src/views/mdp/sys/module/ModuleSelect.vue @@ -0,0 +1,205 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/sys/operDataTrail/OperDataTrailMng.vue b/src/views/mdp/sys/operDataTrail/OperDataTrailMng.vue new file mode 100644 index 00000000..78cad413 --- /dev/null +++ b/src/views/mdp/sys/operDataTrail/OperDataTrailMng.vue @@ -0,0 +1,322 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/sys/post/deptPost/DeptPostAdd.vue b/src/views/mdp/sys/post/deptPost/DeptPostAdd.vue new file mode 100644 index 00000000..25c5dfe8 --- /dev/null +++ b/src/views/mdp/sys/post/deptPost/DeptPostAdd.vue @@ -0,0 +1,117 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/sys/post/deptPost/DeptPostEdit.vue b/src/views/mdp/sys/post/deptPost/DeptPostEdit.vue new file mode 100644 index 00000000..2756d99e --- /dev/null +++ b/src/views/mdp/sys/post/deptPost/DeptPostEdit.vue @@ -0,0 +1,112 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/sys/post/deptPost/DeptPostMng.vue b/src/views/mdp/sys/post/deptPost/DeptPostMng.vue new file mode 100644 index 00000000..5fbb62ca --- /dev/null +++ b/src/views/mdp/sys/post/deptPost/DeptPostMng.vue @@ -0,0 +1,190 @@ + + + + + diff --git a/src/views/mdp/sys/post/deptPost/PostDepts.vue b/src/views/mdp/sys/post/deptPost/PostDepts.vue new file mode 100644 index 00000000..f193d5f6 --- /dev/null +++ b/src/views/mdp/sys/post/deptPost/PostDepts.vue @@ -0,0 +1,191 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/sys/post/deptPost/PostSelect.vue b/src/views/mdp/sys/post/deptPost/PostSelect.vue new file mode 100644 index 00000000..0940a37c --- /dev/null +++ b/src/views/mdp/sys/post/deptPost/PostSelect.vue @@ -0,0 +1,208 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/sys/post/deptPostUser/DeptPostUserAdd.vue b/src/views/mdp/sys/post/deptPostUser/DeptPostUserAdd.vue new file mode 100644 index 00000000..b076ff93 --- /dev/null +++ b/src/views/mdp/sys/post/deptPostUser/DeptPostUserAdd.vue @@ -0,0 +1,132 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/sys/post/deptPostUser/DeptPostUserEdit.vue b/src/views/mdp/sys/post/deptPostUser/DeptPostUserEdit.vue new file mode 100644 index 00000000..1b37452c --- /dev/null +++ b/src/views/mdp/sys/post/deptPostUser/DeptPostUserEdit.vue @@ -0,0 +1,127 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/sys/post/deptPostUser/DeptPostUserMenu.vue b/src/views/mdp/sys/post/deptPostUser/DeptPostUserMenu.vue new file mode 100644 index 00000000..ce916aec --- /dev/null +++ b/src/views/mdp/sys/post/deptPostUser/DeptPostUserMenu.vue @@ -0,0 +1,288 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/sys/post/deptPostUser/DeptPostUserMng.vue b/src/views/mdp/sys/post/deptPostUser/DeptPostUserMng.vue new file mode 100644 index 00000000..5aa3e7ad --- /dev/null +++ b/src/views/mdp/sys/post/deptPostUser/DeptPostUserMng.vue @@ -0,0 +1,411 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/sys/post/deptPostUser/DeptPostUserRole.vue b/src/views/mdp/sys/post/deptPostUser/DeptPostUserRole.vue new file mode 100644 index 00000000..09b2217c --- /dev/null +++ b/src/views/mdp/sys/post/deptPostUser/DeptPostUserRole.vue @@ -0,0 +1,282 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/sys/post/post/PostAdd.vue b/src/views/mdp/sys/post/post/PostAdd.vue new file mode 100644 index 00000000..bf72faa0 --- /dev/null +++ b/src/views/mdp/sys/post/post/PostAdd.vue @@ -0,0 +1,146 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/sys/post/post/PostEdit.vue b/src/views/mdp/sys/post/post/PostEdit.vue new file mode 100644 index 00000000..4a84ac18 --- /dev/null +++ b/src/views/mdp/sys/post/post/PostEdit.vue @@ -0,0 +1,141 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/sys/post/post/PostMng.vue b/src/views/mdp/sys/post/post/PostMng.vue new file mode 100644 index 00000000..95c78f85 --- /dev/null +++ b/src/views/mdp/sys/post/post/PostMng.vue @@ -0,0 +1,511 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/sys/post/postRole/PostRoleAdd.vue b/src/views/mdp/sys/post/postRole/PostRoleAdd.vue new file mode 100644 index 00000000..61ff3021 --- /dev/null +++ b/src/views/mdp/sys/post/postRole/PostRoleAdd.vue @@ -0,0 +1,114 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/sys/post/postRole/PostRoleEdit.vue b/src/views/mdp/sys/post/postRole/PostRoleEdit.vue new file mode 100644 index 00000000..f5b18dcd --- /dev/null +++ b/src/views/mdp/sys/post/postRole/PostRoleEdit.vue @@ -0,0 +1,106 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/sys/post/postRole/PostRoleMng.vue b/src/views/mdp/sys/post/postRole/PostRoleMng.vue new file mode 100644 index 00000000..c503a892 --- /dev/null +++ b/src/views/mdp/sys/post/postRole/PostRoleMng.vue @@ -0,0 +1,363 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/sys/post/postRole/RoleSelect.vue b/src/views/mdp/sys/post/postRole/RoleSelect.vue new file mode 100644 index 00000000..70d87169 --- /dev/null +++ b/src/views/mdp/sys/post/postRole/RoleSelect.vue @@ -0,0 +1,258 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/sys/post/postRole/SetRolesToPost.vue b/src/views/mdp/sys/post/postRole/SetRolesToPost.vue new file mode 100644 index 00000000..d853c173 --- /dev/null +++ b/src/views/mdp/sys/post/postRole/SetRolesToPost.vue @@ -0,0 +1,185 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/sys/qx/QxAdd.vue b/src/views/mdp/sys/qx/QxAdd.vue new file mode 100644 index 00000000..1dc8fea1 --- /dev/null +++ b/src/views/mdp/sys/qx/QxAdd.vue @@ -0,0 +1,136 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/sys/qx/QxEdit.vue b/src/views/mdp/sys/qx/QxEdit.vue new file mode 100644 index 00000000..da64cf64 --- /dev/null +++ b/src/views/mdp/sys/qx/QxEdit.vue @@ -0,0 +1,135 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/sys/qx/QxMng.vue b/src/views/mdp/sys/qx/QxMng.vue new file mode 100644 index 00000000..54625708 --- /dev/null +++ b/src/views/mdp/sys/qx/QxMng.vue @@ -0,0 +1,321 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/sys/region/RegionAdd.vue b/src/views/mdp/sys/region/RegionAdd.vue new file mode 100644 index 00000000..118d34ec --- /dev/null +++ b/src/views/mdp/sys/region/RegionAdd.vue @@ -0,0 +1,123 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/sys/region/RegionEdit.vue b/src/views/mdp/sys/region/RegionEdit.vue new file mode 100644 index 00000000..c4bfd634 --- /dev/null +++ b/src/views/mdp/sys/region/RegionEdit.vue @@ -0,0 +1,121 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/sys/region/RegionMng.vue b/src/views/mdp/sys/region/RegionMng.vue new file mode 100644 index 00000000..241df825 --- /dev/null +++ b/src/views/mdp/sys/region/RegionMng.vue @@ -0,0 +1,266 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/sys/role/RoleAdd.vue b/src/views/mdp/sys/role/RoleAdd.vue new file mode 100644 index 00000000..fc803d65 --- /dev/null +++ b/src/views/mdp/sys/role/RoleAdd.vue @@ -0,0 +1,142 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/sys/role/RoleEdit.vue b/src/views/mdp/sys/role/RoleEdit.vue new file mode 100644 index 00000000..e520fe2e --- /dev/null +++ b/src/views/mdp/sys/role/RoleEdit.vue @@ -0,0 +1,136 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/sys/role/RoleMng.vue b/src/views/mdp/sys/role/RoleMng.vue new file mode 100644 index 00000000..f12bf6e1 --- /dev/null +++ b/src/views/mdp/sys/role/RoleMng.vue @@ -0,0 +1,464 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/sys/roleQx/RoleQxMng.vue b/src/views/mdp/sys/roleQx/RoleQxMng.vue new file mode 100644 index 00000000..0b9acccd --- /dev/null +++ b/src/views/mdp/sys/roleQx/RoleQxMng.vue @@ -0,0 +1,289 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/sys/thirdPartyAccount/ThirdPartyAccountMng.vue b/src/views/mdp/sys/thirdPartyAccount/ThirdPartyAccountMng.vue new file mode 100644 index 00000000..763f12df --- /dev/null +++ b/src/views/mdp/sys/thirdPartyAccount/ThirdPartyAccountMng.vue @@ -0,0 +1,339 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/sys/user/BranchAdm.vue b/src/views/mdp/sys/user/BranchAdm.vue new file mode 100644 index 00000000..8bea16b2 --- /dev/null +++ b/src/views/mdp/sys/user/BranchAdm.vue @@ -0,0 +1,170 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/sys/user/ChangeEmailStepOne.vue b/src/views/mdp/sys/user/ChangeEmailStepOne.vue new file mode 100644 index 00000000..74fc7756 --- /dev/null +++ b/src/views/mdp/sys/user/ChangeEmailStepOne.vue @@ -0,0 +1,168 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/sys/user/ChangeEmailStepTwo.vue b/src/views/mdp/sys/user/ChangeEmailStepTwo.vue new file mode 100644 index 00000000..755685f2 --- /dev/null +++ b/src/views/mdp/sys/user/ChangeEmailStepTwo.vue @@ -0,0 +1,114 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/sys/user/MemMemberMng.vue b/src/views/mdp/sys/user/MemMemberMng.vue new file mode 100644 index 00000000..454fc5e8 --- /dev/null +++ b/src/views/mdp/sys/user/MemMemberMng.vue @@ -0,0 +1,280 @@ + + + + + diff --git a/src/views/mdp/sys/user/UserAdd.vue b/src/views/mdp/sys/user/UserAdd.vue new file mode 100644 index 00000000..95b17296 --- /dev/null +++ b/src/views/mdp/sys/user/UserAdd.vue @@ -0,0 +1,238 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/sys/user/UserEdit.vue b/src/views/mdp/sys/user/UserEdit.vue new file mode 100644 index 00000000..b06f7fdc --- /dev/null +++ b/src/views/mdp/sys/user/UserEdit.vue @@ -0,0 +1,220 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/sys/user/UserInvite.vue b/src/views/mdp/sys/user/UserInvite.vue new file mode 100644 index 00000000..34227a9c --- /dev/null +++ b/src/views/mdp/sys/user/UserInvite.vue @@ -0,0 +1,298 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/sys/user/UserMng.vue b/src/views/mdp/sys/user/UserMng.vue new file mode 100644 index 00000000..1f0385c9 --- /dev/null +++ b/src/views/mdp/sys/user/UserMng.vue @@ -0,0 +1,843 @@ + + + + + diff --git a/src/views/mdp/sys/user/UserTpaMng.vue b/src/views/mdp/sys/user/UserTpaMng.vue new file mode 100644 index 00000000..c8509078 --- /dev/null +++ b/src/views/mdp/sys/user/UserTpaMng.vue @@ -0,0 +1,293 @@ + + + + + diff --git a/src/views/mdp/sys/user/UsersSelectOnly.vue b/src/views/mdp/sys/user/UsersSelectOnly.vue new file mode 100644 index 00000000..61787526 --- /dev/null +++ b/src/views/mdp/sys/user/UsersSelectOnly.vue @@ -0,0 +1,325 @@ + + + + + diff --git a/src/views/mdp/sys/userDept/DeptPostSelect.vue b/src/views/mdp/sys/userDept/DeptPostSelect.vue new file mode 100644 index 00000000..25d92f64 --- /dev/null +++ b/src/views/mdp/sys/userDept/DeptPostSelect.vue @@ -0,0 +1,247 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/sys/userDept/UserDeptList.vue b/src/views/mdp/sys/userDept/UserDeptList.vue new file mode 100644 index 00000000..fdad7d79 --- /dev/null +++ b/src/views/mdp/sys/userDept/UserDeptList.vue @@ -0,0 +1,255 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/sys/userLoginRecord/UserLoginRecordEdit.vue b/src/views/mdp/sys/userLoginRecord/UserLoginRecordEdit.vue new file mode 100644 index 00000000..43ab6e25 --- /dev/null +++ b/src/views/mdp/sys/userLoginRecord/UserLoginRecordEdit.vue @@ -0,0 +1,195 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/sys/userLoginRecord/UserLoginRecordMng.vue b/src/views/mdp/sys/userLoginRecord/UserLoginRecordMng.vue new file mode 100644 index 00000000..cec6d366 --- /dev/null +++ b/src/views/mdp/sys/userLoginRecord/UserLoginRecordMng.vue @@ -0,0 +1,419 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/sys/userRole/UserRoleEdit.vue b/src/views/mdp/sys/userRole/UserRoleEdit.vue new file mode 100644 index 00000000..7e646392 --- /dev/null +++ b/src/views/mdp/sys/userRole/UserRoleEdit.vue @@ -0,0 +1,185 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/sys/userRole/UserRoleList.vue b/src/views/mdp/sys/userRole/UserRoleList.vue new file mode 100644 index 00000000..88227227 --- /dev/null +++ b/src/views/mdp/sys/userRole/UserRoleList.vue @@ -0,0 +1,162 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/sys/userTpa/UserTpaAdd.vue b/src/views/mdp/sys/userTpa/UserTpaAdd.vue new file mode 100644 index 00000000..87917b45 --- /dev/null +++ b/src/views/mdp/sys/userTpa/UserTpaAdd.vue @@ -0,0 +1,164 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/sys/userTpa/UserTpaEdit.vue b/src/views/mdp/sys/userTpa/UserTpaEdit.vue new file mode 100644 index 00000000..723c016b --- /dev/null +++ b/src/views/mdp/sys/userTpa/UserTpaEdit.vue @@ -0,0 +1,159 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/sys/userTpa/UserTpaMng.vue b/src/views/mdp/sys/userTpa/UserTpaMng.vue new file mode 100644 index 00000000..d55744cf --- /dev/null +++ b/src/views/mdp/sys/userTpa/UserTpaMng.vue @@ -0,0 +1,257 @@ + + + + + diff --git a/src/views/mdp/sys/userTpaApply/UserTpaApplyAdd.vue b/src/views/mdp/sys/userTpaApply/UserTpaApplyAdd.vue new file mode 100644 index 00000000..120f8958 --- /dev/null +++ b/src/views/mdp/sys/userTpaApply/UserTpaApplyAdd.vue @@ -0,0 +1,144 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/sys/userTpaApply/UserTpaApplyEdit.vue b/src/views/mdp/sys/userTpaApply/UserTpaApplyEdit.vue new file mode 100644 index 00000000..59f27cb1 --- /dev/null +++ b/src/views/mdp/sys/userTpaApply/UserTpaApplyEdit.vue @@ -0,0 +1,142 @@ + + + + + \ No newline at end of file diff --git a/src/views/mdp/sys/userTpaApply/UserTpaApplyMng.vue b/src/views/mdp/sys/userTpaApply/UserTpaApplyMng.vue new file mode 100644 index 00000000..4b410ff7 --- /dev/null +++ b/src/views/mdp/sys/userTpaApply/UserTpaApplyMng.vue @@ -0,0 +1,377 @@ + + + + + diff --git a/src/views/myWork/message/archive.vue b/src/views/myWork/message/archive.vue new file mode 100644 index 00000000..21effe0e --- /dev/null +++ b/src/views/myWork/message/archive.vue @@ -0,0 +1,97 @@ + + + + + \ No newline at end of file diff --git a/src/views/myWork/message/groupIm.vue b/src/views/myWork/message/groupIm.vue new file mode 100644 index 00000000..2d162596 --- /dev/null +++ b/src/views/myWork/message/groupIm.vue @@ -0,0 +1,98 @@ + + + + + \ No newline at end of file diff --git a/src/views/myWork/message/prichatIm.vue b/src/views/myWork/message/prichatIm.vue new file mode 100644 index 00000000..f0a4e328 --- /dev/null +++ b/src/views/myWork/message/prichatIm.vue @@ -0,0 +1,110 @@ + + + + + \ No newline at end of file diff --git a/src/views/order/addUsersIndex.vue b/src/views/order/addUsersIndex.vue new file mode 100644 index 00000000..657a1f1c --- /dev/null +++ b/src/views/order/addUsersIndex.vue @@ -0,0 +1,325 @@ + + + + + \ No newline at end of file diff --git a/src/views/order/renewIndex.vue b/src/views/order/renewIndex.vue new file mode 100644 index 00000000..f4a8e001 --- /dev/null +++ b/src/views/order/renewIndex.vue @@ -0,0 +1,134 @@ + + + + + \ No newline at end of file diff --git a/src/views/qiniu/upload.vue b/src/views/qiniu/upload.vue new file mode 100644 index 00000000..5f05789b --- /dev/null +++ b/src/views/qiniu/upload.vue @@ -0,0 +1,40 @@ + + + +