Merge branch 'build' of http://git.sinoecare.com/sinoecare/digital_village_v2/dvcp_v2_webapp into build
This commit is contained in:
@@ -3,13 +3,23 @@
|
||||
<config-item label="数据类型">
|
||||
<ai-select v-model="source.dataType" placeholder="请选择数据类型" :select-list="dataTypes"/>
|
||||
</config-item>
|
||||
<div class="codeEditor" v-if="['htmlData','staticData'].includes(source.dataType)">
|
||||
<div class="codeEditor" v-if="['htmlData'].includes(source.dataType)">
|
||||
<ai-dialog-btn :modal="false" dialog-title="编辑器" :customFooter="false"
|
||||
@confirm="changeData(JSON.parse(content))" @open="content=contentstr">
|
||||
<code-editor slot="btn" readonly :value="contentstr" :lang="dataLang" theme="github" width="100%" height="250"/>
|
||||
<code-editor v-model="content" :lang="dataLang" theme="github" width="100%" height="440" wrap/>
|
||||
</ai-dialog-btn>
|
||||
</div>
|
||||
<template v-else-if="source.dataType === 'staticData'">
|
||||
<config-item label="设置列" class="tableStyle">
|
||||
<div class="fill">
|
||||
<table-editor v-model="colConfigs" :configs="[{field:'field',headerName:'属性',width:100},{field:'headerName',headerName:'名称',width:100}]"/>
|
||||
</div>
|
||||
</config-item>
|
||||
<config-item label="设置数据" class="tableStyle" v-if="colConfigs.length>0">
|
||||
<table-editor v-model="content" :configs="colConfigs"/>
|
||||
</config-item>
|
||||
</template>
|
||||
<config-item v-else-if="source.dataType === 'dynamicData'" label="数据源">
|
||||
<ai-select v-model="source.sourceDataId" placeholder="请选择数据源" :instance="instance"
|
||||
:prop="{label:'description'}" @change="changeData"
|
||||
@@ -29,10 +39,11 @@ import 'brace/mode/json'
|
||||
import 'brace/snippets/json';
|
||||
import 'brace/theme/github';
|
||||
import 'brace/theme/monokai';
|
||||
import TableEditor from "./tableEditor.vue";
|
||||
|
||||
export default {
|
||||
name: "datasourcePicker",
|
||||
components: {ConfigItem, AiDialogBtn, CodeEditor},
|
||||
components: {TableEditor, ConfigItem, AiDialogBtn, CodeEditor},
|
||||
model: {
|
||||
event: "input",
|
||||
prop: "options"
|
||||
@@ -45,7 +56,8 @@ export default {
|
||||
return {
|
||||
dataTypes: Object.entries(DvCompData.types).map(e => ({id: e[0], label: e[1]})),
|
||||
content: "",
|
||||
loading: false
|
||||
loading: false,
|
||||
colConfigs: []
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
@@ -76,5 +88,9 @@ export default {
|
||||
position: relative;
|
||||
padding-left: 10px;
|
||||
}
|
||||
|
||||
.tableStyle {
|
||||
align-items: normal;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
42
packages/bigscreen/designer/components/tableEditor.vue
Normal file
42
packages/bigscreen/designer/components/tableEditor.vue
Normal file
@@ -0,0 +1,42 @@
|
||||
<script>
|
||||
import Vue from 'vue'
|
||||
|
||||
console.log(window.AVUE)
|
||||
export default {
|
||||
name: "tableEditor",
|
||||
model: {
|
||||
event: "input",
|
||||
prop: "tableData"
|
||||
},
|
||||
props: {
|
||||
tableData: {default: () => []},
|
||||
configs: {default: () => []}
|
||||
},
|
||||
computed: {
|
||||
columns: v => v.configs
|
||||
},
|
||||
created() {
|
||||
Vue.use(window.AVUE, {
|
||||
size: 'small',
|
||||
tableSize: 'small',
|
||||
calcHeight: 48,
|
||||
})
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<section class="tableEditor">
|
||||
<avue-crud/>
|
||||
</section>
|
||||
</template>
|
||||
<style scoped lang="scss">
|
||||
.tableEditor {
|
||||
width: 100%;
|
||||
height: auto;
|
||||
|
||||
.ag-theme-balham {
|
||||
height: 300px;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -7,18 +7,18 @@
|
||||
<ai-search-bar>
|
||||
<template #left>
|
||||
<ai-select
|
||||
v-model="search.type"
|
||||
@change="search.current = 1, getList()"
|
||||
placeholder="请选择相册主题"
|
||||
:selectList="dict.getDict('villagePictureAlbumType')">
|
||||
v-model="search.type"
|
||||
@change="search.current = 1, getList()"
|
||||
placeholder="请选择相册主题"
|
||||
:selectList="dict.getDict('villagePictureAlbumType')">
|
||||
</ai-select>
|
||||
<el-date-picker
|
||||
v-model="search.timeTag"
|
||||
type="month"
|
||||
size="small"
|
||||
@change="search.current = 1, getList()"
|
||||
value-format="yyyy-MM"
|
||||
placeholder="请选择日期">
|
||||
v-model="search.timeTag"
|
||||
type="month"
|
||||
size="small"
|
||||
@change="search.current = 1, getList()"
|
||||
value-format="yyyy-MM"
|
||||
placeholder="请选择日期">
|
||||
</el-date-picker>
|
||||
</template>
|
||||
</ai-search-bar>
|
||||
@@ -41,17 +41,17 @@
|
||||
</div>
|
||||
<div class="list-item__operate">
|
||||
<el-button
|
||||
type="text"
|
||||
icon="iconfont iconExported"
|
||||
class="list-item__operate--item"
|
||||
@click="downloadImg(item.url, dict.getLabel('villagePictureAlbumType', item.type))">
|
||||
type="text"
|
||||
icon="iconfont iconExported"
|
||||
class="list-item__operate--item"
|
||||
@click="downloadImg(item.url, dict.getLabel('villagePictureAlbumType', item.type))">
|
||||
下载
|
||||
</el-button>
|
||||
<el-button
|
||||
@click="remove(item.id)"
|
||||
type="text"
|
||||
icon="iconfont iconDelete"
|
||||
class="list-item__operate--item">
|
||||
@click="remove(item.id)"
|
||||
type="text"
|
||||
icon="iconfont iconDelete"
|
||||
class="list-item__operate--item">
|
||||
删除
|
||||
</el-button>
|
||||
</div>
|
||||
@@ -66,473 +66,473 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { mapState } from 'vuex'
|
||||
import Viewer from 'v-viewer'
|
||||
import Vue from 'vue'
|
||||
Vue.use(Viewer)
|
||||
import {mapState} from 'vuex'
|
||||
|
||||
export default {
|
||||
name: 'FormList',
|
||||
props: {
|
||||
instance: Function,
|
||||
dict: Object,
|
||||
areaId: String
|
||||
},
|
||||
export default {
|
||||
name: 'FormList',
|
||||
props: {
|
||||
instance: Function,
|
||||
dict: Object,
|
||||
areaId: String
|
||||
},
|
||||
|
||||
data () {
|
||||
return {
|
||||
search: {
|
||||
current: 1,
|
||||
areaId: '',
|
||||
size: 1000000,
|
||||
type: '',
|
||||
timeTag: ''
|
||||
},
|
||||
isShowAdd: false,
|
||||
form: {
|
||||
},
|
||||
list: [],
|
||||
total: 0,
|
||||
loading: false,
|
||||
id: '',
|
||||
disabledLevel: 0
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
search: {
|
||||
current: 1,
|
||||
areaId: '',
|
||||
size: 1000000,
|
||||
type: '',
|
||||
timeTag: ''
|
||||
},
|
||||
isShowAdd: false,
|
||||
form: {},
|
||||
list: [],
|
||||
total: 0,
|
||||
loading: false,
|
||||
id: '',
|
||||
disabledLevel: 0
|
||||
}
|
||||
},
|
||||
|
||||
computed: {
|
||||
...mapState(['user']),
|
||||
computed: {
|
||||
...mapState(['user']),
|
||||
|
||||
imgList () {
|
||||
return this.list.map(v => v.url)
|
||||
}
|
||||
},
|
||||
imgList() {
|
||||
return this.list.map(v => v.url)
|
||||
}
|
||||
},
|
||||
|
||||
created () {
|
||||
created() {
|
||||
this.loading = true
|
||||
this.disabledLevel = this.user.info.areaList.length - 1
|
||||
this.search.areaId = this.user.info.areaId
|
||||
this.dict.load(['villagePictureAlbumType']).then(() => {
|
||||
this.getList()
|
||||
})
|
||||
},
|
||||
|
||||
methods: {
|
||||
changeArea() {
|
||||
this.loading = true
|
||||
this.disabledLevel = this.user.info.areaList.length - 1
|
||||
this.search.areaId = this.user.info.areaId
|
||||
this.dict.load(['villagePictureAlbumType']).then(() => {
|
||||
this.search.current = 1
|
||||
|
||||
this.$nextTick(() => {
|
||||
this.getList()
|
||||
})
|
||||
},
|
||||
|
||||
methods: {
|
||||
changeArea () {
|
||||
this.loading = true
|
||||
this.search.current = 1
|
||||
prevImg(index) {
|
||||
const viewer = this.$el.querySelector('.images').$viewer
|
||||
viewer.view(index)
|
||||
},
|
||||
|
||||
this.$nextTick(() => {
|
||||
this.getList()
|
||||
})
|
||||
},
|
||||
|
||||
prevImg (index) {
|
||||
const viewer = this.$el.querySelector('.images').$viewer
|
||||
viewer.view(index)
|
||||
},
|
||||
|
||||
getList () {
|
||||
this.instance.post(`/app/appvillagepicturealbum/list`, null, {
|
||||
params: {
|
||||
...this.search
|
||||
}
|
||||
}).then(res => {
|
||||
if (res.code == 0) {
|
||||
this.list = res.data.records
|
||||
this.total = res.data.total
|
||||
this.loading = false
|
||||
} else {
|
||||
this.loading = false
|
||||
}
|
||||
}).catch(() => {
|
||||
this.loading = false
|
||||
})
|
||||
},
|
||||
|
||||
remove (id) {
|
||||
this.$confirm('确定删除该相片?').then(() => {
|
||||
this.instance.post(`/app/appvillagepicturealbum/delete?ids=${id}`).then(res => {
|
||||
if (res.code == 0) {
|
||||
this.$message.success('删除成功!')
|
||||
this.getList()
|
||||
}
|
||||
})
|
||||
})
|
||||
},
|
||||
|
||||
downloadImg (url, name) {
|
||||
let image = new Image()
|
||||
image.setAttribute('crossOrigin', 'anonymous')
|
||||
image.onload = function() {
|
||||
let canvas = document.createElement('canvas')
|
||||
canvas.width = image.width
|
||||
canvas.height = image.height
|
||||
let context = canvas.getContext('2d')
|
||||
context.drawImage(image, 0, 0, image.width, image.height)
|
||||
let url = canvas.toDataURL("image/png")
|
||||
let a = document.createElement("a")
|
||||
let event = new MouseEvent("click")
|
||||
a.download = name
|
||||
a.href = url
|
||||
a.dispatchEvent(event)
|
||||
getList() {
|
||||
this.instance.post(`/app/appvillagepicturealbum/list`, null, {
|
||||
params: {
|
||||
...this.search
|
||||
}
|
||||
image.src = url
|
||||
},
|
||||
}).then(res => {
|
||||
if (res.code == 0) {
|
||||
this.list = res.data.records
|
||||
this.total = res.data.total
|
||||
this.loading = false
|
||||
} else {
|
||||
this.loading = false
|
||||
}
|
||||
}).catch(() => {
|
||||
this.loading = false
|
||||
})
|
||||
},
|
||||
|
||||
toStop (id) {
|
||||
this.$confirm('确定停止该表单?').then(() => {
|
||||
this.instance.post(`/app/appquestionnairetemplate/stopRelease?id=${id}`).then(res => {
|
||||
if (res.code === 0) {
|
||||
this.$message.success('停止成功!')
|
||||
this.getList()
|
||||
remove(id) {
|
||||
this.$confirm('确定删除该相片?').then(() => {
|
||||
this.instance.post(`/app/appvillagepicturealbum/delete?ids=${id}`).then(res => {
|
||||
if (res.code == 0) {
|
||||
this.$message.success('删除成功!')
|
||||
this.getList()
|
||||
}
|
||||
})
|
||||
})
|
||||
},
|
||||
|
||||
downloadImg(url, name) {
|
||||
let image = new Image()
|
||||
image.setAttribute('crossOrigin', 'anonymous')
|
||||
image.onload = function () {
|
||||
let canvas = document.createElement('canvas')
|
||||
canvas.width = image.width
|
||||
canvas.height = image.height
|
||||
let context = canvas.getContext('2d')
|
||||
context.drawImage(image, 0, 0, image.width, image.height)
|
||||
let url = canvas.toDataURL("image/png")
|
||||
let a = document.createElement("a")
|
||||
let event = new MouseEvent("click")
|
||||
a.download = name
|
||||
a.href = url
|
||||
a.dispatchEvent(event)
|
||||
}
|
||||
image.src = url
|
||||
},
|
||||
|
||||
toStop(id) {
|
||||
this.$confirm('确定停止该表单?').then(() => {
|
||||
this.instance.post(`/app/appquestionnairetemplate/stopRelease?id=${id}`).then(res => {
|
||||
if (res.code === 0) {
|
||||
this.$message.success('停止成功!')
|
||||
this.getList()
|
||||
}
|
||||
})
|
||||
})
|
||||
},
|
||||
|
||||
showShare(info, isPreview) {
|
||||
this.loading = true
|
||||
this.info = info
|
||||
|
||||
this.instance.post(`/app/appquestionnairetemplate/queryQrCode?id=${info.id}`).then(res => {
|
||||
if (res.code == 0) {
|
||||
this.info.linkUrl = res.data.linkUrl
|
||||
this.info.qrCodeUrl = res.data.qrCodeUrl
|
||||
|
||||
this.$nextTick(() => {
|
||||
if (isPreview) {
|
||||
this.isShowPreview = true
|
||||
this.info.linkUrl = `${res.data.linkUrl}&preview=true#form`
|
||||
} else {
|
||||
this.isShowSuccess = true
|
||||
}
|
||||
})
|
||||
})
|
||||
},
|
||||
}
|
||||
|
||||
showShare (info, isPreview) {
|
||||
this.loading = true
|
||||
this.info = info
|
||||
this.loading = false
|
||||
}).catch(() => {
|
||||
this.loading = false
|
||||
})
|
||||
},
|
||||
|
||||
this.instance.post(`/app/appquestionnairetemplate/queryQrCode?id=${info.id}`).then(res => {
|
||||
if (res.code == 0) {
|
||||
this.info.linkUrl = res.data.linkUrl
|
||||
this.info.qrCodeUrl = res.data.qrCodeUrl
|
||||
|
||||
this.$nextTick(() => {
|
||||
if (isPreview) {
|
||||
this.isShowPreview = true
|
||||
this.info.linkUrl = `${res.data.linkUrl}&preview=true#form`
|
||||
} else {
|
||||
this.isShowSuccess = true
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
this.loading = false
|
||||
}).catch(() => {
|
||||
this.loading = false
|
||||
})
|
||||
},
|
||||
|
||||
toAdd (id) {
|
||||
this.$emit('change', {
|
||||
type: 'add',
|
||||
params: {
|
||||
id
|
||||
}
|
||||
})
|
||||
}
|
||||
toAdd(id) {
|
||||
this.$emit('change', {
|
||||
type: 'add',
|
||||
params: {
|
||||
id
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.list {
|
||||
:deep( .ai-list__content ){
|
||||
width: 100%;
|
||||
.ai-list__content--right {
|
||||
width: 100%!important;
|
||||
.list {
|
||||
:deep( .ai-list__content ) {
|
||||
width: 100%;
|
||||
|
||||
.ai-list__content--right-wrapper {
|
||||
padding: 0!important;
|
||||
background: transparent!important;
|
||||
box-shadow: none!important;
|
||||
}
|
||||
.ai-list__content--right {
|
||||
width: 100% !important;
|
||||
|
||||
.ai-list__content--right-wrapper {
|
||||
padding: 0 !important;
|
||||
background: transparent !important;
|
||||
box-shadow: none !important;
|
||||
}
|
||||
}
|
||||
:deep(.el-pager ){
|
||||
li.active + li {
|
||||
border-left: 1px solid #D0D4DC;
|
||||
}
|
||||
}
|
||||
|
||||
:deep(.el-pager ) {
|
||||
li.active + li {
|
||||
border-left: 1px solid #D0D4DC;
|
||||
}
|
||||
}
|
||||
|
||||
.newPagination {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
height: 64px;
|
||||
padding: 0 40px !important;
|
||||
|
||||
.el-pagination {
|
||||
width: 100%;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.newPagination {
|
||||
width: 100%;
|
||||
:deep( .el-pager li.active ) {
|
||||
background-color: #fff !important;
|
||||
color: #2266FF !important;
|
||||
border-color: #2266FF;
|
||||
}
|
||||
|
||||
:deep( .el-pager li ) {
|
||||
background-color: #fff;
|
||||
border: solid 1px #d0d4dc;
|
||||
margin-left: 8px;
|
||||
border-radius: 4px !important;
|
||||
line-height: 26px !important;
|
||||
}
|
||||
|
||||
.paginationPre {
|
||||
display: flex;
|
||||
height: 28px;
|
||||
line-height: 1;
|
||||
font-size: 14px;
|
||||
font-weight: normal;
|
||||
align-items: center;
|
||||
height: 64px;
|
||||
padding: 0 40px!important;
|
||||
|
||||
.el-pagination {
|
||||
width: 100%;
|
||||
padding: 0;
|
||||
}
|
||||
:deep( .el-pager li.active ){
|
||||
background-color: #fff !important;
|
||||
color: #2266FF !important;
|
||||
border-color: #2266FF;
|
||||
}
|
||||
|
||||
:deep( .el-pager li ){
|
||||
background-color: #fff;
|
||||
border: solid 1px #d0d4dc;
|
||||
margin-left: 8px;
|
||||
border-radius: 4px !important;
|
||||
line-height: 26px !important;
|
||||
}
|
||||
|
||||
.paginationPre {
|
||||
.pagination-btns {
|
||||
display: flex;
|
||||
height: 28px;
|
||||
line-height: 1;
|
||||
font-size: 14px;
|
||||
font-weight: normal;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
color: #2266FF !important;
|
||||
|
||||
.pagination-btns {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
:deep( span), :deep( div ) {
|
||||
font-size: 12px;
|
||||
cursor: pointer;
|
||||
color: #2266FF !important;
|
||||
|
||||
:deep( span), :deep( div ){
|
||||
font-size: 12px;
|
||||
cursor: pointer;
|
||||
color: #2266FF !important;
|
||||
|
||||
&:hover {
|
||||
opacity: 0.8;
|
||||
}
|
||||
&:hover {
|
||||
opacity: 0.8;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.paginationPre-total {
|
||||
font-size: 12px;
|
||||
color: #555;
|
||||
.paginationPre-total {
|
||||
font-size: 12px;
|
||||
color: #555;
|
||||
|
||||
label {
|
||||
padding: 0 2px;
|
||||
font-weight: 700;
|
||||
}
|
||||
label {
|
||||
padding: 0 2px;
|
||||
font-weight: 700;
|
||||
}
|
||||
}
|
||||
|
||||
& > * + * {
|
||||
margin-left: 24px;
|
||||
}
|
||||
& > * + * {
|
||||
margin-left: 24px;
|
||||
}
|
||||
|
||||
:deep( .el-pagination button), .el-pagination span:not([class*=suffix]) {
|
||||
:deep( .el-pagination button), .el-pagination span:not([class*=suffix]) {
|
||||
line-height: 1 !important;
|
||||
}
|
||||
|
||||
:deep(.el-checkbox ) {
|
||||
padding-left: 14px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
.el-checkbox__input, .el-checkbox__inner {
|
||||
width: 14px;
|
||||
height: 14px;
|
||||
min-width: 0 !important;
|
||||
line-height: 1 !important;
|
||||
}
|
||||
|
||||
:deep(.el-checkbox ){
|
||||
padding-left: 14px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
.el-checkbox__input, .el-checkbox__inner {
|
||||
width: 14px;
|
||||
height: 14px;
|
||||
min-width: 0 !important;
|
||||
line-height: 1 !important;
|
||||
}
|
||||
|
||||
.el-checkbox__label {
|
||||
font-size: 12px;
|
||||
color: #222222;
|
||||
height: auto !important;
|
||||
line-height: 1 !important;
|
||||
padding-left: 3px !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.form-list__list {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
margin-top: 8px;
|
||||
|
||||
.list-item {
|
||||
display: flex;
|
||||
position: relative;
|
||||
flex-direction: column;
|
||||
justify-content: space-between;
|
||||
margin-bottom: 12px;
|
||||
padding: 18px 16px 16px;
|
||||
|
||||
.list-item__img {
|
||||
width: 100%;
|
||||
height: 140px;
|
||||
cursor: pointer;
|
||||
|
||||
img {
|
||||
width: 100%;
|
||||
height: 140px;
|
||||
object-fit: none;
|
||||
}
|
||||
}
|
||||
|
||||
&:hover {
|
||||
.list-item__operate {
|
||||
display: flex;
|
||||
}
|
||||
}
|
||||
|
||||
.list-item__operate {
|
||||
display: none;
|
||||
align-items: center;
|
||||
position: absolute;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
z-index: 1;
|
||||
width: 100%;
|
||||
height: 52px;
|
||||
text-align: center;
|
||||
background: #F7F8FA;
|
||||
|
||||
& > div {
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
:deep( .el-button ){
|
||||
margin-left: 0;
|
||||
padding: 0;
|
||||
i {
|
||||
color: #8899BB;
|
||||
font-size: 14px;
|
||||
transition: all 0.3s;
|
||||
}
|
||||
|
||||
.el-button + .el-button {
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
span {
|
||||
margin-left: 0;
|
||||
color: #555555;
|
||||
font-size: 12px;
|
||||
transition: all 0.3s;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
&.is-disabled {
|
||||
i {
|
||||
color: #8899BB;
|
||||
}
|
||||
|
||||
span {
|
||||
color: #555555;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.list-item__operate--item {
|
||||
flex: 1;
|
||||
|
||||
&:hover {
|
||||
:deep( i), :deep( span ){
|
||||
color: #2266FF;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.list-item__bottom {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
color: #888888;
|
||||
.el-checkbox__label {
|
||||
font-size: 12px;
|
||||
|
||||
i {
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
.left {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
.tag {
|
||||
height: 26px;
|
||||
line-height: 26px;
|
||||
margin-right: 8px;
|
||||
padding: 0 6px;
|
||||
border-radius: 4px;
|
||||
background: #42D784;
|
||||
color: #fff;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
p {
|
||||
line-height: 22px;
|
||||
color: #333333;
|
||||
font-size: 14px;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.list-item__user {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-top: 12px;
|
||||
color: #888888;
|
||||
font-size: 12px;
|
||||
line-height: 20px;
|
||||
|
||||
& > div:first-child {
|
||||
margin-right: 8px;
|
||||
}
|
||||
}
|
||||
|
||||
.list-item__title {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
margin-bottom: 14px;
|
||||
|
||||
h2 {
|
||||
color: #2EA222;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
span {
|
||||
width: 64px;
|
||||
height: 24px;
|
||||
line-height: 24px;
|
||||
text-align: center;
|
||||
border-radius: 4px;
|
||||
font-size: 12px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.list-add {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
flex-direction: column;
|
||||
padding: 0;
|
||||
cursor: pointer;
|
||||
|
||||
span {
|
||||
font-size: 32px;
|
||||
color: #8899bb;
|
||||
}
|
||||
|
||||
h2 {
|
||||
color: #555555;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
opacity: 0.6;
|
||||
}
|
||||
}
|
||||
|
||||
& > div {
|
||||
width: calc((100% - 60px) / 4);
|
||||
height: 216px;
|
||||
margin: 0 20px 20px 0;
|
||||
background: #FFFFFF;
|
||||
box-shadow: 0px 4px 8px 0px rgba(0, 0, 0, 0.05);
|
||||
border-radius: 2px;
|
||||
|
||||
&:nth-of-type(4n) {
|
||||
margin-right: 0;
|
||||
color: #222222;
|
||||
height: auto !important;
|
||||
line-height: 1 !important;
|
||||
padding-left: 3px !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.form-list__list {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
margin-top: 8px;
|
||||
|
||||
.list-item {
|
||||
display: flex;
|
||||
position: relative;
|
||||
flex-direction: column;
|
||||
justify-content: space-between;
|
||||
margin-bottom: 12px;
|
||||
padding: 18px 16px 16px;
|
||||
|
||||
.list-item__img {
|
||||
width: 100%;
|
||||
height: 140px;
|
||||
cursor: pointer;
|
||||
|
||||
img {
|
||||
width: 100%;
|
||||
height: 140px;
|
||||
object-fit: none;
|
||||
}
|
||||
}
|
||||
|
||||
&:hover {
|
||||
.list-item__operate {
|
||||
display: flex;
|
||||
}
|
||||
}
|
||||
|
||||
.list-item__operate {
|
||||
display: none;
|
||||
align-items: center;
|
||||
position: absolute;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
z-index: 1;
|
||||
width: 100%;
|
||||
height: 52px;
|
||||
text-align: center;
|
||||
background: #F7F8FA;
|
||||
|
||||
& > div {
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
:deep( .el-button ) {
|
||||
margin-left: 0;
|
||||
padding: 0;
|
||||
|
||||
i {
|
||||
color: #8899BB;
|
||||
font-size: 14px;
|
||||
transition: all 0.3s;
|
||||
}
|
||||
|
||||
.el-button + .el-button {
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
span {
|
||||
margin-left: 0;
|
||||
color: #555555;
|
||||
font-size: 12px;
|
||||
transition: all 0.3s;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
&.is-disabled {
|
||||
i {
|
||||
color: #8899BB;
|
||||
}
|
||||
|
||||
span {
|
||||
color: #555555;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.list-item__operate--item {
|
||||
flex: 1;
|
||||
|
||||
&:hover {
|
||||
:deep( i), :deep( span ) {
|
||||
color: #2266FF;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.list-item__bottom {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
color: #888888;
|
||||
font-size: 12px;
|
||||
|
||||
i {
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
.left {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
.tag {
|
||||
height: 26px;
|
||||
line-height: 26px;
|
||||
margin-right: 8px;
|
||||
padding: 0 6px;
|
||||
border-radius: 4px;
|
||||
background: #42D784;
|
||||
color: #fff;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
p {
|
||||
line-height: 22px;
|
||||
color: #333333;
|
||||
font-size: 14px;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.list-item__user {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-top: 12px;
|
||||
color: #888888;
|
||||
font-size: 12px;
|
||||
line-height: 20px;
|
||||
|
||||
& > div:first-child {
|
||||
margin-right: 8px;
|
||||
}
|
||||
}
|
||||
|
||||
.list-item__title {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
margin-bottom: 14px;
|
||||
|
||||
h2 {
|
||||
color: #2EA222;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
span {
|
||||
width: 64px;
|
||||
height: 24px;
|
||||
line-height: 24px;
|
||||
text-align: center;
|
||||
border-radius: 4px;
|
||||
font-size: 12px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.list-add {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
flex-direction: column;
|
||||
padding: 0;
|
||||
cursor: pointer;
|
||||
|
||||
span {
|
||||
font-size: 32px;
|
||||
color: #8899bb;
|
||||
}
|
||||
|
||||
h2 {
|
||||
color: #555555;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
opacity: 0.6;
|
||||
}
|
||||
}
|
||||
|
||||
& > div {
|
||||
width: calc((100% - 60px) / 4);
|
||||
height: 216px;
|
||||
margin: 0 20px 20px 0;
|
||||
background: #FFFFFF;
|
||||
box-shadow: 0px 4px 8px 0px rgba(0, 0, 0, 0.05);
|
||||
border-radius: 2px;
|
||||
|
||||
&:nth-of-type(4n) {
|
||||
margin-right: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -47,28 +47,28 @@
|
||||
</span>
|
||||
</span>
|
||||
<span class="value" v-else>-</span></el-form-item>
|
||||
<!-- <ai-title title="附件" isShowBottomBorder>-->
|
||||
<!-- <template #rightBtn>-->
|
||||
<!-- <el-button type="text" icon="iconfont iconDownload" @click="downLoadAll">下载全部</el-button>-->
|
||||
<!-- </template>-->
|
||||
<!-- </ai-title>-->
|
||||
<!-- <el-form-item label-width="0">-->
|
||||
<!-- <div v-if="obj.annex.length">-->
|
||||
<!-- <div class="flie" v-for="(item, index) in obj.annex" :key="index"-->
|
||||
<!-- @click="downFile(item)">-->
|
||||
<!-- <p>-->
|
||||
<!-- <svg aria-hidden="true" style="width:24px;height:24px;">-->
|
||||
<!-- <use xlink:href="#iconAppendix_UNdownload"></use>-->
|
||||
<!-- </svg>-->
|
||||
<!-- <span>{{ item.name }}</span>-->
|
||||
<!-- </p>-->
|
||||
<!-- <span style="color:#999;">{{ (item.size / 1024).toFixed(2) + "KB" }}-->
|
||||
<!-- <span class="iconfont iconDownload" style="color:#5088FF"></span>-->
|
||||
<!-- </span>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- <div class="no-data" style="height:160px;width:100%;" v-else></div>-->
|
||||
<!-- </el-form-item>-->
|
||||
<!-- <ai-title title="附件" isShowBottomBorder>-->
|
||||
<!-- <template #rightBtn>-->
|
||||
<!-- <el-button type="text" icon="iconfont iconDownload" @click="downLoadAll">下载全部</el-button>-->
|
||||
<!-- </template>-->
|
||||
<!-- </ai-title>-->
|
||||
<!-- <el-form-item label-width="0">-->
|
||||
<!-- <div v-if="obj.annex.length">-->
|
||||
<!-- <div class="flie" v-for="(item, index) in obj.annex" :key="index"-->
|
||||
<!-- @click="downFile(item)">-->
|
||||
<!-- <p>-->
|
||||
<!-- <svg aria-hidden="true" style="width:24px;height:24px;">-->
|
||||
<!-- <use xlink:href="#iconAppendix_UNdownload"></use>-->
|
||||
<!-- </svg>-->
|
||||
<!-- <span>{{ item.name }}</span>-->
|
||||
<!-- </p>-->
|
||||
<!-- <span style="color:#999;">{{ (item.size / 1024).toFixed(2) + "KB" }}-->
|
||||
<!-- <span class="iconfont iconDownload" style="color:#5088FF"></span>-->
|
||||
<!-- </span>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- <div class="no-data" style="height:160px;width:100%;" v-else></div>-->
|
||||
<!-- </el-form-item>-->
|
||||
<ai-title title="人员信息" isShowBottomBorder/>
|
||||
<el-form-item label="与会组织">{{ arrLabel(obj.appThreeMeetingOrganizationList, 'name') }}</el-form-item>
|
||||
<el-form-item label="主持人">{{ arrLabel(obj.hostList, 'userName') }}</el-form-item>
|
||||
@@ -213,12 +213,8 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import Vue from 'vue'
|
||||
import {mapState} from "vuex";
|
||||
import moment from 'dayjs';
|
||||
import Viewer from 'v-viewer'
|
||||
|
||||
Vue.use(Viewer)
|
||||
|
||||
export default {
|
||||
name: "meetingDetail",
|
||||
@@ -272,7 +268,7 @@ export default {
|
||||
voteConfigs() {
|
||||
return [
|
||||
{label: "人员姓名", prop: "userName", align: 'center'},
|
||||
{label: "投票选项", prop: "myVote", format: v => v ? (v === '1' ? '同意' : '不同意') : '-' },
|
||||
{label: "投票选项", prop: "myVote", format: v => v ? (v === '1' ? '同意' : '不同意') : '-'},
|
||||
{label: "投票时间", prop: "voteTime"},
|
||||
]
|
||||
},
|
||||
@@ -430,7 +426,7 @@ export default {
|
||||
},
|
||||
//获取会议详请
|
||||
getDetailInfo() {
|
||||
this.detail.id&& this.instance.post(`/app/appthreemeetinginfo/queryDetailById?id=${this.detail.id}`).then(res => {
|
||||
this.detail.id && this.instance.post(`/app/appthreemeetinginfo/queryDetailById?id=${this.detail.id}`).then(res => {
|
||||
if (res?.data) {
|
||||
res.data.annex = JSON.parse(res.data.annex);
|
||||
res.data.meetingClassification = res.data.meetingClassification.split(',');
|
||||
@@ -564,7 +560,7 @@ export default {
|
||||
.addThreeMeeting {
|
||||
height: 100%;
|
||||
|
||||
:deep( .el-form ){
|
||||
:deep( .el-form ) {
|
||||
.ailist-title {
|
||||
padding: 0;
|
||||
margin-bottom: 8px;
|
||||
@@ -579,7 +575,7 @@ export default {
|
||||
}
|
||||
}
|
||||
|
||||
:deep(.ai-detail__content--wrapper ){
|
||||
:deep(.ai-detail__content--wrapper ) {
|
||||
.el-form {
|
||||
width: 1000px;
|
||||
margin: 0 auto;
|
||||
@@ -591,11 +587,11 @@ export default {
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
|
||||
:deep( .el-dialog__body ){
|
||||
:deep( .el-dialog__body ) {
|
||||
padding-top: 16px !important;
|
||||
}
|
||||
|
||||
:deep( .iconfont ){
|
||||
:deep( .iconfont ) {
|
||||
color: #2266FF;
|
||||
cursor: pointer;
|
||||
}
|
||||
@@ -680,7 +676,7 @@ export default {
|
||||
}
|
||||
}
|
||||
|
||||
:deep( .el-form-item__label ){
|
||||
:deep( .el-form-item__label ) {
|
||||
color: #999;
|
||||
}
|
||||
|
||||
@@ -711,7 +707,7 @@ export default {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
:deep( .AiEchart ){
|
||||
:deep( .AiEchart ) {
|
||||
height: 160px;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,13 +9,13 @@
|
||||
<ai-card title="标题信息">
|
||||
<template slot="content">
|
||||
<ai-wrapper label-width="70px" :columnsNumber="1">
|
||||
<ai-info-item label="话题标题">{{detailObj.title}}</ai-info-item>
|
||||
<ai-info-item label="话题标题">{{ detailObj.title }}</ai-info-item>
|
||||
<ai-info-item label="关键字" v-if="detailObj.keyWords">
|
||||
<el-tag
|
||||
v-for="tag in detailObj.keyWords.split(',')"
|
||||
:key="tag"
|
||||
effect="plain">
|
||||
{{tag}}
|
||||
v-for="tag in detailObj.keyWords.split(',')"
|
||||
:key="tag"
|
||||
effect="plain">
|
||||
{{ tag }}
|
||||
</el-tag>
|
||||
</ai-info-item>
|
||||
<ai-info-item label="封面图片">
|
||||
@@ -26,14 +26,14 @@
|
||||
</template>
|
||||
</ai-card>
|
||||
<ai-card class="card" v-for="(item,index) in detailObj.contents" :key="index">
|
||||
<template slot="title">{{item.question}}</template>
|
||||
<template slot="right">话题来源:{{item.questionSource}}</template>
|
||||
<template slot="title">{{ item.question }}</template>
|
||||
<template slot="right">话题来源:{{ item.questionSource }}</template>
|
||||
<template slot="content">
|
||||
<div class="wrap">
|
||||
<header>
|
||||
<b>{{item.answerSource}}</b> 回复
|
||||
<b>{{ item.answerSource }}</b> 回复
|
||||
</header>
|
||||
<p>{{item.answer}}</p>
|
||||
<p>{{ item.answer }}</p>
|
||||
<div v-viewer>
|
||||
<img :src="p.url"
|
||||
v-for="(p,q) in item.files" :key="q" alt="">
|
||||
@@ -47,113 +47,109 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import Viewer from 'v-viewer' ;
|
||||
import Vue from 'vue' ;
|
||||
|
||||
Vue.use(Viewer);
|
||||
export default {
|
||||
name: "hotDetail",
|
||||
label: "热点详情",
|
||||
props: {
|
||||
instance: Function,
|
||||
dict: Object,
|
||||
permissions: Function,
|
||||
areaId: String,
|
||||
detail: Object
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
detailObj: {},
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
getDetail() {
|
||||
this.instance.post(`/app/apphotsubject/detail`, null, {
|
||||
params: {id: this.detail.id}
|
||||
}).then(res => {
|
||||
if (res && res.data) {
|
||||
this.detailObj = res.data
|
||||
}
|
||||
})
|
||||
},
|
||||
},
|
||||
created() {
|
||||
this.getDetail()
|
||||
export default {
|
||||
name: "hotDetail",
|
||||
label: "热点详情",
|
||||
props: {
|
||||
instance: Function,
|
||||
dict: Object,
|
||||
permissions: Function,
|
||||
areaId: String,
|
||||
detail: Object
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
detailObj: {},
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
getDetail() {
|
||||
this.instance.post(`/app/apphotsubject/detail`, null, {
|
||||
params: {id: this.detail.id}
|
||||
}).then(res => {
|
||||
if (res && res.data) {
|
||||
this.detailObj = res.data
|
||||
}
|
||||
})
|
||||
},
|
||||
},
|
||||
created() {
|
||||
this.getDetail()
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.hotDetail {
|
||||
height: 100%;
|
||||
overflow: hidden;
|
||||
.hotDetail {
|
||||
height: 100%;
|
||||
overflow: hidden;
|
||||
|
||||
.card {
|
||||
:deep( .aibar ){
|
||||
height: 94px !important;
|
||||
flex-direction: column;
|
||||
align-items: flex-start;
|
||||
margin-bottom: 0px !important;
|
||||
padding: 16px !important;
|
||||
.card {
|
||||
:deep( .aibar ) {
|
||||
height: 94px !important;
|
||||
flex-direction: column;
|
||||
align-items: flex-start;
|
||||
margin-bottom: 0px !important;
|
||||
padding: 16px !important;
|
||||
|
||||
& > div {
|
||||
line-height: 24px;
|
||||
& > div {
|
||||
line-height: 24px;
|
||||
|
||||
&:last-child {
|
||||
font-size: 14px;
|
||||
color: #888888;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
:deep( .ai-card__body ){
|
||||
padding: 12px 20px 22px !important;
|
||||
}
|
||||
|
||||
.wrap {
|
||||
background-color: #F5F6F9;
|
||||
box-sizing: border-box;
|
||||
padding: 16px;
|
||||
|
||||
header {
|
||||
height: 40px;
|
||||
font-size: 16px;
|
||||
color: #222222;
|
||||
line-height: 24px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
border-bottom: 1px solid #EEEEEE;
|
||||
|
||||
b {
|
||||
color: #2266FF;
|
||||
}
|
||||
}
|
||||
|
||||
p {
|
||||
margin-top: 16px;
|
||||
font-size: 16px;
|
||||
color: #222222;
|
||||
line-height: 32px;
|
||||
text-indent: 2em;
|
||||
&:last-child {
|
||||
font-size: 14px;
|
||||
color: #888888;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
:deep( .el-tag){
|
||||
background: #F3F4F7;
|
||||
border-radius: 2px;
|
||||
color: #222222;
|
||||
border: 1px solid #D0D4DC;
|
||||
margin-right: 8px;
|
||||
:deep( .ai-card__body ) {
|
||||
padding: 12px 20px 22px !important;
|
||||
}
|
||||
|
||||
img {
|
||||
width: 160px;
|
||||
height: 160px;
|
||||
border-radius: 2px;
|
||||
margin-top: 16px;
|
||||
margin-right: 8px;
|
||||
.wrap {
|
||||
background-color: #F5F6F9;
|
||||
box-sizing: border-box;
|
||||
padding: 16px;
|
||||
|
||||
header {
|
||||
height: 40px;
|
||||
font-size: 16px;
|
||||
color: #222222;
|
||||
line-height: 24px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
border-bottom: 1px solid #EEEEEE;
|
||||
|
||||
b {
|
||||
color: #2266FF;
|
||||
}
|
||||
}
|
||||
|
||||
p {
|
||||
margin-top: 16px;
|
||||
font-size: 16px;
|
||||
color: #222222;
|
||||
line-height: 32px;
|
||||
text-indent: 2em;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
:deep( .el-tag) {
|
||||
background: #F3F4F7;
|
||||
border-radius: 2px;
|
||||
color: #222222;
|
||||
border: 1px solid #D0D4DC;
|
||||
margin-right: 8px;
|
||||
}
|
||||
|
||||
img {
|
||||
width: 160px;
|
||||
height: 160px;
|
||||
border-radius: 2px;
|
||||
margin-top: 16px;
|
||||
margin-right: 8px;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -31,10 +31,6 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import Viewer from 'v-viewer';
|
||||
import Vue from 'vue';
|
||||
|
||||
Vue.use(Viewer);
|
||||
export default {
|
||||
name: "newsDetail",
|
||||
props: {
|
||||
|
||||
@@ -29,11 +29,8 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import Viewer from 'v-viewer';
|
||||
|
||||
export default {
|
||||
name: "videoDetail",
|
||||
components: {Viewer},
|
||||
props: {
|
||||
instance: Function,
|
||||
dict: Object,
|
||||
|
||||
@@ -326,10 +326,6 @@
|
||||
<script>
|
||||
import moment from 'dayjs'
|
||||
import {mapState} from "vuex";
|
||||
import Viewer from 'v-viewer'
|
||||
import Vue from 'vue'
|
||||
|
||||
Vue.use(Viewer)
|
||||
|
||||
export default {
|
||||
name: "approvalDetail",
|
||||
|
||||
@@ -89,10 +89,6 @@
|
||||
</template>
|
||||
<script>
|
||||
import { mapState } from 'vuex'
|
||||
// import 'viewerjs/dist/viewer.css'
|
||||
import Viewer from 'v-viewer'
|
||||
import Vue from 'vue'
|
||||
Vue.use(Viewer)
|
||||
|
||||
export default {
|
||||
name: 'messageDetail',
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
<h2 v-for="(item, index) in msgTypeList" :key="index" :class="msgType == index ? 'tab-active' : ''" @click="msgTypeClick(index)">{{item.name}}</h2>
|
||||
</div>
|
||||
<div class="search-content">
|
||||
<el-date-picker v-model="time" size="small" type="daterange" value-format="yyyy-MM-dd"
|
||||
<el-date-picker v-model="time" size="small" type="daterange" value-format="yyyy-MM-dd"
|
||||
range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" @change="onChange">
|
||||
</el-date-picker>
|
||||
<el-input size="small" placeholder="输入搜索内容" v-model="searchMsg" clearable
|
||||
@@ -90,7 +90,7 @@
|
||||
|
||||
<video style="width: 300px; object-fit: fill;" controls :src="item.sdkFileUrl" v-if="item.msgType == 'video'"></video>
|
||||
|
||||
<ai-file-list v-if="item.msgType == 'file'"
|
||||
<ai-file-list v-if="item.msgType == 'file'"
|
||||
:fileList="item.files"
|
||||
:fileOps="{ name: 'name', size: 'fileSizeStr' }"
|
||||
></ai-file-list>
|
||||
@@ -170,16 +170,11 @@
|
||||
|
||||
<script>
|
||||
import { mapState } from 'vuex'
|
||||
import Viewer from 'v-viewer'
|
||||
import AMapLoader from '@amap/amap-jsapi-loader'
|
||||
import Vue from 'vue'
|
||||
Vue.use(Viewer);
|
||||
|
||||
import html2canvas from "html2canvas";
|
||||
import jsPDF from "jspdf";
|
||||
|
||||
import { Loading } from "element-ui";
|
||||
|
||||
|
||||
const PdfLoader = (ele, pdfFileName) => {
|
||||
let loadingInstance = Loading.service({ fullscreen: true, text: '正在导出(请勿刷新/关闭页面)' });
|
||||
ele.style.fontFamily = "宋体";
|
||||
@@ -447,7 +442,7 @@
|
||||
this.getMsgList()
|
||||
},
|
||||
getKeyWordList() {
|
||||
var url = this.listInfo.seq ? `/app/appsessionarchiveinfo/listByKeywordRecord?seq=${this.listInfo.seq}`
|
||||
var url = this.listInfo.seq ? `/app/appsessionarchiveinfo/listByKeywordRecord?seq=${this.listInfo.seq}`
|
||||
: `/app/appsessionarchiveinfo/listByKeywordRecord?msgId=${this.params.msgId}`
|
||||
this.instance.post(url, null, {
|
||||
params: {
|
||||
@@ -545,9 +540,9 @@
|
||||
var height = document.querySelector('.content-right-info').scrollHeight - preveHeight
|
||||
document.querySelector('.content-right-info').scrollTop = height
|
||||
}
|
||||
|
||||
|
||||
})
|
||||
|
||||
|
||||
}
|
||||
this.isLoading = false
|
||||
}).catch(() => {
|
||||
@@ -606,7 +601,7 @@
|
||||
var height = document.querySelector('.content-right-info').scrollHeight - preveHeight
|
||||
document.querySelector('.content-right-info').scrollTop = height
|
||||
}
|
||||
|
||||
|
||||
})
|
||||
}
|
||||
this.isLoading = false
|
||||
@@ -655,7 +650,7 @@
|
||||
},
|
||||
openLink(row) {
|
||||
document.write('<a href="" target="new"></a>');
|
||||
window.open(row.linkUrl, "new");
|
||||
window.open(row.linkUrl, "new");
|
||||
},
|
||||
cancel () {
|
||||
this.$emit('change', {
|
||||
@@ -878,7 +873,7 @@
|
||||
max-width: calc(100% - 144px);
|
||||
position: relative;
|
||||
background-color: #f3f6f9;
|
||||
|
||||
|
||||
span {
|
||||
width: 0px;
|
||||
height: 0px;
|
||||
@@ -1000,7 +995,7 @@
|
||||
}
|
||||
}
|
||||
.item-left {
|
||||
.item-content-flex {
|
||||
.item-content-flex {
|
||||
.user-img {
|
||||
margin: 0 20px 0 0;
|
||||
}
|
||||
@@ -1014,7 +1009,7 @@
|
||||
margin-left: 16px;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
.item-right {
|
||||
width: 100%;
|
||||
@@ -1042,7 +1037,7 @@
|
||||
text-align: right;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
.addressBook-left__list--wrapper::-webkit-scrollbar,
|
||||
|
||||
@@ -289,14 +289,9 @@
|
||||
|
||||
<script>
|
||||
import { mapState } from "vuex";
|
||||
import Viewer from "v-viewer";
|
||||
import AMapLoader from "@amap/amap-jsapi-loader";
|
||||
import Vue from "vue";
|
||||
Vue.use(Viewer);
|
||||
|
||||
import html2canvas from "html2canvas";
|
||||
import jsPDF from "jspdf";
|
||||
|
||||
import { Loading } from "element-ui";
|
||||
|
||||
const PdfLoader = (ele, pdfFileName) => {
|
||||
@@ -631,7 +626,7 @@ export default {
|
||||
var dataURL = canvas.toDataURL("image/"+ext);
|
||||
return dataURL;
|
||||
},
|
||||
|
||||
|
||||
initMap(lng, lat, zoom, mapId) {
|
||||
AMapLoader.load({
|
||||
key: "54a02a43d9828a8f9cd4f26fe281e74e",
|
||||
|
||||
Reference in New Issue
Block a user