01431511 by renchao@pashanhoo.com

Merge branch 'dev'

2 parents 0f62fe97 5b753536
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-07-20 10:22:20
* @LastEditTime: 2023-07-25 16:06:03
-->
<template>
<label class="el-checkbox" :class="[
......@@ -46,9 +46,7 @@
default: ''
}
},
componentName: 'ElCheckbox',
data () {
return {
selfModel: false,
......@@ -56,7 +54,6 @@
isLimitExceeded: false
};
},
computed: {
model: {
/**
......@@ -129,7 +126,6 @@
store () {
return this._checkboxGroup ? this._checkboxGroup.value : this.value;
},
/**
* @description: isLimitDisabled
* @author: renchao
......
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-07-25 16:10:17
-->
<template>
<transition name="el-loading-fade" @after-leave="handleAfterLeave">
<div v-show="visible" class="el-loading-mask" :style="{ backgroundColor: background || '' }"
......@@ -9,9 +14,8 @@
</div>
</transition>
</template>
<script>
export default {
export default {
data () {
return {
text: null,
......@@ -22,7 +26,6 @@ export default {
customClass: ''
};
},
methods: {
handleAfterLeave () {
this.$emit('after-leave');
......@@ -31,15 +34,15 @@ export default {
this.text = text;
}
}
};
};
</script>
<style scoped lang="scss">
.el-loading-spinner {
.el-loading-spinner {
margin-top: -100px !important;
.img {
width: 80px;
height: 80px;
}
}
}
</style>
\ No newline at end of file
......
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-07-25 16:10:08
-->
<template>
<transition name="fade">
<!--主要内容-->
......@@ -18,7 +23,7 @@
</transition>
</template>
<script>
export default {
export default {
props: {
noticeList: {
type: Array,
......@@ -133,10 +138,10 @@ export default {
text.style.animationPlayState = ''
}
}
};
};
</script>
<style lang="scss" scoped>
.noticebar {
.noticebar {
display: flex;
align-items: center;
width: 100%;
......@@ -176,5 +181,5 @@ export default {
}
}
}
}
}
</style>
......
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-07-25 16:09:59
-->
<template>
<div style="width: 100%;height: 100%">
<vue-photo-zoom-pro :width="bigWidth" :url="url" :type="type" :scale="scale" :out-show="showType"
......@@ -5,7 +10,6 @@
</vue-photo-zoom-pro>
</div>
</template>
<script>
import vuePhotoZoomPro from '@/components/PhotoZoom/vue-photo-zoom-pro'
export default {
......
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-07-25 16:06:21
-->
<template>
<transition name="msgbox-fade" v-if="myShow">
<div class="ls-mask" v-loading="loading">
......@@ -21,7 +26,7 @@
</transition>
</template>
<script>
export default {
export default {
name: 'index',
data () {
return {
......@@ -123,10 +128,10 @@ export default {
this.$el.parentNode.removeChild(this.$el);
}
}
}
}
</script>
<style scoped lang="scss" >
.ls-mask {
.ls-mask {
width: 100%;
height: 100%;
z-index: 2000;
......@@ -134,10 +139,9 @@ export default {
left: 0;
top: 0;
background: rgba(0, 0, 0, 0.3);
}
}
.ls-mask-window {
.ls-mask-window {
background: white;
position: relative;
left: 50%;
......@@ -146,32 +150,32 @@ export default {
transform: translate(-50%, -50%);
border-radius: 5px;
overflow: hidden;
}
}
.ls-mask-window b {
.ls-mask-window b {
padding-left: 5px;
}
}
.ls-title {
.ls-title {
padding: 16px;
color: #ffffff;
font-size: 16px;
background: linear-gradient(3deg, #409EFF, #a7cbee);
}
background: linear-gradient(3deg, #409eff, #a7cbee);
}
.ls-title .svg-icon {
.ls-title .svg-icon {
font-size: 18px;
}
}
.mask-content {
.mask-content {
padding: 20px;
width: 100%;
min-height: 30%;
max-height: 90vh;
overflow-y: scroll;
}
}
.ls-mask-footer {
.ls-mask-footer {
height: 50px;
display: flex;
justify-content: center;
......@@ -183,19 +187,18 @@ export default {
border-bottom-left-radius: 5px;
border-bottom-right-radius: 5px;
overflow: hidden;
}
}
/deep/.closeStyle {
/deep/.closeStyle {
position: absolute;
top: 13px;
right: 26px;
font-size: 24px;
cursor: pointer;
color: #409EFF;
}
color: #409eff;
}
/deep/.el-loading-mask {
/deep/.el-loading-mask {
background: none;
}
}
</style>
......
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-07-25 16:08:30
-->
<template>
<transition name="msgbox-fade">
<div class="ls-mask" v-if="myShow">
......
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-07-25 16:08:55
-->
<!--显示svg文件图标-->
<template>
<div v-if="isExternal" :style="styleExternalIcon" class="svg-external-icon svg-icon" v-on="$listeners" />
......@@ -5,12 +10,11 @@
<use :xlink:href="iconName" />
</svg>
</template>
<script>
// doc: https://panjiachen.github.io/vue-element-admin-site/feature/component/svg-icon.html#usage
import { isExternal } from '@/utils/validate'
// doc: https://panjiachen.github.io/vue-element-admin-site/feature/component/svg-icon.html#usage
import { isExternal } from '@/utils/validate'
export default {
export default {
name: 'SvgIcon',
props: {
iconClass: {
......@@ -23,41 +27,41 @@ export default {
}
},
computed: {
isExternal() {
isExternal () {
return isExternal(this.iconClass)
},
iconName() {
iconName () {
return `#icon-${this.iconClass}`
},
svgClass() {
svgClass () {
if (this.className) {
return 'svg-icon ' + this.className
} else {
return 'svg-icon'
}
},
styleExternalIcon() {
styleExternalIcon () {
return {
mask: `url(${this.iconClass}) no-repeat 50% 50%`,
'-webkit-mask': `url(${this.iconClass}) no-repeat 50% 50%`
}
}
}
}
}
</script>
<style scoped>
.svg-icon {
.svg-icon {
width: 1em;
height: 1em;
vertical-align: -0.15em;
fill: currentColor;
overflow: hidden;
}
}
.svg-external-icon {
.svg-external-icon {
background-color: currentColor;
mask-size: cover!important;
mask-size: cover !important;
display: inline-block;
}
}
</style>
......
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-07-25 16:09:09
-->
<template>
<el-color-picker v-model="theme"
:predefine="['#409EFF', '#1890ff', '#304156', '#212121', '#11a983', '#13c2c2', '#6959CD', '#f5222d',]"
......@@ -5,10 +10,10 @@
</template>
<script>
const version = require('element-ui/package.json').version // element-ui version from node_modules
const ORIGINAL_THEME = '#409EFF' // default color
const version = require('element-ui/package.json').version // element-ui version from node_modules
const ORIGINAL_THEME = '#409EFF' // default color
export default {
export default {
data () {
return {
chalk: '', // content of theme-chalk css
......@@ -169,22 +174,22 @@ export default {
return clusters
}
}
}
}
</script>
<style>
.theme-message,
.theme-picker-dropdown {
.theme-message,
.theme-picker-dropdown {
z-index: 99999 !important;
}
}
.theme-picker .el-color-picker__trigger {
.theme-picker .el-color-picker__trigger {
height: 26px !important;
width: 26px !important;
padding: 2px;
}
}
.theme-picker-dropdown .el-color-dropdown__link-btn {
.theme-picker-dropdown .el-color-dropdown__link-btn {
display: none;
}
}
</style>
......
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-07-25 16:08:48
-->
<template>
<el-image-viewer :on-close="closeViewer" :url-list="urlList">
</el-image-viewer>
</template>
<script>
import ElImageViewer from 'element-ui/packages/image/src/image-viewer'
export default {
import ElImageViewer from 'element-ui/packages/image/src/image-viewer'
export default {
components: {
ElImageViewer,
},
......@@ -90,11 +95,11 @@ export default {
xhr.send()
},
},
}
}
</script>
<style lang="scss" scoped>
/deep/ .el-image-viewer__close {
/deep/ .el-image-viewer__close {
color: #ffffff;
}
}
</style>
......
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-07-25 16:09:44
-->
<template>
<transition name="msgbox-fade">
<div class="ls-mask" v-if="myShow">
......
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-07-25 16:10:52
-->
<template>
<div class="app-wrapper">
<navbar />
......@@ -11,10 +16,10 @@
</div>
</template>
<script>
import { AppMain, Navbar, Sidebar, TagsView } from './components'
import ResizeMixin from './mixin/ResizeHandler'
import { mapState } from 'vuex'
export default {
import { AppMain, Navbar, Sidebar, TagsView } from './components'
import ResizeMixin from './mixin/ResizeHandler'
import { mapState } from 'vuex'
export default {
name: 'Layout',
components: {
AppMain,
......@@ -30,12 +35,12 @@ export default {
fixedHeader: state => state.settings.fixedHeader
})
}
}
}
</script>
<style lang="scss" scoped>
@import "~@/styles/mixin.scss";
@import "~@/styles/mixin.scss";
.app-wrapper {
.app-wrapper {
@include clearfix;
position: relative;
height: 100%;
......@@ -45,9 +50,9 @@ export default {
position: fixed;
top: 0;
}
}
}
.drawer-bg {
.drawer-bg {
background: #000;
opacity: 0.3;
width: 100%;
......@@ -55,15 +60,15 @@ export default {
height: 100%;
position: absolute;
z-index: 999;
}
}
.fixed-header {
.fixed-header {
width: 100%;
transition: width 0.28s;
}
}
.el-dropdown-menu--small {
.el-dropdown-menu--small {
padding: 0;
width: 5px;
}
}
</style>
......
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-07-24 09:39:34
* @LastEditTime: 2023-07-25 16:15:39
-->
<template>
<div class="container">
......@@ -158,7 +158,6 @@
this.fresh++;
//获取单元对应的所有表单信息
this.tabList = res.result;
console.log(res.result, 'res.result');
//默认加载第一个表单信息
let arr = res.result.filter(item => item.defaultForm)
if (arr.length > 0) {
......
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-06-09 16:55:31
* @LastEditTime: 2023-07-25 16:15:46
-->
<template>
<div class="container">
......@@ -125,7 +125,13 @@
//获取单元对应的所有表单信息
this.tabList = res.result;
//默认加载第一个表单信息
//默认加载第一个表单信息
let arr = res.result.filter(item => item.defaultForm)
if (arr.length > 0) {
this.tabName = arr[0].value;
} else {
this.tabName = res.result[0].value;
}
this.ableOperation = this.tabList[0].ableOperation
//批量操作无分屏按钮
if (index != null) {
......