mirror of
https://gitee.com/hzchunfen/erp.git
synced 2025-12-01 06:30:49 +00:00
Merge branch 'yyw' of gitee.com:hzchunfen/erp into fix-release-1.0.0/yjc-migrate
This commit is contained in:
commit
a8290bd5d0
1
public/dist/css/120.96a1d2eb.css
vendored
1
public/dist/css/120.96a1d2eb.css
vendored
@ -1 +0,0 @@
|
|||||||
.skuBox[data-v-4de310da]{border:1px solid #e5e5e5;border-radius:5px;padding:15px 0;margin-bottom:15px;background-color:#f3f3f3}.skuBox .tit[data-v-4de310da]{padding-left:40px;font-weight:600;font-size:15px;margin-bottom:15px}.skuBox[data-v-3dbf163e]{border:1px solid #e5e5e5;border-radius:5px;padding:15px 0;margin-bottom:15px;background-color:#f3f3f3}.skuBox .tit[data-v-3dbf163e]{padding-left:40px;font-weight:600;font-size:15px;margin-bottom:15px}.table[data-v-6afce68e]{margin-top:20px;position:relative}.btn[data-v-6afce68e]{float:right}.flex[data-v-6afce68e]{display:flex;align-items:center}.goodBox .Img[data-v-6afce68e]{width:50px;height:50px;margin-right:12px;border-radius:4px}.goodBox .tit[data-v-6afce68e]{color:#000;font-size:13px}.confirmbtn[data-v-6afce68e]{width:114px;height:44px;border-radius:3px;margin-top:21px;margin-bottom:8px}.import-right[data-v-6afce68e]{margin-top:30px}.import-right a[data-v-6afce68e]{color:#409eff}[data-v-6afce68e] .btn11{padding:0;width:14px;height:14px}[data-v-6afce68e] .btn11 img{width:100%;height:100%}.page[data-v-6afce68e]{margin-top:20px}.searchBox[data-v-6afce68e]{display:flex;align-items:center;flex-wrap:wrap;white-space:nowrap}.searchBox .row[data-v-6afce68e]{font-size:14px;margin-bottom:20px;margin-right:15px;display:flex;align-items:center}.titBox[data-v-6afce68e]{display:flex;align-items:center}.red[data-v-6afce68e]{color:red}
|
|
||||||
1
public/dist/css/171.ee5b8df9.css
vendored
1
public/dist/css/171.ee5b8df9.css
vendored
@ -1 +0,0 @@
|
|||||||
#nprogress{pointer-events:none}#nprogress .bar{background:#29d;position:fixed;z-index:1031;top:0;left:0;width:100%;height:2px}#nprogress .peg{display:block;position:absolute;right:0;width:100px;height:100%;box-shadow:0 0 10px #29d,0 0 5px #29d;opacity:1;transform:rotate(3deg) translateY(-4px)}#nprogress .spinner{display:block;position:fixed;z-index:1031;top:15px;right:15px}#nprogress .spinner-icon{width:18px;height:18px;box-sizing:border-box;border:2px solid transparent;border-top-color:#29d;border-left-color:#29d;border-radius:50%;animation:nprogress-spinner .4s linear infinite}.nprogress-custom-parent{overflow:hidden;position:relative}.nprogress-custom-parent #nprogress .bar,.nprogress-custom-parent #nprogress .spinner{position:absolute}@keyframes nprogress-spinner{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.aside-show[data-v-323fd9eb]{transition:all .3s;opacity:0;width:0!important}.aside-hide[data-v-323fd9eb]{transition:all .3s;opacity:1;width:200px!important}.el-container[data-v-323fd9eb]{height:100vh}.el-aside[data-v-323fd9eb]{background-color:#d3dce6;color:#333;overflow-x:hidden}.el-aside[data-v-323fd9eb]::-webkit-scrollbar{width:8px}.el-aside[data-v-323fd9eb]::-webkit-scrollbar-thumb{background-color:hsla(220,4%,58%,.3);border-radius:20px}.el-main[data-v-323fd9eb]{background-color:#f0f2f5;color:#333;padding:0 0!important}.el-main[data-v-323fd9eb]::-webkit-scrollbar{width:10px}.el-main[data-v-323fd9eb]::-webkit-scrollbar-thumb{background-color:hsla(220,4%,58%,.3)}.box-card[data-v-323fd9eb]{min-height:calc(100vh - 120px);margin:10px}.conent[data-v-323fd9eb]{width:100%;min-height:calc(100vh - 200px);position:relative}.add[data-v-323fd9eb]{cursor:pointer;font-size:20px;color:#606266}.head[data-v-323fd9eb]{padding:10px;background-color:#fff;border-bottom:1px solid #f6f6f6;box-shadow:0 1px 4px rgba(0,21,41,.08)}.head ul[data-v-323fd9eb]{display:flex;justify-content:space-between}.head ul li[data-v-323fd9eb]{display:flex;align-items:center}.head ul li .right[data-v-323fd9eb]{margin-left:20px}.head ul li .token[data-v-323fd9eb]{cursor:pointer}.head ul li .msg[data-v-323fd9eb]{margin-right:15px;font-size:20px;cursor:pointer}.head ul li .msg[data-v-323fd9eb]:hover{color:#409eff}.el-aside[data-v-323fd9eb]{background:#282c34;box-shadow:2px 0 6px rgba(0,21,41,.35)}[data-v-323fd9eb] .el-menu{border:none}.el-menu-item[data-v-323fd9eb]:hover{outline:0!important;background:#5470c6!important}.el-menu-item.is-active[data-v-323fd9eb]{color:#fff!important;background:#5470c6!important}.el-menu-item-group__title[data-v-323fd9eb]{padding:0 0!important}.msgbox[data-v-323fd9eb]{padding:20px}.msgbox .numtag[data-v-323fd9eb]{padding:1px 4px;font-size:12px;background:red;color:#fff;margin-left:10px;border-radius:50%}.msgbox .listbox[data-v-323fd9eb]{height:550px;overflow:auto}.msgbox .listbox .item[data-v-323fd9eb]{color:#555;font-size:14px;padding:20px 30px;box-sizing:border-box;border-bottom:1px solid #d7d7d7}.msgbox .listbox .item .title[data-v-323fd9eb]{margin-bottom:10px;display:flex;align-items:center;justify-content:space-between;position:relative}.msgbox .listbox .item .title.notread[data-v-323fd9eb]:after{position:absolute;left:-14px;width:7px;height:7px;border-radius:50%;top:8px;content:"";background:red}.msgbox .listbox .item .title .tit[data-v-323fd9eb]{font-size:16px;width:calc(100% - 150px)}.msgbox .listbox .item .title span[data-v-323fd9eb]{font-size:12px;color:#777}.msgbox .listbox .item .title span.not[data-v-323fd9eb]{color:#409eff;cursor:pointer}.msgbox .listbox .item .info[data-v-323fd9eb]{margin-bottom:10px;display:flex;justify-content:space-between}.msgbox .listbox .item .info .tit[data-v-323fd9eb]{font-size:14px;width:calc(100% - 200px)}.msgbox .listbox .item .info .time[data-v-323fd9eb]{font-size:14px}.bottom[data-v-323fd9eb]{display:flex;align-items:center;justify-content:center;padding:20px 0;border-top:1px solid #d7d7d7}[data-v-323fd9eb] .vanmsgbox .el-tabs__content{display:none}[data-v-323fd9eb] .vanmsgbox .el-tabs--border-card{box-shadow:none}[data-v-323fd9eb] .vanmsgbox .el-dialog__body{padding:0!important}
|
|
||||||
1
public/dist/css/291.ca41326d.css
vendored
Normal file
1
public/dist/css/291.ca41326d.css
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
.skuBox[data-v-4de310da]{border:1px solid #e5e5e5;border-radius:5px;padding:15px 0;margin-bottom:15px;background-color:#f3f3f3}.skuBox .tit[data-v-4de310da]{padding-left:40px;font-weight:600;font-size:15px;margin-bottom:15px}.skuBox[data-v-3dbf163e]{border:1px solid #e5e5e5;border-radius:5px;padding:15px 0;margin-bottom:15px;background-color:#f3f3f3}.skuBox .tit[data-v-3dbf163e]{padding-left:40px;font-weight:600;font-size:15px;margin-bottom:15px}.table[data-v-22b837c9]{margin-top:20px;position:relative}.btn[data-v-22b837c9]{float:right}.flex[data-v-22b837c9]{display:flex;align-items:center}.goodBox .Img[data-v-22b837c9]{width:50px;height:50px;margin-right:12px;border-radius:4px}.goodBox .tit[data-v-22b837c9]{color:#000;font-size:13px}.confirmbtn[data-v-22b837c9]{width:114px;height:44px;border-radius:3px;margin-top:21px;margin-bottom:8px}.import-right[data-v-22b837c9]{margin-top:30px}.import-right a[data-v-22b837c9]{color:#409eff}[data-v-22b837c9] .btn11{padding:0;width:14px;height:14px}[data-v-22b837c9] .btn11 img{width:100%;height:100%}.page[data-v-22b837c9]{margin-top:20px}.searchBox[data-v-22b837c9]{display:flex;align-items:center;flex-wrap:wrap;white-space:nowrap}.searchBox .row[data-v-22b837c9]{font-size:14px;margin-bottom:20px;margin-right:15px;display:flex;align-items:center}.titBox[data-v-22b837c9]{display:flex;align-items:center}.red[data-v-22b837c9]{color:red}
|
||||||
@ -1 +1 @@
|
|||||||
#nprogress{pointer-events:none}#nprogress .bar{background:#29d;position:fixed;z-index:1031;top:0;left:0;width:100%;height:2px}#nprogress .peg{display:block;position:absolute;right:0;width:100px;height:100%;box-shadow:0 0 10px #29d,0 0 5px #29d;opacity:1;transform:rotate(3deg) translateY(-4px)}#nprogress .spinner{display:block;position:fixed;z-index:1031;top:15px;right:15px}#nprogress .spinner-icon{width:18px;height:18px;box-sizing:border-box;border:2px solid transparent;border-top-color:#29d;border-left-color:#29d;border-radius:50%;animation:nprogress-spinner .4s linear infinite}.nprogress-custom-parent{overflow:hidden;position:relative}.nprogress-custom-parent #nprogress .bar,.nprogress-custom-parent #nprogress .spinner{position:absolute}@keyframes nprogress-spinner{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.opaBox[data-v-66736cee]{margin-bottom:15px}
|
#nprogress{pointer-events:none}#nprogress .bar{background:#29d;position:fixed;z-index:1031;top:0;left:0;width:100%;height:2px}#nprogress .peg{display:block;position:absolute;right:0;width:100px;height:100%;box-shadow:0 0 10px #29d,0 0 5px #29d;opacity:1;transform:rotate(3deg) translateY(-4px)}#nprogress .spinner{display:block;position:fixed;z-index:1031;top:15px;right:15px}#nprogress .spinner-icon{width:18px;height:18px;box-sizing:border-box;border:2px solid transparent;border-top-color:#29d;border-left-color:#29d;border-radius:50%;animation:nprogress-spinner .4s linear infinite}.nprogress-custom-parent{overflow:hidden;position:relative}.nprogress-custom-parent #nprogress .bar,.nprogress-custom-parent #nprogress .spinner{position:absolute}@keyframes nprogress-spinner{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.opaBox[data-v-7c920912]{margin-bottom:15px}
|
||||||
@ -1 +1 @@
|
|||||||
#nprogress{pointer-events:none}#nprogress .bar{background:#29d;position:fixed;z-index:1031;top:0;left:0;width:100%;height:2px}#nprogress .peg{display:block;position:absolute;right:0;width:100px;height:100%;box-shadow:0 0 10px #29d,0 0 5px #29d;opacity:1;transform:rotate(3deg) translateY(-4px)}#nprogress .spinner{display:block;position:fixed;z-index:1031;top:15px;right:15px}#nprogress .spinner-icon{width:18px;height:18px;box-sizing:border-box;border:2px solid transparent;border-top-color:#29d;border-left-color:#29d;border-radius:50%;animation:nprogress-spinner .4s linear infinite}.nprogress-custom-parent{overflow:hidden;position:relative}.nprogress-custom-parent #nprogress .bar,.nprogress-custom-parent #nprogress .spinner{position:absolute}@keyframes nprogress-spinner{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.searchBox[data-v-e167107a]{display:flex;align-items:center;flex-wrap:wrap;white-space:nowrap;.row[data-v-e167107a]{font-size:14px;margin-bottom:20px;margin-right:15px;display:flex;align-items:center}}.opaBox[data-v-e167107a]{margin-bottom:15px}.btn[data-v-e167107a]{float:right}.commodityimg[data-v-e167107a]{width:59px;height:59px;background:hsla(0,0%,89%,.39);opacity:1;display:block;margin-right:12px}.Img[data-v-e167107a]{width:100%;height:100%}[data-v-e167107a] .flex .cell{display:flex;align-items:center}[data-v-e167107a] .btn11{padding:0;width:14px;height:14px}[data-v-e167107a] .btn11 img{width:100%;height:100%}.page[data-v-e167107a]{margin-top:20px}
|
#nprogress{pointer-events:none}#nprogress .bar{background:#29d;position:fixed;z-index:1031;top:0;left:0;width:100%;height:2px}#nprogress .peg{display:block;position:absolute;right:0;width:100px;height:100%;box-shadow:0 0 10px #29d,0 0 5px #29d;opacity:1;transform:rotate(3deg) translateY(-4px)}#nprogress .spinner{display:block;position:fixed;z-index:1031;top:15px;right:15px}#nprogress .spinner-icon{width:18px;height:18px;box-sizing:border-box;border:2px solid transparent;border-top-color:#29d;border-left-color:#29d;border-radius:50%;animation:nprogress-spinner .4s linear infinite}.nprogress-custom-parent{overflow:hidden;position:relative}.nprogress-custom-parent #nprogress .bar,.nprogress-custom-parent #nprogress .spinner{position:absolute}@keyframes nprogress-spinner{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.searchBox[data-v-35af9444]{display:flex;align-items:center;flex-wrap:wrap;white-space:nowrap;.row[data-v-35af9444]{font-size:14px;margin-bottom:20px;margin-right:15px;display:flex;align-items:center}}.opaBox[data-v-35af9444]{margin-bottom:15px}.btn[data-v-35af9444]{float:right}.commodityimg[data-v-35af9444]{width:59px;height:59px;background:hsla(0,0%,89%,.39);opacity:1;display:block;margin-right:12px}.Img[data-v-35af9444]{width:100%;height:100%}[data-v-35af9444] .flex .cell{display:flex;align-items:center}[data-v-35af9444] .btn11{padding:0;width:14px;height:14px}[data-v-35af9444] .btn11 img{width:100%;height:100%}.page[data-v-35af9444]{margin-top:20px}
|
||||||
1
public/dist/css/763.8f9393d3.css
vendored
Normal file
1
public/dist/css/763.8f9393d3.css
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
#nprogress{pointer-events:none}#nprogress .bar{background:#29d;position:fixed;z-index:1031;top:0;left:0;width:100%;height:2px}#nprogress .peg{display:block;position:absolute;right:0;width:100px;height:100%;box-shadow:0 0 10px #29d,0 0 5px #29d;opacity:1;transform:rotate(3deg) translateY(-4px)}#nprogress .spinner{display:block;position:fixed;z-index:1031;top:15px;right:15px}#nprogress .spinner-icon{width:18px;height:18px;box-sizing:border-box;border:2px solid transparent;border-top-color:#29d;border-left-color:#29d;border-radius:50%;animation:nprogress-spinner .4s linear infinite}.nprogress-custom-parent{overflow:hidden;position:relative}.nprogress-custom-parent #nprogress .bar,.nprogress-custom-parent #nprogress .spinner{position:absolute}@keyframes nprogress-spinner{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.aside-show[data-v-0f97ca5c]{transition:all .3s;opacity:0;width:0!important}.aside-hide[data-v-0f97ca5c]{transition:all .3s;opacity:1;width:200px!important}.el-container[data-v-0f97ca5c]{height:100vh}.el-aside[data-v-0f97ca5c]{background-color:#d3dce6;color:#333;overflow-x:hidden}.el-aside[data-v-0f97ca5c]::-webkit-scrollbar{width:8px}.el-aside[data-v-0f97ca5c]::-webkit-scrollbar-thumb{background-color:hsla(220,4%,58%,.3);border-radius:20px}.el-main[data-v-0f97ca5c]{background-color:#f0f2f5;color:#333;padding:0 0!important}.el-main[data-v-0f97ca5c]::-webkit-scrollbar{width:10px}.el-main[data-v-0f97ca5c]::-webkit-scrollbar-thumb{background-color:hsla(220,4%,58%,.3)}.box-card[data-v-0f97ca5c]{min-height:calc(100vh - 120px);margin:10px}.conent[data-v-0f97ca5c]{width:100%;min-height:calc(100vh - 200px);position:relative}.add[data-v-0f97ca5c]{cursor:pointer;font-size:16px;color:#606266}.head[data-v-0f97ca5c]{padding:10px;background-color:#fff;border-bottom:1px solid #f6f6f6;box-shadow:0 1px 4px rgba(0,21,41,.08)}.head ul[data-v-0f97ca5c]{display:flex;justify-content:space-between}.head ul li[data-v-0f97ca5c]{display:flex;align-items:center}.head ul li .right[data-v-0f97ca5c]{margin-left:20px}.head ul li .token[data-v-0f97ca5c]{cursor:pointer}.head ul li .msg[data-v-0f97ca5c]{margin-right:15px;font-size:20px;cursor:pointer}.head ul li .msg[data-v-0f97ca5c]:hover{color:#409eff}.el-aside[data-v-0f97ca5c]{background:#282c34;box-shadow:2px 0 6px rgba(0,21,41,.35)}[data-v-0f97ca5c] .el-menu{border:none}.el-menu-item[data-v-0f97ca5c]:hover{outline:0!important;background:#5470c6!important}.el-menu-item.is-active[data-v-0f97ca5c]{color:#fff!important;background:#5470c6!important}.el-menu-item-group__title[data-v-0f97ca5c]{padding:0 0!important}.msgbox[data-v-0f97ca5c]{padding:20px}.msgbox .numtag[data-v-0f97ca5c]{padding:1px 4px;font-size:12px;background:red;color:#fff;margin-left:10px;border-radius:50%}.msgbox .listbox[data-v-0f97ca5c]{height:550px;overflow:auto}.msgbox .listbox .item[data-v-0f97ca5c]{color:#555;font-size:14px;padding:20px 30px;box-sizing:border-box;border-bottom:1px solid #d7d7d7}.msgbox .listbox .item .title[data-v-0f97ca5c]{margin-bottom:10px;display:flex;align-items:center;justify-content:space-between;position:relative}.msgbox .listbox .item .title.notread[data-v-0f97ca5c]:after{position:absolute;left:-14px;width:7px;height:7px;border-radius:50%;top:8px;content:"";background:red}.msgbox .listbox .item .title .tit[data-v-0f97ca5c]{font-size:16px;width:calc(100% - 150px)}.msgbox .listbox .item .title span[data-v-0f97ca5c]{font-size:12px;color:#777}.msgbox .listbox .item .title span.not[data-v-0f97ca5c]{color:#409eff;cursor:pointer}.msgbox .listbox .item .info[data-v-0f97ca5c]{margin-bottom:10px;display:flex;justify-content:space-between}.msgbox .listbox .item .info .tit[data-v-0f97ca5c]{font-size:14px;width:calc(100% - 200px)}.msgbox .listbox .item .info .time[data-v-0f97ca5c]{font-size:14px}.bottom[data-v-0f97ca5c]{display:flex;align-items:center;justify-content:center;padding:20px 0;border-top:1px solid #d7d7d7}[data-v-0f97ca5c] .vanmsgbox .el-tabs__content{display:none}[data-v-0f97ca5c] .vanmsgbox .el-tabs--border-card{box-shadow:none}[data-v-0f97ca5c] .vanmsgbox .el-dialog__body{padding:0!important}
|
||||||
2
public/dist/index.html
vendored
2
public/dist/index.html
vendored
@ -1 +1 @@
|
|||||||
<!doctype html><html lang=""><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="favicon.ico"><title>erp</title><script defer="defer" src="js/chunk-vendors.04652b46.js"></script><script defer="defer" src="js/app.c5751c2a.js"></script><link href="css/chunk-vendors.77489a8d.css" rel="stylesheet"><link href="css/app.7e37f273.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but erp doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div></body></html>
|
<!doctype html><html lang=""><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="favicon.ico"><title>erp</title><script defer="defer" src="js/chunk-vendors.04652b46.js"></script><script defer="defer" src="js/app.759b64a1.js"></script><link href="css/chunk-vendors.77489a8d.css" rel="stylesheet"><link href="css/app.7e37f273.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but erp doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div></body></html>
|
||||||
2
public/dist/js/120.f9ba9a43.js
vendored
2
public/dist/js/120.f9ba9a43.js
vendored
File diff suppressed because one or more lines are too long
1
public/dist/js/120.f9ba9a43.js.map
vendored
1
public/dist/js/120.f9ba9a43.js.map
vendored
File diff suppressed because one or more lines are too long
2
public/dist/js/291.0b1a135b.js
vendored
Normal file
2
public/dist/js/291.0b1a135b.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
public/dist/js/291.0b1a135b.js.map
vendored
Normal file
1
public/dist/js/291.0b1a135b.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
2
public/dist/js/541.ab49f513.js
vendored
2
public/dist/js/541.ab49f513.js
vendored
File diff suppressed because one or more lines are too long
1
public/dist/js/541.ab49f513.js.map
vendored
1
public/dist/js/541.ab49f513.js.map
vendored
File diff suppressed because one or more lines are too long
2
public/dist/js/551.d3396e3a.js
vendored
Normal file
2
public/dist/js/551.d3396e3a.js
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
"use strict";(self["webpackChunkerp"]=self["webpackChunkerp"]||[]).push([[551],{796:function(e,t,i){i.r(t),i.d(t,{default:function(){return c}});var s=function(){var e=this,t=e._self._c;return t("div",{staticClass:"pageBox"},[t("el-card",[t("div",{staticClass:"opaBox"},[t("el-button",{attrs:{type:"primary",icon:"el-icon-plus"},on:{click:function(t){e.dialogVisible2=!0}}},[e._v("新增")])],1),t("el-table",{directives:[{name:"loading",rawName:"v-loading",value:e.loading,expression:"loading"}],staticStyle:{width:"100%"},attrs:{data:e.tableList,border:""}},[t("el-table-column",{attrs:{prop:"id",label:"ID",width:"100",align:"center"}}),t("el-table-column",{attrs:{prop:"name",label:"角色名称",width:"200",align:"center"}}),t("el-table-column",{attrs:{label:"权限内容"},scopedSlots:e._u([{key:"default",fn:function(i){return e._l(i.row.permissions,(function(i){return t("span",{key:i.id},[e._v(e._s(i.name)),t("span",{staticStyle:{color:"#333"}},[e._v(" | ")])])}))}}])}),t("el-table-column",{attrs:{label:"操作",width:"200",align:"center"},scopedSlots:e._u([{key:"default",fn:function(i){return[t("el-button",{attrs:{type:"primary",icon:"el-icon-edit"},on:{click:function(t){return e.onEdit(i.row)}}},[e._v("编辑权限")])]}}])})],1)],1),t("el-dialog",{attrs:{title:"编辑权限",visible:e.dialogVisible,width:"30%","close-on-click-modal":!1},on:{"update:visible":function(t){e.dialogVisible=t}}},[e.isShowtree?t("el-tree",{ref:"tree",attrs:{data:e.Role_Permission,"show-checkbox":"","default-expand-all":!1,"node-key":"id","highlight-current":"",props:e.defaultProps,"default-checked-keys":e.chekedKeys},model:{value:e.permissionIds,callback:function(t){e.permissionIds=t},expression:"permissionIds"}}):e._e(),t("span",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[t("el-button",{on:{click:function(t){return e.cancel()}}},[e._v("取 消")]),t("el-button",{attrs:{type:"primary"},on:{click:function(t){return e.getCheckedKeys()}}},[e._v("确 定")])],1)],1),t("el-dialog",{attrs:{title:"新增角色",visible:e.dialogVisible2,width:"30%","close-on-click-modal":!1},on:{"update:visible":function(t){e.dialogVisible2=t}}},[t("el-form",{attrs:{"label-width":"80px"}},[t("el-form-item",{attrs:{label:"角色名称"}},[t("el-input",{model:{value:e.newrole,callback:function(t){e.newrole=t},expression:"newrole"}})],1),t("div",{staticClass:"from-btn"},[t("el-button",{on:{click:function(t){e.dialogVisible2=!1}}},[e._v("取消")]),t("el-button",{attrs:{type:"primary"},on:{click:e.onSubmit}},[e._v("确认")])],1)],1)],1)],1)},l=[],n=i(730),o={data(){return{id:"",loading:!0,tableList:[],rolePermissions:[],newrole:"",dialogVisible:!1,dialogVisible2:!1,permissionIds:[],allpermissionIds:{},Role_Permission:[],defaultProps:{children:"children",label:"name"},isShowtree:!1,chekedKeys:[]}},mounted(){this.getroleList(),this.getJurisdiction()},methods:{getroleList(){(0,n.Uy)().then((e=>{this.tableList=e.data.data})),this.loading=!1},getJurisdiction(){(0,n.CI)().then((e=>{this.Role_Permission=e.data.data}))},onSubmit(){let e={name:this.newrole};(0,n.cs)(e).then((e=>{this.dialogVisible2=!1,this.getroleList(),201==e.status&&this.$message({message:"角色添加成功!",type:"success"})}))},onEdit(e){this.id=e.id;let t=e.permissions.map((e=>e.id));this.chekedKeys=t,this.dialogVisible=!0,this.isShowtree=!0},cancel(){this.dialogVisible=!1,this.isShowtree=!1},getCheckedKeys(){let e=this.id;this.permissionIds=this.$refs.tree.getCheckedKeys(),this.allpermissionIds={permissionIds:this.permissionIds},(0,n.VU)(e,this.allpermissionIds).then((e=>{200===e.status&&(this.dialogVisible=!1,this.getroleList(),this.$message({message:"权限修改成功!",type:"success"}))}))}}},r=o,a=i(1001),d=(0,a.Z)(r,s,l,!1,null,"7c920912",null),c=d.exports},730:function(e,t,i){i.d(t,{CI:function(){return o},Uy:function(){return l},VU:function(){return r},Xt:function(){return a},cs:function(){return n}});var s=i(8430);function l(){return(0,s.Z)({url:"/api/roles",method:"get"})}function n(e){return(0,s.Z)({url:"/api/roles",method:"post",data:e})}function o(){return(0,s.Z)({url:"/api/permissions",method:"get"})}function r(e,t){return(0,s.Z)({url:`/api/roles/${e}/permissions`,method:"post",data:t})}function a(){return(0,s.Z)({url:"/api/user/user_roles",method:"get"})}}}]);
|
||||||
|
//# sourceMappingURL=551.d3396e3a.js.map
|
||||||
1
public/dist/js/551.d3396e3a.js.map
vendored
Normal file
1
public/dist/js/551.d3396e3a.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
2
public/dist/js/730.8ed282c1.js
vendored
Normal file
2
public/dist/js/730.8ed282c1.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
public/dist/js/730.8ed282c1.js.map
vendored
Normal file
1
public/dist/js/730.8ed282c1.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
2
public/dist/js/955.f7c56b14.js
vendored
2
public/dist/js/955.f7c56b14.js
vendored
@ -1,2 +0,0 @@
|
|||||||
"use strict";(self["webpackChunkerp"]=self["webpackChunkerp"]||[]).push([[955],{5653:function(e,t,i){i.r(t),i.d(t,{default:function(){return c}});var s=function(){var e=this,t=e._self._c;return t("div",{staticClass:"pageBox"},[t("el-card",[t("div",{staticClass:"opaBox"},[t("el-button",{attrs:{type:"primary",icon:"el-icon-plus"},on:{click:function(t){e.dialogVisible2=!0}}},[e._v("新增")])],1),t("el-table",{directives:[{name:"loading",rawName:"v-loading",value:e.loading,expression:"loading"}],staticStyle:{width:"100%"},attrs:{data:e.tableList,border:""}},[t("el-table-column",{attrs:{prop:"id",label:"ID"}}),t("el-table-column",{attrs:{prop:"name",label:"角色名称"}}),t("el-table-column",{attrs:{label:"权限内容"},scopedSlots:e._u([{key:"default",fn:function(i){return e._l(i.row.permissions,(function(i){return t("span",{key:i.id},[e._v(e._s(i.name)+" ")])}))}}])}),t("el-table-column",{attrs:{label:"操作"},scopedSlots:e._u([{key:"default",fn:function(i){return[t("el-button",{attrs:{type:"primary",icon:"el-icon-edit"},on:{click:function(t){return e.onEdit(i.row)}}},[e._v("编辑权限")])]}}])})],1)],1),t("el-dialog",{attrs:{title:"编辑权限",visible:e.dialogVisible,width:"30%","close-on-click-modal":!1},on:{"update:visible":function(t){e.dialogVisible=t}}},[e.isShowtree?t("el-tree",{ref:"tree",attrs:{data:e.Role_Permission,"show-checkbox":"","default-expand-all":!1,"node-key":"id","highlight-current":"",props:e.defaultProps,"default-checked-keys":e.chekedKeys},model:{value:e.permissionIds,callback:function(t){e.permissionIds=t},expression:"permissionIds"}}):e._e(),t("span",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[t("el-button",{on:{click:function(t){return e.cancel()}}},[e._v("取 消")]),t("el-button",{attrs:{type:"primary"},on:{click:function(t){return e.getCheckedKeys()}}},[e._v("确 定")])],1)],1),t("el-dialog",{attrs:{title:"新增角色",visible:e.dialogVisible2,width:"30%","close-on-click-modal":!1},on:{"update:visible":function(t){e.dialogVisible2=t}}},[t("div",[t("el-form",{attrs:{"label-width":"80px"}},[t("el-form-item",{attrs:{label:"角色名称"}},[t("el-input",{model:{value:e.newrole,callback:function(t){e.newrole=t},expression:"newrole"}})],1),t("div",{staticClass:"from-btn"},[t("el-button",{on:{click:function(t){e.dialogVisible2=!1}}},[e._v("取消")]),t("el-button",{attrs:{type:"primary"},on:{click:e.onSubmit}},[e._v("确认")])],1)],1)],1)])],1)},l=[],o=i(730),n={data(){return{id:"",loading:!0,tableList:[],rolePermissions:[],newrole:"",dialogVisible:!1,dialogVisible2:!1,permissionIds:[],allpermissionIds:{},Role_Permission:[],defaultProps:{children:"children",label:"name"},isShowtree:!1,chekedKeys:[]}},mounted(){this.getroleList(),this.getJurisdiction()},methods:{getroleList(){(0,o.Uy)().then((e=>{this.tableList=e.data.data})),this.loading=!1},getJurisdiction(){(0,o.CI)().then((e=>{this.Role_Permission=e.data.data}))},onSubmit(){let e={name:this.newrole};(0,o.cs)(e).then((e=>{this.dialogVisible2=!1,this.getroleList(),201==e.status&&this.$message({message:"角色添加成功!",type:"success"})}))},onEdit(e){this.id=e.id;let t=e.permissions.map((e=>e.id));this.chekedKeys=t,this.dialogVisible=!0,this.isShowtree=!0},cancel(){this.dialogVisible=!1,this.isShowtree=!1},getCheckedKeys(){let e=this.id;this.permissionIds=this.$refs.tree.getCheckedKeys(),this.allpermissionIds={permissionIds:this.permissionIds},(0,o.VU)(e,this.allpermissionIds).then((e=>{200===e.status&&(this.dialogVisible=!1,this.getroleList(),this.$message({message:"权限修改成功!",type:"success"}))}))}}},r=n,a=i(1001),d=(0,a.Z)(r,s,l,!1,null,"66736cee",null),c=d.exports},730:function(e,t,i){i.d(t,{CI:function(){return n},Uy:function(){return l},VU:function(){return r},Xt:function(){return a},cs:function(){return o}});var s=i(8430);function l(){return(0,s.Z)({url:"/api/roles",method:"get"})}function o(e){return(0,s.Z)({url:"/api/roles",method:"post",data:e})}function n(){return(0,s.Z)({url:"/api/permissions",method:"get"})}function r(e,t){return(0,s.Z)({url:`/api/roles/${e}/permissions`,method:"post",data:t})}function a(){return(0,s.Z)({url:"/api/user/user_roles",method:"get"})}}}]);
|
|
||||||
//# sourceMappingURL=955.f7c56b14.js.map
|
|
||||||
1
public/dist/js/955.f7c56b14.js.map
vendored
1
public/dist/js/955.f7c56b14.js.map
vendored
File diff suppressed because one or more lines are too long
2
public/dist/js/app.759b64a1.js
vendored
Normal file
2
public/dist/js/app.759b64a1.js
vendored
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
2
public/dist/js/app.c5751c2a.js
vendored
2
public/dist/js/app.c5751c2a.js
vendored
File diff suppressed because one or more lines are too long
@ -10,6 +10,20 @@
|
|||||||
<span>商品编码:</span>
|
<span>商品编码:</span>
|
||||||
<el-input v-model="searchForm.external_sku_id" clearable></el-input>
|
<el-input v-model="searchForm.external_sku_id" clearable></el-input>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<span>创建时间:</span>
|
||||||
|
<el-date-picker
|
||||||
|
v-model="filterTime"
|
||||||
|
type="datetimerange"
|
||||||
|
range-separator="至"
|
||||||
|
start-placeholder="开始时间"
|
||||||
|
end-placeholder="结束时间"
|
||||||
|
format="yyyy-MM-dd"
|
||||||
|
value-format="yyyy-MM-dd"
|
||||||
|
clearable
|
||||||
|
style="width: 250px;">
|
||||||
|
</el-date-picker>
|
||||||
|
</div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<el-button type="primary" @click="handleChoose(1)" icon="el-icon-search">筛选</el-button>
|
<el-button type="primary" @click="handleChoose(1)" icon="el-icon-search">筛选</el-button>
|
||||||
</div>
|
</div>
|
||||||
@ -21,9 +35,10 @@
|
|||||||
<el-upload ref="myUpload" action="/api/combination/goods" :multiple="false" name="combinationGoods"
|
<el-upload ref="myUpload" action="/api/combination/goods" :multiple="false" name="combinationGoods"
|
||||||
:show-file-list="false" :on-success="uploadSuccess" :before-upload="beforeUpload"
|
:show-file-list="false" :on-success="uploadSuccess" :before-upload="beforeUpload"
|
||||||
:on-error="uploadError" style="display:inline-block;margin: 0 15px 0 0;">
|
:on-error="uploadError" style="display:inline-block;margin: 0 15px 0 0;">
|
||||||
<el-button type="warning" icon="el-icon-upload2">组合商品导入</el-button>
|
<el-button type="primary" plain icon="el-icon-upload2">组合商品导入</el-button>
|
||||||
</el-upload>
|
</el-upload>
|
||||||
<el-button type="primary" plain @click="addGoodsCombination" icon="el-icon-plus" v-if="is_admin">新增组合商品</el-button>
|
<el-button type="primary" @click="addGoodsCombination" icon="el-icon-plus" v-if="is_admin">新增组合商品</el-button>
|
||||||
|
<el-button type="warning" @click="handleExport" icon="el-icon-download">数据导出</el-button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<el-table v-loading="loading" ref="multipleTable" :data="tableData" class="table" tooltip-effect="dark" border
|
<el-table v-loading="loading" ref="multipleTable" :data="tableData" class="table" tooltip-effect="dark" border
|
||||||
@ -36,7 +51,7 @@
|
|||||||
<div>
|
<div>
|
||||||
<p>{{ scope.row.title }}</p>
|
<p>{{ scope.row.title }}</p>
|
||||||
<p>{{ scope.row.external_sku_id }}</p>
|
<p>{{ scope.row.external_sku_id }}</p>
|
||||||
<p>{{ scope.row.updated_at }}</p>
|
<p>{{ scope.row.created_at }}</p>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
@ -149,7 +164,8 @@
|
|||||||
},
|
},
|
||||||
skus: [],
|
skus: [],
|
||||||
is_admin: false,
|
is_admin: false,
|
||||||
remoteLoading: false
|
remoteLoading: false,
|
||||||
|
filterTime: []
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
@ -180,7 +196,9 @@
|
|||||||
this.searchForm = {
|
this.searchForm = {
|
||||||
...this.searchForm,
|
...this.searchForm,
|
||||||
page: this.current_page,
|
page: this.current_page,
|
||||||
per_page: this.per_page
|
per_page: this.per_page,
|
||||||
|
create_time_start: this.filterTime ? this.filterTime[0] : '',
|
||||||
|
create_time_end: this.filterTime ? this.filterTime[1] : ''
|
||||||
}
|
}
|
||||||
this.getList(this.searchForm)
|
this.getList(this.searchForm)
|
||||||
},
|
},
|
||||||
@ -265,6 +283,21 @@
|
|||||||
type: "error"
|
type: "error"
|
||||||
});
|
});
|
||||||
this.loadingModule.close()
|
this.loadingModule.close()
|
||||||
|
},
|
||||||
|
handleExport() {
|
||||||
|
let params = {
|
||||||
|
exportType: 'goods_combination',
|
||||||
|
external_sku_id: this.searchForm.external_sku_id,
|
||||||
|
sku_title: this.searchForm.sku_title,
|
||||||
|
create_time_start: this.filterTime ? this.filterTime[0] : '',
|
||||||
|
create_time_end: this.filterTime ? this.filterTime[1] : ''
|
||||||
|
}
|
||||||
|
window.open("/goods_skus/export?" + this.objectToQueryString(params))
|
||||||
|
},
|
||||||
|
objectToQueryString(obj) {
|
||||||
|
return Object.keys(obj)
|
||||||
|
.map(key => encodeURIComponent(key) + '=' + (obj[key] ? encodeURIComponent(obj[key]) : ''))
|
||||||
|
.join('&');
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
|
|||||||
@ -38,6 +38,20 @@
|
|||||||
</el-option>
|
</el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<span>创建时间:</span>
|
||||||
|
<el-date-picker
|
||||||
|
v-model="filterTime"
|
||||||
|
type="datetimerange"
|
||||||
|
range-separator="至"
|
||||||
|
start-placeholder="开始时间"
|
||||||
|
end-placeholder="结束时间"
|
||||||
|
format="yyyy-MM-dd"
|
||||||
|
value-format="yyyy-MM-dd"
|
||||||
|
clearable
|
||||||
|
style="width: 250px;">
|
||||||
|
</el-date-picker>
|
||||||
|
</div>
|
||||||
<!-- <div class="row">
|
<!-- <div class="row">
|
||||||
<el-select v-model="form.keyword_type" style="width: 80px;margin-right: 5px;">
|
<el-select v-model="form.keyword_type" style="width: 80px;margin-right: 5px;">
|
||||||
<el-option v-for="item in options3" :key="item.value" :label="item.label" :value="item.value">
|
<el-option v-for="item in options3" :key="item.value" :label="item.label" :value="item.value">
|
||||||
@ -76,8 +90,9 @@
|
|||||||
</el-upload> -->
|
</el-upload> -->
|
||||||
<el-button type="primary" @click="petchEditStock" icon="el-icon-edit" :disabled="!chooseList.length">批量更新在售库存</el-button>
|
<el-button type="primary" @click="petchEditStock" icon="el-icon-edit" :disabled="!chooseList.length">批量更新在售库存</el-button>
|
||||||
<el-button type="primary" v-if="is_admin" @click="addNewgoods" icon="el-icon-plus">新增商品</el-button>
|
<el-button type="primary" v-if="is_admin" @click="addNewgoods" icon="el-icon-plus">新增商品</el-button>
|
||||||
<el-button type="primary" v-if="is_admin" plain @click="handleImport" icon="el-icon-upload2">在售库存导入</el-button>
|
<el-button type="primary" plain v-if="is_admin" @click="handleImport" icon="el-icon-upload2">在售库存导入</el-button>
|
||||||
<el-button type="warning" @click="handleExport" icon="el-icon-download">表格导出</el-button>
|
<el-button type="warning" @click="handleTypeExport" icon="el-icon-download">选择类型导出</el-button>
|
||||||
|
<el-button type="warning" @click="handleExport" icon="el-icon-download">数据导出</el-button>
|
||||||
<!-- <el-button type="primary" plain @click="onCount">库存盘点</el-button> -->
|
<!-- <el-button type="primary" plain @click="onCount">库存盘点</el-button> -->
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -94,7 +109,7 @@
|
|||||||
<div>
|
<div>
|
||||||
<div class="tit">{{ scope.row.name }}</div>
|
<div class="tit">{{ scope.row.name }}</div>
|
||||||
<p>{{ scope.row.external_sku_id }}</p>
|
<p>{{ scope.row.external_sku_id }}</p>
|
||||||
<p>{{ scope.row.updated_at }}</p>
|
<p>{{ scope.row.created_at }}</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@ -399,7 +414,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="import-right">
|
<div class="import-right">
|
||||||
<el-button size="medium" type="text">
|
<el-button size="medium" type="text">
|
||||||
<a :href="`http://erp.chutang66.com/goods/import/template`">下载模板</a>
|
<a :href="`/goods/import/template`">下载模板</a>
|
||||||
</el-button>
|
</el-button>
|
||||||
</div>
|
</div>
|
||||||
<span slot="footer" class="dialog-footer">
|
<span slot="footer" class="dialog-footer">
|
||||||
@ -447,7 +462,7 @@
|
|||||||
<script>
|
<script>
|
||||||
import axios from 'axios'
|
import axios from 'axios'
|
||||||
import { goods_types, Brand_goods_types } from '@/api/rankingData.js'
|
import { goods_types, Brand_goods_types } from '@/api/rankingData.js'
|
||||||
import { goods, update, singleUpdate, getStockNum, updateSaleStock } from '@/api/goods'
|
import { goods, update, singleUpdate, getStockNum, updateSaleStock, goodsSkuExport } from '@/api/goods'
|
||||||
import { orderRest } from "@/api/shop"
|
import { orderRest } from "@/api/shop"
|
||||||
import Treeselect from '@riophae/vue-treeselect'
|
import Treeselect from '@riophae/vue-treeselect'
|
||||||
import '@riophae/vue-treeselect/dist/vue-treeselect.css'
|
import '@riophae/vue-treeselect/dist/vue-treeselect.css'
|
||||||
@ -554,7 +569,8 @@
|
|||||||
is_admin: false,
|
is_admin: false,
|
||||||
showAdd: false,
|
showAdd: false,
|
||||||
showEdit: false,
|
showEdit: false,
|
||||||
curId: 0
|
curId: 0,
|
||||||
|
filterTime: []
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
@ -626,7 +642,8 @@
|
|||||||
// 返回对象
|
// 返回对象
|
||||||
return _newPar
|
return _newPar
|
||||||
}
|
}
|
||||||
newObj.type_id = newObj.type_id || ''
|
newObj.create_time_start = this.filterTime ? this.filterTime[0] : ''
|
||||||
|
newObj.create_time_end = this.filterTime ? this.filterTime[1] : ''
|
||||||
goods(newObj).then((res) => {
|
goods(newObj).then((res) => {
|
||||||
this.tableData = res.data.data
|
this.tableData = res.data.data
|
||||||
this.tableData = this.tableData.map((item) => {
|
this.tableData = this.tableData.map((item) => {
|
||||||
@ -663,7 +680,7 @@
|
|||||||
})
|
})
|
||||||
},
|
},
|
||||||
// 导出商品按钮
|
// 导出商品按钮
|
||||||
handleExport() {
|
handleTypeExport() {
|
||||||
this.Tableexport = true
|
this.Tableexport = true
|
||||||
},
|
},
|
||||||
// 订单重置计数
|
// 订单重置计数
|
||||||
@ -722,6 +739,26 @@
|
|||||||
this.stock = false
|
this.stock = false
|
||||||
},
|
},
|
||||||
|
|
||||||
|
handleExport() {
|
||||||
|
let params = {
|
||||||
|
exportType: 'goods_sku',
|
||||||
|
external_sku_id: this.form.external_sku_id,
|
||||||
|
goods_title: this.form.goods_title,
|
||||||
|
type_id: this.form.type_id || '',
|
||||||
|
status: this.form.status,
|
||||||
|
keyword_type: 'stock',
|
||||||
|
create_time_start: this.filterTime ? this.filterTime[0] : '',
|
||||||
|
create_time_end: this.filterTime ? this.filterTime[1] : ''
|
||||||
|
}
|
||||||
|
window.open("/goods_skus/export?" + this.objectToQueryString(params))
|
||||||
|
},
|
||||||
|
|
||||||
|
objectToQueryString(obj) {
|
||||||
|
return Object.keys(obj)
|
||||||
|
.map(key => encodeURIComponent(key) + '=' + (obj[key] ? encodeURIComponent(obj[key]) : ''))
|
||||||
|
.join('&');
|
||||||
|
},
|
||||||
|
|
||||||
// 点击上新or库存盘点后确认
|
// 点击上新or库存盘点后确认
|
||||||
onSubmit() {
|
onSubmit() {
|
||||||
//判断点击的是上新,再发送上新请求
|
//判断点击的是上新,再发送上新请求
|
||||||
|
|||||||
@ -308,7 +308,7 @@ export default {
|
|||||||
|
|
||||||
.add {
|
.add {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
font-size: 20px;
|
font-size: 16px;
|
||||||
color: #606266;
|
color: #606266;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1,157 +1,158 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="pageBox">
|
<div class="pageBox">
|
||||||
<el-card>
|
<el-card>
|
||||||
<div class="opaBox">
|
<div class="opaBox">
|
||||||
<el-button type="primary" icon="el-icon-plus" @click="dialogVisible2 = true">新增</el-button>
|
<el-button type="primary" icon="el-icon-plus" @click="dialogVisible2 = true">新增</el-button>
|
||||||
</div>
|
</div>
|
||||||
<el-table v-loading="loading" :data="tableList" style="width: 100%" border>
|
<el-table v-loading="loading" :data="tableList" style="width: 100%" border>
|
||||||
<el-table-column prop="id" label="ID"> </el-table-column>
|
<el-table-column prop="id" label="ID" width="100" align="center" />
|
||||||
<el-table-column prop="name" label="角色名称"> </el-table-column>
|
<el-table-column prop="name" label="角色名称" width="200" align="center" />
|
||||||
<el-table-column label="权限内容">
|
<el-table-column label="权限内容">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span v-for="item in scope.row.permissions" :key="item.id">{{ item.name }} </span>
|
<span v-for="item in scope.row.permissions" :key="item.id">{{ item.name }}<span style="color: #333;"> | </span></span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="操作">
|
<el-table-column label="操作" width="200" align="center">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-button type="primary" @click="onEdit(scope.row)" icon="el-icon-edit">编辑权限</el-button>
|
<el-button type="primary" @click="onEdit(scope.row)" icon="el-icon-edit">编辑权限</el-button>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
</el-card>
|
</el-card>
|
||||||
|
|
||||||
<!-- 点击编辑弹出权限框 -->
|
<!-- 点击编辑弹出权限框 -->
|
||||||
<el-dialog title="编辑权限" :visible.sync="dialogVisible" width="30%" :close-on-click-modal="false">
|
<el-dialog title="编辑权限" :visible.sync="dialogVisible" width="30%" :close-on-click-modal="false">
|
||||||
<el-tree v-if="isShowtree" :data="Role_Permission" show-checkbox :default-expand-all="false" node-key="id"
|
<el-tree
|
||||||
ref="tree" highlight-current :props="defaultProps" :default-checked-keys="chekedKeys"
|
v-if="isShowtree"
|
||||||
v-model="permissionIds">
|
:data="Role_Permission"
|
||||||
</el-tree>
|
show-checkbox
|
||||||
<span slot="footer" class="dialog-footer">
|
:default-expand-all="false"
|
||||||
<el-button @click="cancel()">取 消</el-button>
|
node-key="id"
|
||||||
<el-button type="primary" @click="getCheckedKeys()">确 定</el-button>
|
ref="tree"
|
||||||
</span>
|
highlight-current
|
||||||
</el-dialog>
|
:props="defaultProps"
|
||||||
|
:default-checked-keys="chekedKeys"
|
||||||
|
v-model="permissionIds">
|
||||||
|
</el-tree>
|
||||||
|
<span slot="footer" class="dialog-footer">
|
||||||
|
<el-button @click="cancel()">取 消</el-button>
|
||||||
|
<el-button type="primary" @click="getCheckedKeys()">确 定</el-button>
|
||||||
|
</span>
|
||||||
|
</el-dialog>
|
||||||
|
|
||||||
<el-dialog title="新增角色" :visible.sync="dialogVisible2" width="30%" :close-on-click-modal="false">
|
<el-dialog title="新增角色" :visible.sync="dialogVisible2" width="30%" :close-on-click-modal="false">
|
||||||
<div>
|
<el-form label-width="80px">
|
||||||
<el-form label-width="80px">
|
<el-form-item label="角色名称">
|
||||||
<el-form-item label="角色名称">
|
<el-input v-model="newrole"></el-input>
|
||||||
<el-input v-model="newrole"></el-input>
|
</el-form-item>
|
||||||
</el-form-item>
|
<div class="from-btn">
|
||||||
<div class="from-btn">
|
<el-button @click="dialogVisible2 = false">取消</el-button>
|
||||||
<el-button @click="dialogVisible2 = false">取消</el-button>
|
<el-button type="primary" @click="onSubmit">确认</el-button>
|
||||||
<el-button type="primary" @click="onSubmit">确认</el-button>
|
</div>
|
||||||
</div>
|
</el-form>
|
||||||
</el-form>
|
</el-dialog>
|
||||||
</div>
|
</div>
|
||||||
</el-dialog>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { roleList, roleAdd, jurisdiction, jurisdictionEdit } from "@/api/role.js"
|
import { roleList, roleAdd, jurisdiction, jurisdictionEdit } from "@/api/role.js"
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
id: "", //点击角色的id
|
id: "", //点击角色的id
|
||||||
loading: true,
|
loading: true,
|
||||||
tableList: [], //列表数据
|
tableList: [], //列表数据
|
||||||
rolePermissions: [],
|
rolePermissions: [],
|
||||||
newrole: "", //添加角色框input
|
newrole: "", //添加角色框input
|
||||||
dialogVisible: false, //编辑按钮打开表单变量
|
dialogVisible: false, //编辑按钮打开表单变量
|
||||||
dialogVisible2: false, //新增按钮打开表单变量
|
dialogVisible2: false, //新增按钮打开表单变量
|
||||||
permissionIds: [], //复选框选中权限的ID
|
permissionIds: [], //复选框选中权限的ID
|
||||||
allpermissionIds: {}, //id数组添加进对象
|
allpermissionIds: {}, //id数组添加进对象
|
||||||
Role_Permission: [], //权限列表数据
|
Role_Permission: [], //权限列表数据
|
||||||
defaultProps: {
|
defaultProps: {
|
||||||
children: "children",
|
children: "children",
|
||||||
label: "name",
|
label: "name"
|
||||||
},
|
},
|
||||||
isShowtree: false,
|
isShowtree: false,
|
||||||
chekedKeys: [],
|
chekedKeys: []
|
||||||
};
|
}
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
this.getroleList()
|
||||||
|
this.getJurisdiction()
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
//角色表单数据请求
|
||||||
|
getroleList() {
|
||||||
|
roleList().then((res) => {
|
||||||
|
this.tableList = res.data.data
|
||||||
|
})
|
||||||
|
this.loading = false
|
||||||
},
|
},
|
||||||
|
|
||||||
mounted() {
|
//角色权限数据请求
|
||||||
this.getroleList();
|
getJurisdiction() {
|
||||||
this.getJurisdiction();
|
jurisdiction().then((res) => {
|
||||||
|
this.Role_Permission = res.data.data
|
||||||
|
})
|
||||||
},
|
},
|
||||||
methods: {
|
|
||||||
//角色表单数据请求
|
|
||||||
getroleList() {
|
|
||||||
roleList().then((res) => {
|
|
||||||
this.tableList = res.data.data;
|
|
||||||
});
|
|
||||||
this.loading = false;
|
|
||||||
},
|
|
||||||
|
|
||||||
//角色权限数据请求
|
// 点击新增
|
||||||
getJurisdiction() {
|
onSubmit() {
|
||||||
jurisdiction().then((res) => {
|
let roleName = {
|
||||||
this.Role_Permission = res.data.data;
|
name: this.newrole
|
||||||
});
|
}
|
||||||
},
|
roleAdd(roleName).then((res) => {
|
||||||
|
this.dialogVisible2 = false;
|
||||||
// 点击新增
|
this.getroleList()
|
||||||
onSubmit() {
|
if (res.status == 201) {
|
||||||
let roleName = {
|
this.$message({
|
||||||
name: this.newrole,
|
message: "角色添加成功!",
|
||||||
};
|
type: "success"
|
||||||
roleAdd(roleName).then((res) => {
|
})
|
||||||
this.dialogVisible2 = false;
|
}
|
||||||
this.getroleList();
|
})
|
||||||
if (res.status == 201) {
|
|
||||||
this.$message({
|
|
||||||
message: "角色添加成功!",
|
|
||||||
type: "success",
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
},
|
|
||||||
|
|
||||||
// 点击编辑
|
|
||||||
onEdit(row) {
|
|
||||||
this.id = row.id;
|
|
||||||
let arr = row.permissions.map((item) => {
|
|
||||||
return item.id;
|
|
||||||
});
|
|
||||||
this.chekedKeys = arr;
|
|
||||||
this.dialogVisible = true;
|
|
||||||
this.isShowtree = true;
|
|
||||||
},
|
|
||||||
|
|
||||||
// 点击取消
|
|
||||||
cancel() {
|
|
||||||
this.dialogVisible = false;
|
|
||||||
this.isShowtree = false;
|
|
||||||
},
|
|
||||||
|
|
||||||
//编辑权限确认
|
|
||||||
getCheckedKeys() {
|
|
||||||
let id = this.id; //选中角色的ID
|
|
||||||
this.permissionIds = this.$refs.tree.getCheckedKeys(); //选中权限的ID
|
|
||||||
this.allpermissionIds = {
|
|
||||||
permissionIds: this.permissionIds,
|
|
||||||
};
|
|
||||||
jurisdictionEdit(id, this.allpermissionIds).then((res) => {
|
|
||||||
if (res.status === 200) {
|
|
||||||
this.dialogVisible = false;
|
|
||||||
this.getroleList();
|
|
||||||
this.$message({
|
|
||||||
message: "权限修改成功!",
|
|
||||||
type: "success",
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
};
|
|
||||||
|
// 点击编辑
|
||||||
|
onEdit(row) {
|
||||||
|
this.id = row.id
|
||||||
|
let arr = row.permissions.map((item) => {
|
||||||
|
return item.id
|
||||||
|
})
|
||||||
|
this.chekedKeys = arr
|
||||||
|
this.dialogVisible = true
|
||||||
|
this.isShowtree = true
|
||||||
|
},
|
||||||
|
|
||||||
|
// 点击取消
|
||||||
|
cancel() {
|
||||||
|
this.dialogVisible = false
|
||||||
|
this.isShowtree = false
|
||||||
|
},
|
||||||
|
|
||||||
|
//编辑权限确认
|
||||||
|
getCheckedKeys() {
|
||||||
|
let id = this.id //选中角色的ID
|
||||||
|
this.permissionIds = this.$refs.tree.getCheckedKeys() //选中权限的ID
|
||||||
|
this.allpermissionIds = {
|
||||||
|
permissionIds: this.permissionIds
|
||||||
|
}
|
||||||
|
jurisdictionEdit(id, this.allpermissionIds).then((res) => {
|
||||||
|
if (res.status === 200) {
|
||||||
|
this.dialogVisible = false
|
||||||
|
this.getroleList()
|
||||||
|
this.$message({ message: "权限修改成功!", type: "success" })
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
.opaBox{
|
.opaBox{
|
||||||
margin-bottom: 15px;
|
margin-bottom: 15px;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user