Browse Source

fix 功能

old
wangqing 4 years ago
parent
commit
b315248ddd
  1. 1
      src/api/index.js
  2. 1820
      src/assets/images/official/background.svg
  3. 5
      src/assets/styles/form/home.scss
  4. 1
      src/components/echarts/LineChart.vue
  5. 1
      src/utils/sign.js
  6. 6
      src/views/form/editor/index.vue
  7. 15
      src/views/form/index.vue
  8. 110
      src/views/form/preview/index.vue
  9. 16
      src/views/form/statistics/chart.vue

1
src/api/index.js

@ -56,7 +56,6 @@ const signRequest = request => {
api.interceptors.response.use( api.interceptors.response.use(
async response => { async response => {
console.log(response)
/** /**
* 全局拦截请求发送后返回的数据如果数据有报错则在这做全局的错误提示 * 全局拦截请求发送后返回的数据如果数据有报错则在这做全局的错误提示
* 假设返回数据格式为{"code":500,"msg":"邮箱地址不正确","data":null} * 假设返回数据格式为{"code":500,"msg":"邮箱地址不正确","data":null}

1820
src/assets/images/official/background.svg

File diff suppressed because it is too large

After

Width:  |  Height:  |  Size: 137 KiB

5
src/assets/styles/form/home.scss

@ -253,10 +253,7 @@ $lighterBlue: #1890ff;
} }
} }
} }
.form-name-text:hover {
border: 1px dashed #7b7b7b;
min-height: 100px;
}
.form-name-text { .form-name-text {
padding: 6px 10px; padding: 6px 10px;
border: 1px dashed transparent; border: 1px dashed transparent;

1
src/components/echarts/LineChart.vue

@ -60,6 +60,7 @@ export default {
initChart() { initChart() {
this.chart = echarts.init(this.$el, 'macarons') this.chart = echarts.init(this.$el, 'macarons')
this.setOptions(this.chartOption) this.setOptions(this.chartOption)
this.chart.resize()
}, },
setOptions(chartOption) { setOptions(chartOption) {
this.chart.setOption(chartOption) this.chart.setOption(chartOption)

1
src/utils/sign.js

@ -51,7 +51,6 @@ export default class sign {
let jsonObj = _.merge(urlParams, requestParams) let jsonObj = _.merge(urlParams, requestParams)
jsonObj = _.merge(jsonObj, dataParams) jsonObj = _.merge(jsonObj, dataParams)
let requestBody = this.sortAsc(jsonObj) let requestBody = this.sortAsc(jsonObj)
console.log(jsonObj)
return CryptoJS.MD5(constants.signSecret + JSON.stringify(requestBody)).toString().toLowerCase() return CryptoJS.MD5(constants.signSecret + JSON.stringify(requestBody)).toString().toLowerCase()
} }

6
src/views/form/editor/index.vue

@ -419,3 +419,9 @@ export default {
@import '@/assets/styles/form/home'; @import '@/assets/styles/form/home';
@import '@/assets/styles/form/index'; @import '@/assets/styles/form/index';
</style> </style>
<style lang="scss" scoped>
.form-name-text:hover{
border: 1px dashed #7b7b7b;
min-height: 100px;
}
</style>

15
src/views/form/index.vue

@ -9,7 +9,7 @@
<img class="header-logo" src="@/assets/images/indexLogo.png" @click="$router.push({path:'/home'})"> <img class="header-logo" src="@/assets/images/indexLogo.png" @click="$router.push({path:'/home'})">
</el-col> </el-col>
<el-col :span="1"> <el-col :span="1">
<el-button type="primary" icon="el-icon-view"> <el-button type="primary" icon="el-icon-view" @click="previewDialogVisible=true">
预览 预览
</el-button> </el-button>
</el-col> </el-col>
@ -38,15 +38,23 @@
<router-view /> <router-view />
</div> </div>
</div> </div>
<el-dialog
:visible.sync="previewDialogVisible"
fullscreen
>
<pre-view :preview-qrcode="true" />
</el-dialog>
</div> </div>
</template> </template>
<script> <script>
import PreView from '@/views/form/preview'
export default { export default {
name: 'NewIndex', name: 'NewIndex',
components: {}, components: {PreView},
data() { data() {
return { return {
previewDialogVisible: false,
defaultActiveMenu: 'editor', defaultActiveMenu: 'editor',
projectKey: null, projectKey: null,
isCollapse: false, isCollapse: false,
@ -185,4 +193,7 @@ export default {
} }
} }
::v-deep.preview-container{
background-color: #ffffff;
}
</style> </style>

110
src/views/form/preview/index.vue

@ -16,12 +16,18 @@
/> />
</div> </div>
</div> </div>
<div v-if="mobilePreviewUrl&&previewQrcode" class="qrcode-view">
<p>手机扫码查看效果</p>
<vue-qr
v-if="mobilePreviewUrl&&previewQrcode" :size="194" :text="mobilePreviewUrl"
/>
</div>
</el-tab-pane> </el-tab-pane>
<el-tab-pane> <el-tab-pane>
<span slot="label"><i class="el-icon-monitor" /> <span slot="label"><i class="el-icon-monitor" />
电脑 电脑
</span> </span>
<el-scrollbar style="height: 77vh;"> <el-scrollbar style="height: 77vh;overflow-x: hidden!important;">
<project-form <project-form
v-if="projectConfig.projectKey" v-if="projectConfig.projectKey"
:project-config="projectConfig" :project-config="projectConfig"
@ -34,11 +40,16 @@
<script> <script>
import ProjectForm from './ProjectForm' import ProjectForm from './ProjectForm'
import VueQr from 'vue-qr'
export default { export default {
name: 'PreView', name: 'PreView',
components: { components: {
ProjectForm ProjectForm,
VueQr
},
props: {
previewQrcode: null
}, },
data() { data() {
return { return {
@ -59,58 +70,77 @@ export default {
} }
</script> </script>
<style scoped> <style lang="scss" scoped>
.preview-container { .preview-container {
margin: 0; margin: 0;
padding-top: 30px; padding-top: 30px;
background-color: #f7f7f7; background-color: #f7f7f7;
}
::v-deep .el-tabs--card>.el-tabs__header .el-tabs__nav{
border: 1px solid #E4E7ED!important;
} }
::v-deep .el-tabs__header { ::v-deep .el-tabs__header {
width: 300px; width: 300px;
margin: 0 auto; margin: 0 auto;
border: none; border: none;
} }
::v-deep .el-tabs--card > .el-tabs__header .el-tabs__item { ::v-deep .el-tabs--card > .el-tabs__header .el-tabs__item {
background-color: white; background-color: white;
border: 1px solid white; border: 1px solid white;
} }
div.preview-layer { div.preview-layer {
width: 500px; width: 500px;
height: 100%; height: 100%;
margin: 10px auto; margin: 10px auto;
right: 0; right: 0;
text-align: center; text-align: center;
} }
div.preview-layer .preview-bg { div.preview-layer .preview-bg {
width: 500px; width: 500px;
height: 100%; height: 100%;
margin: 20px auto; margin: 20px auto;
z-index: 999; z-index: 999;
opacity: 0.7; opacity: 0.7;
} }
div.preview-layer .preview-phone { div.preview-layer .preview-phone {
width: 372px; width: 372px;
height: 744px; height: 744px;
background: url('~@/assets/images/appearset_bgc_big.png'); background: url('~@/assets/images/appearset_bgc_big.png');
background-size: 372px 744px; background-size: 372px 744px;
z-index: 1000; z-index: 1000;
}
.qrcode-view{
position: absolute;
top: 0;
right: 20px;
p{
text-align: center;
font-size: 12px;
color: #303133;
}
} }
.preview-html { .preview-html {
width: 345px !important; width: 345px !important;
height: 568px !important; height: 568px !important;
margin: 74px 0 0; margin: 74px 0 0;
border-radius: 5px; border-radius: 5px;
outline: none; outline: none;
background-color: #fff; background-color: #fff;
border-width: 2px; border-width: 2px;
border-style: inset; border-style: inset;
border-color: initial; border-color: initial;
border-image: initial; border-image: initial;
border-top-width: 0; border-top-width: 0;
border-right-width: 0; border-right-width: 0;
border-bottom-width: 0; border-bottom-width: 0;
border-left-width: 0; border-left-width: 0;
} }
</style> </style>

16
src/views/form/statistics/chart.vue

@ -1,10 +1,11 @@
<template> <template>
<div class="dashboard-container"> <div class="dashboard-container">
<p class="tag-title">回收概览</p> <p class="tag-title">回收概览</p>
<el-divider />
<div class="project-index-view"> <div class="project-index-view">
<div> <div>
<div> <div>
<p style="text-align: center;">有效回收量</p> <p class="text-center">有效回收量</p>
<count-to :end-val="projectStats.completeCount" <count-to :end-val="projectStats.completeCount"
style="font-size: 20px;" style="font-size: 20px;"
/> />
@ -27,23 +28,24 @@
</div> </div>
</div> </div>
<div class="line-chat"> <div class="line-chat">
<line-chart :chart-option="lineChartOptionData" /> <line-chart :width="'100vw'" :chart-option="lineChartOptionData" />
</div> </div>
<p class="tag-title">表单提交地域分布图</p> <p class="tag-title">表单提交地域分布图</p>
<div style="width: 90%"> <div style="width: 90%">
<map-chart :chart-option="mapChartOptionData" :height="'450px'" /> <map-chart :width="'100vw'" :chart-option="mapChartOptionData" :height="'450px'" />
</div> </div>
<el-divider />
<div style="display: flex; flex-direction: row; justify-content: space-around;"> <div style="display: flex; flex-direction: row; justify-content: space-around;">
<div style="width: 50%;"> <div style="width: 50%;">
<p class="tag-title">常用设备</p> <p class="tag-title">常用设备</p>
<div> <div>
<pie-chart :chart-option="pieChartOptionData" :height="'250px'" /> <pie-chart :width="'48vw'" :chart-option="pieChartOptionData" :height="'250px'" />
</div> </div>
</div> </div>
<div style="width: 50%;"> <div style="width: 50%;">
<p class="tag-title">来源渠道</p> <p class="tag-title">来源渠道</p>
<div> <div>
<bar-chart :chart-option="barChartOptionData" :height="'250px'" /> <bar-chart :width="'48vw'" :chart-option="barChartOptionData" :height="'250px'" />
</div> </div>
</div> </div>
</div> </div>
@ -338,9 +340,9 @@ export default {
overflow-x: hidden!important; overflow-x: hidden!important;
} }
.tag-title { .tag-title {
font-size: 20px; font-size: 16px;
line-height: 25px; line-height: 25px;
margin-left: 20px; margin-left: 20px;
} }
.project-index-view { .project-index-view {
& > div { & > div {

Loading…
Cancel
Save