From 0bb1d10f4b1ed88a7be669671724394cb6603723 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BE=99=E8=BF=90=E6=A8=A1?= <1724894114@qq.com> Date: Wed, 3 Jul 2024 20:05:29 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AF=B9=E6=8E=A5=E5=90=8E=E7=AB=AF=E4=B8=AA?= =?UTF-8?q?=E4=BA=BA=E4=BF=A1=E6=81=AF=E9=83=A8=E5=88=86=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.development | 4 +- src/api/model/oss.js | 12 ++ src/assets/icons/index.js | 4 +- src/components/scUpload/uploadImg.vue | 164 ++++++++++++++ src/components/scUpload/uploadListImg.vue | 201 ++++++++++++++++++ src/config/route.js | 13 +- src/config/table.js | 2 +- src/layout/components/userbar.vue | 27 ++- src/layout/index.vue | 4 +- src/router/index.js | 4 +- src/scui.js | 4 + src/store/modules/global.js | 19 +- src/utils/request.js | 22 ++ .../{document => docsManager}/document.vue | 0 .../list.vue => docsManager/index.vue} | 2 +- src/views/{document => docsManager}/share.vue | 0 .../list.vue => earlyManager/index.vue} | 2 +- src/views/home/widgets/index.vue | 10 +- src/views/login/components/passwordForm.vue | 38 ++-- src/views/setting/company/index.vue | 24 +++ src/views/setting/{dept => deptMag}/index.vue | 0 src/views/setting/{dept => deptMag}/save.vue | 0 src/views/setting/partsMag/index.vue | 26 +++ src/views/setting/warehouse/index.vue | 26 +++ src/views/userCenter/index.vue | 35 +-- src/views/userCenter/user/account.vue | 138 ++++++++++-- 26 files changed, 695 insertions(+), 86 deletions(-) create mode 100644 src/api/model/oss.js create mode 100644 src/components/scUpload/uploadImg.vue create mode 100644 src/components/scUpload/uploadListImg.vue rename src/views/{document => docsManager}/document.vue (100%) rename src/views/{document/list.vue => docsManager/index.vue} (97%) rename src/views/{document => docsManager}/share.vue (100%) rename src/views/{early/list.vue => earlyManager/index.vue} (96%) create mode 100644 src/views/setting/company/index.vue rename src/views/setting/{dept => deptMag}/index.vue (100%) rename src/views/setting/{dept => deptMag}/save.vue (100%) create mode 100644 src/views/setting/partsMag/index.vue create mode 100644 src/views/setting/warehouse/index.vue diff --git a/.env.development b/.env.development index a019ff9..72535fb 100644 --- a/.env.development +++ b/.env.development @@ -6,8 +6,8 @@ VUE_APP_TITLE = 德木测试 # 象纬云科 # 接口地址 -VUE_APP_API_BASEURL = https://api.dev.dwoodauto.com/api/v1 -VUE_APP_API_DEV = https://api.dev.dwoodauto.com +VUE_APP_API_BASEURL = https://xwapi.dev.dwoodauto.com/api/v1 +VUE_APP_API_DEV = https://xwapi.dev.dwoodauto.com # WS地址 VUE_APP_WS_URL = wss://api.dev.dwoodauto.com/wss diff --git a/src/api/model/oss.js b/src/api/model/oss.js new file mode 100644 index 0000000..25f4cc8 --- /dev/null +++ b/src/api/model/oss.js @@ -0,0 +1,12 @@ +import config from "@/config"; +import http from "@/utils/request"; + +export default { + ossGet: { + url: `${config.API_URL}/oss.get.sign`, + name: "获取oss参数", + post: async function (params) { + return await http.oss(this.url, params); + }, + } +}; diff --git a/src/assets/icons/index.js b/src/assets/icons/index.js index ecf6e34..8675a64 100644 --- a/src/assets/icons/index.js +++ b/src/assets/icons/index.js @@ -44,9 +44,9 @@ export { default as Page } from './menu/Page.vue' export { default as Loading } from './menu/Loading.vue' export { default as Authentication } from './menu/Authenticat.vue' export { default as Tags } from './menu/Tags.vue' -export { default as WorkOrder } from './menu/WorkOrder.vue' +export { default as Order } from './menu/WorkOrder.vue' export { default as Finance } from './menu/Finance.vue' -export { default as ReportForms } from './menu/ReportForms.vue' +export { default as Reports } from './menu/ReportForms.vue' export { default as Shipment } from './menu/Shipment.vue' export { default as Stock } from './menu/Stock.vue' diff --git a/src/components/scUpload/uploadImg.vue b/src/components/scUpload/uploadImg.vue new file mode 100644 index 0000000..d97b334 --- /dev/null +++ b/src/components/scUpload/uploadImg.vue @@ -0,0 +1,164 @@ + + + + + diff --git a/src/components/scUpload/uploadListImg.vue b/src/components/scUpload/uploadListImg.vue new file mode 100644 index 0000000..0dbd2ff --- /dev/null +++ b/src/components/scUpload/uploadListImg.vue @@ -0,0 +1,201 @@ + + + + + diff --git a/src/config/route.js b/src/config/route.js index f7ff7de..8cb9c30 100644 --- a/src/config/route.js +++ b/src/config/route.js @@ -11,6 +11,7 @@ const routes = [ meta: { icon: "sc-icon-Home", title: "首页", + hidden: true }, children: [{ name: "dashboard", @@ -31,7 +32,7 @@ const routes = [ },{ name: "document", path: "/document", - component: "document/list", + component: "docsManager/index", meta: { icon: "sc-icon-UserInfo", title: "文档管理", @@ -39,7 +40,7 @@ const routes = [ },{ name: "earlyWarning", path: "/early-warning", - component: "early/list", + component: "earlyManager/index", meta: { icon: "sc-icon-UserInfo", title: "预警管理", @@ -58,8 +59,9 @@ const routes = [ name: "order", path: "/order", meta: { - icon: "sc-icon-WorkOrder", + icon: "sc-icon-order", title: "维保工单", + hidden: true }, children: [{ name: "order", @@ -93,6 +95,7 @@ const routes = [ meta: { icon: "sc-icon-Stock", title: "库存管理", + hidden:true }, children: [{ name: "stock", @@ -126,6 +129,7 @@ const routes = [ meta: { icon: "sc-icon-Shipment", title: "出货管理", + hidden:true }, children: [{ name: "shipment", @@ -159,6 +163,7 @@ const routes = [ meta: { icon: "sc-icon-Finance", title: "财务管理", + hidden:true }, children: [{ name: "finance", @@ -184,6 +189,7 @@ const routes = [ meta: { icon: "sc-icon-ReportForms", title: "报表统计", + hidden:true }, children: [{ name: "report", @@ -209,6 +215,7 @@ const routes = [ meta: { icon: "sc-icon-Setup", title: "系统设置", + hidden: true }, children: [{ name: "system", diff --git a/src/config/table.js b/src/config/table.js index b9c5853..ff525ee 100644 --- a/src/config/table.js +++ b/src/config/table.js @@ -4,7 +4,7 @@ import tool from '@/utils/tool' export default { successCode: 200, //请求完成代码 - pageSize: 20, //表格每一页条数 + pageSize: 30, //表格每一页条数 pageSizes: [10, 20, 30, 40, 50], //表格可设置的一页条数 paginationLayout: "total, sizes, prev, pager, next, jumper", //表格分页布局,可设置"total, sizes, prev, pager, next, jumper" parseData: function (res) { //数据分析 diff --git a/src/layout/components/userbar.vue b/src/layout/components/userbar.vue index f145bb8..7c624e8 100644 --- a/src/layout/components/userbar.vue +++ b/src/layout/components/userbar.vue @@ -53,7 +53,7 @@
- {{ userNameF }} + {{ userNameF }}
@@ -125,22 +125,33 @@ } }, created() { - var userInfo = this.$TOOL.data.get("USER_INFO"); - this.userName = userInfo.name; - this.userNameF = this.userName.substring(0, 1); + const userInfo = this.$TOOL.data.get("USER_INFO"); + + this.$store.commit("SET_LOGIN_AVATAR", userInfo.avatar); + this.$store.commit("SET_LOGIN_NAME", userInfo.name); + + this.userName = this.$store.state.global.login_name; + if(userInfo.company_info){ + this.companyName = userInfo.company_info.name; + } + if(this.userName!=''){ + this.userNameF = this.userName.substring(0, 1); + } + this.avatar = this.$store.state.global.login_avatar; + this.userId = userInfo.id; }, methods: { //个人信息 handleUser(command) { if (command == "uc") { - this.$router.push({ path: '/usercenter' }); + this.$router.push({ path: '/user/center' }); } if (command == "cmd") { this.$router.push({ path: '/cmd' }); } if (command == "clearCache") { - this.$confirm('清除缓存会将系统初始化,包括登录状态、主题、语言设置等,是否继续?', '提示', { - type: 'info', + this.$confirm('清除缓存会将系统初始化,包括登录状态、主题、语言设置等,是否继续?', '警告', { + type: 'warning', }).then(() => { const loading = this.$loading() this.$TOOL.data.clear() @@ -154,7 +165,7 @@ }) } if (command == "outLogin") { - this.$confirm('确认是否退出当前用户?', '提示', { + this.$confirm('确认是否退出当前用户?', '警告', { type: 'warning', confirmButtonText: '退出', confirmButtonClass: 'el-button--danger' diff --git a/src/layout/index.vue b/src/layout/index.vue index 4ff8523..cd4157a 100644 --- a/src/layout/index.vue +++ b/src/layout/index.vue @@ -55,8 +55,8 @@
- - {{ $CONFIG.APP_NAME }} + +
diff --git a/src/router/index.js b/src/router/index.js index c4d95ed..da98d8d 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -66,7 +66,7 @@ router.beforeEach(async (to, from, next) => { } //加载动态/静态路由 if(!isGetRouter){ - let apiMenu = [] // tool.data.get("MENU") || + let apiMenu = tool.data.get("MENU") || [] // let userInfo = tool.data.get("USER_INFO") let userMenu = treeFilter(userRoutes, node => { return node.meta.role ? node.meta.role.filter(item=>userInfo.role.indexOf(item)>-1).length > 0 : true @@ -102,7 +102,7 @@ router.onError((error) => { //入侵追加自定义方法、对象 router.sc_getMenu = () => { - var apiMenu = [] // tool.data.get("MENU") || + var apiMenu = tool.data.get("MENU") || [] // tool.data.get("MENU") let userInfo = tool.data.get("USER_INFO") let userMenu = treeFilter(userRoutes, node => { return node.meta.role ? node.meta.role.filter(item=>userInfo.role.indexOf(item)>-1).length > 0 : true diff --git a/src/scui.js b/src/scui.js index b452b0f..0818548 100644 --- a/src/scui.js +++ b/src/scui.js @@ -19,6 +19,8 @@ import scForm from './components/scForm' import scTitle from './components/scTitle' import scWaterMark from './components/scWaterMark' import scQrCode from './components/scQrCode' +import ossImgUpload from "./components/scUpload/uploadImg"; +import ossImgListUpload from "./components/scUpload/uploadListImg"; import scStatusIndicator from './components/scMini/scStatusIndicator' import scTrend from './components/scMini/scTrend' @@ -62,6 +64,8 @@ export default { app.component('scQrCode', scQrCode); app.component('scStatusIndicator', scStatusIndicator); app.component('scTrend', scTrend); + app.component('ossImgUpload', ossImgUpload); + app.component('ossImgListUpload', ossImgListUpload); //注册全局指令 app.directive('auth', auth) diff --git a/src/store/modules/global.js b/src/store/modules/global.js index 53ae864..0359a1a 100644 --- a/src/store/modules/global.js +++ b/src/store/modules/global.js @@ -12,6 +12,14 @@ export default { layoutTags: config.LAYOUT_TAGS, //主题 theme: config.THEME, + // 获取聊天记录 + msg: "", + // 用户消息总数 + msgNum:0, + // 用户名 + login_name:'管理员', + // 用户头像 + login_avatar:'https://dm-auto.oss-cn-shanghai.aliyuncs.com/mes-login/logo.png', }, mutations: { SET_ismobile(state, key){ @@ -28,6 +36,15 @@ export default { }, TOGGLE_layoutTags(state){ state.layoutTags = !state.layoutTags - } + }, + SET_LOGIN_NAME(state, key) { + state.login_name = key + }, + SET_LOGIN_AVATAR(state, key) { + state.login_avatar = key + }, + SET_WS_Msg_NUM(state, key) { + state.msgNum = key + }, } } diff --git a/src/utils/request.js b/src/utils/request.js index 82891d0..5a8b9a8 100644 --- a/src/utils/request.js +++ b/src/utils/request.js @@ -122,6 +122,28 @@ var http = { }) }, + /** oss 请求 + * @param {string} url + * @param {{}} data + * @param {{}} config + */ + oss:function (url, data = {}, config = {}){ + return new Promise((resolve, reject) => { + axios({ + method: "post", + url: url, + data: data, + ...config, + }) + .then((response) => { + resolve(response.data); + }) + .catch((error) => { + reject(error); + }); + }); + }, + /** put 请求 * @param {string} url 接口地址 * @param {object} data 请求参数 diff --git a/src/views/document/document.vue b/src/views/docsManager/document.vue similarity index 100% rename from src/views/document/document.vue rename to src/views/docsManager/document.vue diff --git a/src/views/document/list.vue b/src/views/docsManager/index.vue similarity index 97% rename from src/views/document/list.vue rename to src/views/docsManager/index.vue index f4a8266..743f39c 100644 --- a/src/views/document/list.vue +++ b/src/views/docsManager/index.vue @@ -17,7 +17,7 @@ import document from './document' import share from './share' export default { - name: 'list', + name: 'index', components: { document, share diff --git a/src/views/document/share.vue b/src/views/docsManager/share.vue similarity index 100% rename from src/views/document/share.vue rename to src/views/docsManager/share.vue diff --git a/src/views/early/list.vue b/src/views/earlyManager/index.vue similarity index 96% rename from src/views/early/list.vue rename to src/views/earlyManager/index.vue index aaea57c..5d2e8c9 100644 --- a/src/views/early/list.vue +++ b/src/views/earlyManager/index.vue @@ -35,7 +35,7 @@ diff --git a/src/views/home/widgets/index.vue b/src/views/home/widgets/index.vue index 5908c19..a750e92 100644 --- a/src/views/home/widgets/index.vue +++ b/src/views/home/widgets/index.vue @@ -114,8 +114,8 @@ }, computed: { allCompsList(){ - var allCompsList = [] - for(var key in this.allComps){ + const allCompsList = []; + for(let key in this.allComps){ allCompsList.push({ key: key, title: allComps[key].title, @@ -123,7 +123,9 @@ description: allComps[key].description }) } - var myCopmsList = this.grid.copmsList.reduce(function(a, b){return a.concat(b)}) + const myCopmsList = this.grid.copmsList.reduce(function (a, b) { + return a.concat(b) + }); for(let comp of allCompsList){ const _item = myCopmsList.find((item)=>{return item === comp.key}) if(_item){ @@ -133,7 +135,7 @@ return allCompsList }, myCompsList(){ - var myGrid = this.$TOOL.data.get("DASHBOARDGRID") + const myGrid = this.$TOOL.data.get("DASHBOARDGRID"); return this.allCompsList.filter(item => !item.disabled && myGrid.includes(item.key)) }, nowCompsList(){ diff --git a/src/views/login/components/passwordForm.vue b/src/views/login/components/passwordForm.vue index 78fad5b..5c97f32 100644 --- a/src/views/login/components/passwordForm.vue +++ b/src/views/login/components/passwordForm.vue @@ -27,9 +27,8 @@ export default { data() { return { - userType: 'admin', form: { - user: "long", + user: "ykxiao", password: "123456", autologin: false }, @@ -45,53 +44,43 @@ } }, watch: { - userType(val) { - if (val == 'admin') { - this.form.user = 'admin' - this.form.password = 'admin' - } else if (val == 'user') { - this.form.user = 'user' - this.form.password = 'user' - } - } + }, mounted() { }, methods: { async login() { - - var validate = await this.$refs.loginForm.validate().catch(() => { }) + const validate = await this.$refs.loginForm.validate().catch(() => {}); if (!validate) { return false } this.islogin = true - var data = { + const data = { login_name: this.form.user, - password: this.form.password //this.$TOOL.crypto.MD5(this.form.password) - } + password: this.form.password + }; //获取token - var user = await this.$API.auth.token.post(data) + const user = await this.$API.auth.token.post(data); if (user.code == 200) { this.$TOOL.cookie.set("TOKEN", user.data.token, { expires: this.form.autologin ? 24 * 60 * 60 : 0 }) this.$TOOL.data.set("USER_INFO", user.data.user) + if(user.data.user.avatar!=''){ + this.$store.commit("SET_LOGIN_AVATAR", user.data.user.avatar); + } + this.$store.commit("SET_LOGIN_NAME", user.data.user.name); } else { this.islogin = false this.$message.warning(user.message) return false } //获取菜单 - var menu = await this.$API.system.menu.myMenus.get(); - // if (this.form.user == 'admin') { - // menu = await this.$API.system.menu.myMenus.get() - // } else { - // menu = await this.$API.demo.menu.get() - // } + const menu = await this.$API.system.menu.myMenus.get(); if (menu.code == 200) { if (menu.data.menu.length == 0) { this.islogin = false - this.$alert("当前用户无任何菜单权限,请联系系统管理员", "无权限访问", { + await this.$alert("当前用户无任何菜单权限,请联系系统管理员", "无权限访问", { type: 'error', center: true }) @@ -109,7 +98,6 @@ this.$router.replace({ path: '/' }) - this.$message.success("Login Success 登录成功") this.islogin = false }, } diff --git a/src/views/setting/company/index.vue b/src/views/setting/company/index.vue new file mode 100644 index 0000000..51485c9 --- /dev/null +++ b/src/views/setting/company/index.vue @@ -0,0 +1,24 @@ + + + + + diff --git a/src/views/setting/dept/index.vue b/src/views/setting/deptMag/index.vue similarity index 100% rename from src/views/setting/dept/index.vue rename to src/views/setting/deptMag/index.vue diff --git a/src/views/setting/dept/save.vue b/src/views/setting/deptMag/save.vue similarity index 100% rename from src/views/setting/dept/save.vue rename to src/views/setting/deptMag/save.vue diff --git a/src/views/setting/partsMag/index.vue b/src/views/setting/partsMag/index.vue new file mode 100644 index 0000000..350f8e7 --- /dev/null +++ b/src/views/setting/partsMag/index.vue @@ -0,0 +1,26 @@ + + + + + diff --git a/src/views/setting/warehouse/index.vue b/src/views/setting/warehouse/index.vue new file mode 100644 index 0000000..350f8e7 --- /dev/null +++ b/src/views/setting/warehouse/index.vue @@ -0,0 +1,26 @@ + + + + + diff --git a/src/views/userCenter/index.vue b/src/views/userCenter/index.vue index 0ca0096..931e1c5 100644 --- a/src/views/userCenter/index.vue +++ b/src/views/userCenter/index.vue @@ -4,10 +4,10 @@ @@ -91,21 +91,13 @@ } ] }, - // { - // groupName: "账号升级", - // list: [ - // { - // icon: "el-icon-office-building", - // title: "升级为企业账号", - // component: "upToEnterprise" - // } - // ] - // } ], user: { - userName: "龙隆", - role: "管理员", + avatar:this.$store.state.global.login_avatar, + name: this.$store.state.global.login_name, + role: "", }, + userNameF:'', page: "account" } }, @@ -123,9 +115,22 @@ } }) }, + created() { + const userInfo = this.$TOOL.data.get('USER_INFO'); + this.user.role = userInfo.user_roles && userInfo.user_roles.role_names.length>0?userInfo.user_roles.role_names[0]:''; + }, methods: { openPage(item){ this.page = item.index + }, + async parentParams(files) { + let params = { + avatar: files + } + const res = await this.$API.user.uploadAvatar.post(params); + if (res.code == 200) { + this.$store.commit("SET_LOGIN_AVATAR", files); + } } } } diff --git a/src/views/userCenter/user/account.vue b/src/views/userCenter/user/account.vue index 0a97874..31bc1ac 100644 --- a/src/views/userCenter/user/account.vue +++ b/src/views/userCenter/user/account.vue @@ -1,20 +1,29 @@ -