7a2db79b by renchao@pashanhoo.com

Merge branch 'dev'

2 parents e1de1a15 5265bc92
/*
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-09-15 09:32:40
* @LastEditTime: 2024-05-16 09:23:43
*/
import request from '@/utils/request'
import { log } from 'bpmn-js-token-simulation'
let SERVER = window.config ? window.config : JSON.parse(localStorage.getItem('ApiUrl'))
/**
* @description: 添加补录记录
......
/*
* @Description:
* @Autor: renchao
* @LastEditTime: 2024-05-16 09:23:47
*/
import request from '@/utils/request'
let SERVER = window.config ? window.config : JSON.parse(localStorage.getItem('ApiUrl'))
/**
* @description: 上传电子签名
* @param {*} data
* @author: renchao
*/
export function dzqmUpload (data) {
return request({
url: SERVER.SERVERAPI + '/rest/system/dzqm/upload',
method: 'post',
data
})
}
\ No newline at end of file
......@@ -21,3 +21,17 @@ export function upload (data) {
data
})
}
/**
* @description: 上传电子签名
* @param {*} data
* @author: renchao
*/
export function uploaddzqm (data) {
return request({
url: SERVER.SERVERAPI + '/rest/system/dzqm',
method: 'post',
data
})
}
......
......@@ -17,309 +17,324 @@
}}</span>
<span style="padding-right: 10px">{{ userInfo.name }}</span>
</p>
<img :src="avatar + '?imageView2/1/w/80/h/80'" class="user-avatar" />
<el-dropdown>
<span class="el-dropdown-link">
<img :src="avatar + '?imageView2/1/w/80/h/80'" class="user-avatar" />
</span>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item command="user" @click.native="handleGetUser">用户信息</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</div>
<svg-icon
class="shutdown"
@click.native="logout"
icon-class="shutdown"
/>
icon-class="shutdown" />
</div>
</div>
<NoticeBar
class="NoticeBar"
:noticeList="noticeList"
v-if="noticeList.length > 0"
/>
v-if="noticeList.length > 0" />
</div>
</template>
<script>
import axios from "axios";
import Cookies from "js-cookie";
import { mapGetters } from "vuex";
import NoticeBar from "@/components/NoticeBar/index";
import { getHomeNoticeList } from "@/api/home";
import { setToken } from "@/utils/util";
export default {
components: {
NoticeBar,
},
computed: {
...mapGetters(["sidebar", "avatar", "name", "userInfo"]),
baseUrl() {
return window._config.baseUrl;
import axios from "axios";
import Cookies from "js-cookie";
import { mapGetters } from "vuex";
import NoticeBar from "@/components/NoticeBar/index";
import { getHomeNoticeList } from "@/api/home";
import { setToken } from "@/utils/util";
export default {
components: {
NoticeBar,
},
},
data() {
return {
logo: require("../../image/bdclogo.png"),
noticeList: [],
};
},
created() {
this.queryNoticeList();
},
mounted() {
let that = this;
window.addEventListener("message", function (messageEvent) {
if (messageEvent.data.update) {
that.queryNoticeList();
}
});
},
destroyed() {
window.removeEventListener("message");
},
methods: {
/**
* @description: queryNoticeList
* @author: renchao
*/
queryNoticeList() {
getHomeNoticeList().then((res) => {
if (res.result) {
this.noticeList = res.result.noticeList;
computed: {
...mapGetters(["sidebar", "avatar", "name", "userInfo"]),
baseUrl () {
return window._config.baseUrl;
},
},
data () {
return {
logo: require("../../image/bdclogo.png"),
noticeList: [],
};
},
created () {
this.queryNoticeList();
},
mounted () {
let that = this;
window.addEventListener("message", function (messageEvent) {
if (messageEvent.data.update) {
that.queryNoticeList();
}
});
},
/**
* @description: logout
* @author: renchao
*/
logout() {
axios
.post(window._config.services.management + "/management/logout")
.then(() => {
setToken(undefined);
sessionStorage.removeItem("token");
localStorage.setItem("dj-location", window.location.href);
window.location.href =
window._config.casBaseURL +
"/logout?service=" +
encodeURIComponent(window.location.href);
});
destroyed () {
window.removeEventListener("message");
},
methods: {
/**
* @description: themeChange
* @param {*} val
* @author: renchao
*/
themeChange(val) {
this.$store.dispatch("app/updateTheme", val);
},
searchMessageCenter() {
this.$router.push({ name: "messagecenter" });
},
/**
* @description: handleCommand
* @param {*} command
* @author: renchao
*/
handleCommand(command) {
if (command == "a") {
//个人中心
this.$router.push({ name: "personal" });
}
/**
* @description: 获取用户信息
* @author: renchao
*/
handleGetUser () {
this.$popupDialog('用户信息', 'system/userInfo/index', {}, '80%', true);
},
/**
* @description: queryNoticeList
* @author: renchao
*/
queryNoticeList () {
getHomeNoticeList().then((res) => {
if (res.result) {
this.noticeList = res.result.noticeList;
}
});
},
/**
* @description: logout
* @author: renchao
*/
logout () {
axios
.post(window._config.services.management + "/management/logout")
.then(() => {
setToken(undefined);
sessionStorage.removeItem("token");
localStorage.setItem("dj-location", window.location.href);
window.location.href =
window._config.casBaseURL +
"/logout?service=" +
encodeURIComponent(window.location.href);
});
},
/**
* @description: themeChange
* @param {*} val
* @author: renchao
*/
themeChange (val) {
this.$store.dispatch("app/updateTheme", val);
},
searchMessageCenter () {
this.$router.push({ name: "messagecenter" });
},
/**
* @description: handleCommand
* @param {*} command
* @author: renchao
*/
handleCommand (command) {
if (command == "a") {
//个人中心
this.$router.push({ name: "personal" });
}
},
},
},
};
};
</script>
<style lang="scss" scoped>
.navbar-con {
position: relative;
}
.NoticeBar {
position: absolute;
bottom: 0;
}
.el-dropdown-menu {
padding: 0 !important;
border: 1px solid #ebeef5;
box-shadow: 0 2px 10px 0 rgba(0, 0, 0, 0.12);
border-radius: 4px 0 0 4px 4px;
.el-dropdown-menu__item {
text-align: center;
margin-top: 0 !important;
font-size: 14px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #4a4a4a;
width: 140px;
height: 36px;
line-height: 36px;
.navbar-con {
position: relative;
}
.el-dropdown-menu__item:nth-child(6) {
border-top: 1px solid #ebeef5;
/deep/.el-dropdown {
height: 32px;
}
.popper__arrow {
top: -11px !important;
left: 110px !important;
transform: rotate(0deg) scale(2);
.NoticeBar {
position: absolute;
bottom: 0;
}
.el-dropdown-menu__item:not(.is-disabled):hover,
.el-dropdown-menu__item:focus {
background: #f6f7f9;
color: #4a4a4a;
}
}
.el-dropdown-menu {
padding: 0 !important;
border: 1px solid #ebeef5;
box-shadow: 0 2px 10px 0 rgba(0, 0, 0, 0.12);
border-radius: 4px 0 0 4px 4px;
.navbar {
height: $headerHeight;
overflow: hidden;
position: relative;
background: #fff;
// background: linear-gradient(270deg, #148CEE 0%, #1870E3 100%); //默认颜色
box-shadow: 0 1px 0px rgba(0, 21, 41, 0.08);
display: flex;
align-items: center;
padding: 0 20px;
justify-content: space-between;
.logo {
// margin-top: -20px;
.header-logo {
width: 40px;
float: left;
vertical-align: middle;
}
h4 {
float: left;
vertical-align: middle;
line-height: 40px;
font-size: 22px;
color: #fff;
text-indent: 6px;
letter-spacing: 2px;
font-family: albbsht;
.el-dropdown-menu__item {
text-align: center;
margin-top: 0 !important;
font-size: 14px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #4a4a4a;
width: 140px;
height: 36px;
line-height: 36px;
}
}
.backdrop {
flex: 1;
width: 60%;
background: url("../../image/backdrop.png");
background-size: 100% 100%;
height: $headerHeight;
}
.hamburger-container {
line-height: 43px;
height: 100%;
float: left;
cursor: pointer;
transition: background 0.3s;
-webkit-tap-highlight-color: transparent;
.el-dropdown-menu__item:nth-child(6) {
border-top: 1px solid #ebeef5;
}
&:hover {
background: rgba(0, 0, 0, 0.025);
.popper__arrow {
top: -11px !important;
left: 110px !important;
transform: rotate(0deg) scale(2);
}
}
.breadcrumb-container {
float: left;
.el-dropdown-menu__item:not(.is-disabled):hover,
.el-dropdown-menu__item:focus {
background: #f6f7f9;
color: #4a4a4a;
}
}
.right-menu {
float: right;
height: 100%;
line-height: 50px;
.navbar {
height: $headerHeight;
overflow: hidden;
position: relative;
background: #fff;
// background: linear-gradient(270deg, #148CEE 0%, #1870E3 100%); //默认颜色
box-shadow: 0 1px 0px rgba(0, 21, 41, 0.08);
display: flex;
align-items: center;
padding: 0 20px;
justify-content: space-between;
.function {
margin: 0 15px;
cursor: pointer;
.logo {
// margin-top: -20px;
.header-logo {
width: 40px;
float: left;
vertical-align: middle;
}
h4 {
float: left;
vertical-align: middle;
line-height: 40px;
font-size: 22px;
color: #fff;
text-indent: 6px;
letter-spacing: 2px;
font-family: albbsht;
}
}
.backdrop {
flex: 1;
width: 60%;
background: url("../../image/backdrop.png");
background-size: 100% 100%;
height: $headerHeight;
}
.shutdown {
font-size: 20px;
margin-left: 15px;
.hamburger-container {
line-height: 43px;
height: 100%;
float: left;
cursor: pointer;
transition: background 0.3s;
-webkit-tap-highlight-color: transparent;
&:hover {
background: rgba(0, 0, 0, 0.025);
}
}
.organization-item {
margin-right: 40px;
margin-top: -40px !important;
.breadcrumb-container {
float: left;
}
.item {
margin-right: 40px;
margin-top: -20px;
line-height: 18.4px;
cursor: pointer;
position: relative;
.right-menu {
float: right;
height: 100%;
line-height: 50px;
display: flex;
align-items: center;
.item-box {
position: absolute;
top: -5px;
left: 3px;
width: 100%;
min-width: 25px;
height: 25px;
.function {
margin: 0 15px;
cursor: pointer;
z-index: 100;
}
}
&:focus {
outline: none;
}
.shutdown {
font-size: 20px;
margin-left: 15px;
cursor: pointer;
}
.right-menu-item {
display: inline-block;
font-size: 18px;
color: #fff;
vertical-align: text-bottom;
.organization-item {
margin-right: 40px;
margin-top: -40px !important;
}
&.hover-effect {
.item {
margin-right: 40px;
margin-top: -20px;
line-height: 18.4px;
cursor: pointer;
transition: background 0.3s;
display: flex;
align-items: center;
position: relative;
&:hover {
background: rgba(0, 0, 0, 0.025);
.item-box {
position: absolute;
top: -5px;
left: 3px;
width: 100%;
min-width: 25px;
height: 25px;
cursor: pointer;
z-index: 100;
}
}
}
.avatar-wrapper {
position: relative;
display: flex;
height: 40px;
align-items: center;
color: #ffffff;
p {
font-size: 14px;
height: 40px;
span {
display: block;
line-height: 20px;
text-align: right;
}
&:focus {
outline: none;
}
.user-avatar {
cursor: pointer;
width: 35px;
height: 35px;
border-radius: 50%;
.right-menu-item {
display: inline-block;
font-size: 18px;
color: #fff;
vertical-align: text-bottom;
&.hover-effect {
cursor: pointer;
transition: background 0.3s;
display: flex;
align-items: center;
&:hover {
background: rgba(0, 0, 0, 0.025);
}
}
}
.el-icon-caret-bottom {
cursor: pointer;
position: absolute;
right: -15px;
top: 17px;
font-size: 12px;
.avatar-wrapper {
position: relative;
display: flex;
height: 40px;
align-items: center;
color: #ffffff;
p {
font-size: 14px;
height: 40px;
span {
display: block;
line-height: 20px;
text-align: right;
}
}
.user-avatar {
cursor: pointer;
width: 35px;
height: 35px;
border-radius: 50%;
}
.el-icon-caret-bottom {
cursor: pointer;
position: absolute;
right: -15px;
top: 17px;
font-size: 12px;
}
}
}
}
}
</style>
......
<template>
<div class="from-clues">
<!-- 表单部分 -->
<div class="from-clues-header">
<el-form :model="ruleForm" label-width="100px">
<el-row>
<el-col :span="6">
<el-form-item label="用户名称:">
{{ruleForm.name}}
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="组织机构:">
{{ruleForm.organizationName}}
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="部门:">
{{ruleForm.departmentName}}
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="签名路径:">
<img :src="ruleForm.dzqmurl" class="signature-image">
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<el-upload
class="upload-demo"
action=""
:limit="1"
multiple
:key="key"
:auto-upload="false"
accept=".jpg, .png, .jpeg"
:on-change="handleChange"
:before-upload="beforeUpload"
:show-file-list="false"
drag>
<i class="el-icon-upload"></i>
<div class="el-upload__text">将图片拖到此处,或<em>点击上传</em></div>
<div class="el-upload__tip" slot="tip">只能上传jpg/png文件,且不超过5MB</div>
</el-upload>
<!-- 表格 -->
</div>
</template>
<script>
import { dzqmUpload } from '@/api/dzqm'
import { getUserInfo } from '@/api/user'
export default {
name: "dzqm",
data () {
return {
ruleForm: {},
key: 0,
}
},
mounted () {
this.getUserInfo()
},
methods: {
async getUserInfo () {
let res = await getUserInfo()
this.ruleForm = res.result
},
beforeUpload (file) {
this.files = file;
const allowedExtensions = ['jpg', 'jpeg', 'png'];
const maxFileSizeMB = 5;
const extension = allowedExtensions.includes(file.name.split('.').pop().toLowerCase());
const isLt5M = file.size / 1024 / 1024 < maxFileSizeMB;
if (!extension) {
this.$message.warning('上传模板只能是 jpg、jpeg、png 格式!');
} else if (!isLt5M) {
this.$message.warning(`上传模板大小不能超过 ${maxFileSizeMB}MB!`);
}
return extension && isLt5M;
},
async handleChange (file) {
var formdata = new FormData();
formdata.append("file", file.raw);
dzqmUpload(formdata).then(res => {
if (res.code == 200) {
this.$message({
message: '上传成功!',
type: 'success'
})
this.key++
this.ruleForm.dzqmurl = res.message
}
})
}
}
};
</script>
<style scoped lang="scss">
@import "~@/styles/public.scss";
.signature-image {
width: 100%;
max-height: 360px;
object-fit: contain;
}
</style>
\ No newline at end of file
......@@ -50,6 +50,14 @@ class data extends filter {
// }
// },
{
label: "流程状态",
width: '80',
render: (h, scope) => {
return <div >完结</div>
}
},
{
label: "业务号",
width: '110',
render: (h, scope) => {
......