Browse Source

Merge branch 'release'

master
jianjun 4 years ago
parent
commit
92bd52127b
  1. 11
      src/api/index.js
  2. 10
      src/assets/styles/form/home.scss
  3. 2
      src/components/parser/Parser.vue
  4. 30
      src/views/form/editor/IconsDialog.vue
  5. 78
      src/views/form/index.vue
  6. 55
      src/views/form/preview/index.vue
  7. 1
      src/views/form/publish/index.vue
  8. 10
      src/views/form/setting/index.vue
  9. 179
      src/views/form/statistics/list.vue
  10. 2
      src/views/form/statistics/public.vue
  11. 33
      src/views/form/theme/index.vue
  12. 21
      src/views/form/write/index.vue
  13. 2
      src/views/project/my/index.vue

11
src/api/index.js

@ -69,7 +69,7 @@ api.interceptors.response.use(
*/
let errCodes = [500, 405, 403]
const res = response.data
if (res.code === 200) {
if (res.code === 0) {
return Promise.resolve(res)
} else if (errCodes.includes(res.code)) {
// 这里做错误提示,如果使用了 element ui 则可以使用 Message 进行提示
@ -112,8 +112,15 @@ api.interceptors.response.use(
result = await api.request(response.config)
})
return Promise.resolve(result)
}else {
Message({
message: res.msg || 'Error',
type: 'error',
duration: 5 * 1000
})
return Promise.reject(res)
}
return Promise.resolve(res)
// return Promise.resolve(res)
},
error => {
Message({

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

@ -1,10 +1,10 @@
@import '../resources/variables';
@import "../resources/variables";
$selectedColor: rgba(24, 144, 255, 0.05);
$lighterBlue: #1890ff;
.form-edit-container {
position: relative;
width: 100%;
height: calc(100vh - 60px);
height: 100vh;
overflow-y: hidden;
}
.components-list {
@ -55,7 +55,7 @@ $lighterBlue: #1890ff;
left: 10px;
top: 0;
margin-top: 5px;
height: calc(100vh - 80px);
height: calc(100vh - 20px);
background-color: rgba(255, 255, 255, 100);
box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
border: 1px solid rgba(255, 255, 255, 100);
@ -64,13 +64,13 @@ $lighterBlue: #1890ff;
border-bottom: none;
}
.left-scrollbar {
height: calc(100vh - 80px);
height: calc(100vh - 20px);
overflow: hidden;
margin: 5px;
border-radius: 7px;
}
.center-scrollbar {
height: calc(100vh - 60px);
height: 100vh;
overflow: hidden;
width: 90%;
margin: 20px auto 0;

2
src/components/parser/Parser.vue

@ -473,6 +473,7 @@ export default {
}
//
const validateOtherInput = (rule, value, callback) => {
// 0
if (value == 0 || (Array.isArray(value) && value.includes(0))) {
if (!this[this.formConf.labelFormModel][`${rule.field}other`]) {
@ -485,6 +486,7 @@ export default {
}
}
if (Array.isArray(config.regList)) {
//
if (['RADIO', 'CHECKBOX'].includes(cur.typeId)) {
const required = { validator: validateOtherInput, message: cur.placeholder }

30
src/views/form/editor/IconsDialog.vue

@ -1,32 +1,26 @@
<template>
<div class="icon-dialog">
<el-dialog
v-bind="$attrs"
<el-dialog v-bind="$attrs"
width="980px"
:modal-append-to-body="false"
v-on="$listeners"
@open="onOpen"
@close="onClose"
>
@close="onClose">
<div slot="title">
选择图标
<el-input
v-model="key"
<el-input v-model="key"
size="mini"
:style="{width: '260px'}"
placeholder="请输入图标名称"
prefix-icon="el-icon-search"
clearable
/>
clearable />
</div>
<ul class="icon-ul">
<li
v-for="icon in iconList"
<li v-for="icon in iconList"
:key="icon"
:class="active===icon?'active-item':''"
@click="onSelect(icon)"
>
@click="onSelect(icon)">
<i :class="icon" />
<div>{{ icon }}</div>
</li>
@ -43,7 +37,7 @@ const originList = iconList.map(name => `el-icon-${name}`)
export default {
inheritAttrs: false,
props: ['current'],
data() {
data () {
return {
iconList: originList,
active: null,
@ -51,7 +45,7 @@ export default {
}
},
watch: {
key(val) {
key (val) {
if (val) {
this.iconList = originList.filter(name => name.indexOf(val) > -1)
} else {
@ -60,13 +54,13 @@ export default {
}
},
methods: {
onOpen() {
onOpen () {
this.active = this.current
this.key = ''
},
onClose() {
onClose () {
},
onSelect(icon) {
onSelect (icon) {
this.active = icon
this.$emit('select', icon)
this.$emit('update:visible', false)
@ -120,7 +114,7 @@ export default {
box-sizing: border-box;
.el-dialog__header {
padding-top: 14px;
// padding-top: 14px;
}
.el-dialog__body {

78
src/views/form/index.vue

@ -13,21 +13,21 @@
</el-button>
</el-row>
</el-card> -->
<div class="main-container">
<div v-if="!previewDialogVisible"
class="main-container">
<div class="left-menu-container">
<el-menu :collapse="isCollapse"
:default-active="defaultActiveMenu"
class="el-menu-vertical">
<el-menu-item class="el-menu-item-per"
v-for="menuItem in (publishStatus?menuItemList2:menuItemList)"
v-for="menuItem in menuShow"
:key="menuItem.key"
:index="menuItem.route"
@click="menuSelectHandle(menuItem.route,menuItem.key)">
<i :class="menuItem.icon"
style="margin-top:1px;align-items:center;" />
<span style="white-space:pre-wrap"
slot="title">{{ menuItem.title }}</span>
<span slot="title">{{ menuItem.title }}</span>
</el-menu-item>
</el-menu>
@ -43,12 +43,19 @@
<router-view />
</div>
</div>
<el-dialog :visible.sync="previewDialogVisible"
<div v-if="previewDialogVisible">
<pre-view :key="previewKey"
:showCloseBtn="true"
:preview-qrcode="true"
@diaCancal="diaCancal" />
</div>
<!-- <el-dialog :visible.sync="previewDialogVisible"
class="dialog"
destroy-on-close
fullscreen>
<pre-view :key="previewKey"
:preview-qrcode="true" />
</el-dialog>
</el-dialog> -->
</div>
</template>
@ -61,13 +68,14 @@ export default {
components: { PreView },
data () {
return {
publishStatus: true,
publishStatus: 1,
previewKey: +new Date(),
previewDialogVisible: false,
defaultActiveMenu: '',
projectKey: null,
isCollapse: false,
menuItemList: [
menuShow: [],
menuItemList1: [
{
key: 'edit',
title: '编辑',
@ -141,6 +149,23 @@ export default {
title: '返回',
icon: 'el-icon-back'
}
], menuItemList3: [
{
key: 'static',
title: '统计',
icon: 'el-icon-data-line',
route: '/project/form/statistics'
},
{
key: 'preview',
title: '预览',
icon: 'el-icon-view'
},
{
key: 'back',
title: '返回',
icon: 'el-icon-back'
}
]
}
},
@ -152,18 +177,28 @@ export default {
this.getProjectStatus()
},
methods: {
menuInit () {
this.menuShow = this.publishStatus === 1 ? this.menuItemList1 : this.publishStatus === 2 ? this.menuItemList2 : this.menuItemList3
},
diaCancal () {
this.previewDialogVisible = false
},
getProjectStatus () {
this.$api.get(`${process.env.VUE_APP_API_ROOT_TDUCK}/user/project/${this.projectKey}`).then(res => {
if (res.data.status == 1) {
this.publishStatus = false
} else {
this.publishStatus = true
console.log('状态', res.data.status)
this.publishStatus = res.data.status
if (this.publishStatus === 3) {
this.menuSelectHandle('/project/form/statistics', 'static')
}
this.menuInit()
})
},
@ -239,19 +274,21 @@ export default {
.main-container {
width: 100vw;
height: calc(100vh - 60px);
height: 100vh;
display: flex;
flex-direction: row;
.right-content-container {
width: calc(100vw - 100px);
height: calc(100vh - 60px);
width: 100vw;
height: 100vh;
overflow-x: hidden;
}
}
.left-menu-container {
max-width: 100px;
width: 130px;
min-width: 130px;
max-width: 200px;
text-align: center;
position: relative;
display: flex;
@ -267,8 +304,8 @@ export default {
min-height: 400px;
}
.el-menu-item-per {
display: flex;
line-height: 20px;
// display: flex;
// line-height: 20px;
}
.el-icon-d-arrow-left,
@ -277,13 +314,16 @@ export default {
cursor: pointer;
font-weight: 550;
color: #000;
margin-bottom: 100px;
margin-bottom: 20px;
&:hover {
color: rgb(32, 160, 255);
}
}
}
::v-deep.el-dialog__header {
padding-top: 0px;
}
::v-deep.preview-container {
background-color: #ffffff;

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

@ -1,6 +1,12 @@
<template>
<div class="preview-container">
<el-tabs v-if="projectConfig.projectKey" type="card">
<el-button v-if="showCloseBtn"
@click="diaCancal"
class="btn_close"
icon="el-icon-close"
circle></el-button>
<el-tabs v-if="projectConfig.projectKey"
type="card">
<el-tab-pane>
<span slot="label"><i class="el-icon-mobile" />
手机
@ -10,10 +16,10 @@
<div class="preview-phone">
<iframe id="preview-html"
:src="mobilePreviewUrl"
class="preview-html" frameborder="0"
class="preview-html"
frameborder="0"
name="preview-html"
scrolling="auto"
/>
scrolling="auto" />
</div>
</div>
<!-- <div v-if="mobilePreviewUrl&&previewQrcode" class="qrcode-view">
@ -28,10 +34,8 @@
电脑
</span>
<el-scrollbar style="height: 77vh;overflow-x: hidden!important;">
<project-form
v-if="projectConfig.projectKey"
:project-config="projectConfig"
/>
<project-form v-if="projectConfig.projectKey"
:project-config="projectConfig" />
</el-scrollbar>
</el-tab-pane>
</el-tabs>
@ -49,9 +53,13 @@ export default {
// VueQr
},
props: {
previewQrcode: null
previewQrcode: null,
showCloseBtn: {
type: Boolean,
default: false
}
},
data() {
data () {
return {
projectKey: null,
mobilePreviewUrl: '',
@ -61,24 +69,34 @@ export default {
}
}
},
mounted() {
mounted () {
this.projectKey = this.$route.query.key
let url = window.location.protocol + '//' + window.location.host
this.mobilePreviewUrl = `${url}/${process.env.VUE_APP_PUBLIC_PATH}/project/view?key=${this.projectKey}`
this.$set(this.projectConfig, 'projectKey', this.projectKey)
},
methods: {
diaCancal () {
this.$emit("diaCancal")
},
}
}
</script>
<style lang="scss" scoped>
.preview-container {
margin: 0;
padding-top: 30px;
padding-top: 15px;
background-color: #f7f7f7;
position: relative;
}
.btn_close {
position: absolute;
right: 200px;
top: 20px;
}
::v-deep .el-tabs--card>.el-tabs__header .el-tabs__nav{
border: 1px solid #E4E7ED!important;
::v-deep .el-tabs--card > .el-tabs__header .el-tabs__nav {
border: 1px solid #e4e7ed !important;
}
::v-deep .el-tabs__header {
width: 300px;
@ -110,16 +128,16 @@ div.preview-layer .preview-bg {
div.preview-layer .preview-phone {
width: 372px;
height: 744px;
background: url('~@/assets/images/appearset_bgc_big.png');
background: url("~@/assets/images/appearset_bgc_big.png");
background-size: 372px 744px;
z-index: 1000;
}
.qrcode-view{
.qrcode-view {
position: absolute;
top: 0;
right: 20px;
p{
p {
text-align: center;
font-size: 12px;
color: #303133;
@ -142,5 +160,4 @@ div.preview-layer .preview-phone {
border-bottom-width: 0;
border-left-width: 0;
}
</style>

1
src/views/form/publish/index.vue

@ -236,6 +236,7 @@ export default {
this.msgSuccess('停止成功')
this.$parent.getProjectStatus()
this.getProjectStatus()
// this.$router.push({ path: '/home' })
}
})
},

10
src/views/form/setting/index.vue

@ -6,8 +6,7 @@
class="project-setting-container"
justify="center"
type="flex">
<el-col :offset="3"
:span="5"
<el-col :span="6"
class="project-setting-view">
<p class="project-setting-title">
提交设置
@ -104,7 +103,8 @@
</el-col>
</el-row> -->
</el-col>
<el-col :span="6"
<el-col :offset="3"
:span="6"
class="project-setting-view text-center">
<p class="project-setting-title">
回收设置
@ -776,7 +776,7 @@ export default {
<style scoped>
.project-setting-container {
width: 100%;
height: 100%;
height: 100vh;
min-height: 85vh;
padding-top: 30px;
margin: 0;
@ -784,7 +784,7 @@ export default {
}
.project-setting-view {
height: 100%;
height: 98%;
line-height: 20px;
border-radius: 7px;
color: rgba(16, 16, 16, 100);

179
src/views/form/statistics/list.vue

@ -1,103 +1,100 @@
<template>
<div class="statistics-container">
<div class="filter-table-view">
<el-form ref="filterForm" :inline="true">
<el-form-item label="提交时间" prop="endDateTime">
<el-date-picker
v-model="queryConditions.beginDateTime"
<el-form ref="filterForm"
:inline="true">
<el-form-item label="提交时间"
prop="endDateTime">
<el-date-picker v-model="queryConditions.beginDateTime"
placeholder="开始时间"
type="datetime"
value-format="yyyy-MM-dd HH:mm:ss"
/>
value-format="yyyy-MM-dd HH:mm:ss" />
<span> </span>
<el-date-picker
v-model="queryConditions.endDateTime"
<el-date-picker v-model="queryConditions.endDateTime"
:default-time="'23:59:59'"
placeholder="结束时间"
type="datetime"
value-format="yyyy-MM-dd HH:mm:ss"
/>
value-format="yyyy-MM-dd HH:mm:ss" />
</el-form-item>
<el-form-item>
<el-button type="primary" @click="queryProjectResult">查询</el-button>
<el-button type="primary" @click="conditionFilterHandle">条件</el-button>
<el-button type="success" @click="exportProjectResult">导出</el-button>
<el-button type="success" @click="downloadProjectResultFile">下载附件</el-button>
<el-button type="primary"
@click="queryProjectResult">查询</el-button>
<el-button type="primary"
@click="conditionFilterHandle">条件</el-button>
<el-button type="success"
@click="exportProjectResult">导出</el-button>
<el-button type="success"
@click="downloadProjectResultFile">下载附件</el-button>
</el-form-item>
</el-form>
</div>
<div class="result-table-view">
<el-table
:data="projectResultList"
<el-table :data="projectResultList"
header-cell-class-name="data-table-header"
stripe
@row-dblclick="(row, column, event)=>{
this.openDetailDrawerHandle(row)
}"
>
<el-table-column
type="selection"
width="55"
/>
<el-table-column
v-for="col in fixedCustomColumns" :key="`t${col}`"
:label="fixedDefaultLabelFormColumn[col]"
>
}">
<el-table-column type="selection"
width="55" />
<el-table-column v-for="col in fixedCustomColumns"
:key="`t${col}`"
:label="fixedDefaultLabelFormColumn[col]">
<template slot-scope="scope">
{{ scope.row[col] }}
</template>
</el-table-column>
<el-table-column label="填写人" prop="realName" />
<el-table-column label="组织/部门/网格" prop="orgName" />
<el-table-column label="来源" prop="clientType" />
<el-table-column label="填写人"
prop="realName" />
<el-table-column label="组织/部门/网格"
prop="orgName" />
<el-table-column label="来源"
prop="clientType" />
<!-- <el-table-column label="填写时间" prop="createdTime" /> -->
<el-table-column
v-for="col in otherCustomColumns"
:key="col" :label="projectItemColumns[col]"
show-overflow-tooltip
>
<el-table-column v-for="col in otherCustomColumns"
:key="col"
:label="projectItemColumns[col]"
show-overflow-tooltip>
<template slot-scope="scope">
{{ scope.row['processData'][col] }}
</template>
</el-table-column>
<el-table-column
v-for="col in fixedFormTailColumns" :key="`t${col}`"
:label="fixedDefaultLabelFormTailColumn[col]"
>
<el-table-column v-for="col in fixedFormTailColumns"
:key="`t${col}`"
:label="fixedDefaultLabelFormTailColumn[col]">
<template slot-scope="scope">
{{ scope.row[col] }}
</template>
</el-table-column>
<!-- :render-header="renderHeader" -->
<el-table-column
fixed="right"
width="50"
>
<el-table-column fixed="right"
width="50">
<template slot-scope="scope">
<el-button size="small" type="text" @click="openDetailDrawerHandle(scope.row)">查看</el-button>
<el-button size="small"
type="text"
@click="openDetailDrawerHandle(scope.row)">查看</el-button>
</template>
</el-table-column>
</el-table>
<el-drawer
v-if="activeResultRow"
<el-drawer v-if="activeResultRow"
:visible.sync="detailDrawer"
:with-header="false"
>
:with-header="false">
<el-scrollbar style="height: 100%;">
<el-card class="detail-container">
<div slot="header" class="clearfix">
<div slot="header"
class="clearfix">
<span>提交详情</span>
</div>
<div>
<div v-for="item in projectItemList" :key="item.id">
<div v-for="item in projectItemList"
:key="item.id">
<h4>{{ item.label }}</h4>
<result-item :field-item-id="Number(item.formItemId)" :project-item-data="item"
:result-data="activeResultRow"
/>
<result-item :field-item-id="Number(item.formItemId)"
:project-item-data="item"
:result-data="activeResultRow" />
<el-divider />
</div>
</div>
@ -105,19 +102,19 @@
</el-scrollbar>
</el-drawer>
<div style="display: flex; justify-content: center; margin-top: 10px;">
<el-pagination
v-if="total>10"
<el-pagination v-if="total>10"
:current-page.sync="queryConditions.current"
:page-size.sync="queryConditions.size"
:total="total"
background
layout="total, prev, pager, next"
@current-change="queryProjectResult"
/>
@current-change="queryProjectResult" />
</div>
</div>
<div class="custom-col-container">
<el-dialog :visible.sync="customColumnDialogVisible" center title="自定义显示列">
<el-dialog :visible.sync="customColumnDialogVisible"
center
title="自定义显示列">
<el-row>
<el-col :span="3">
<span>显示列</span>
@ -126,7 +123,9 @@
<el-divider />
<el-checkbox-group v-model="checkedFixedCustomColumns">
<el-row>
<el-col v-for="(val, key) in fixedDefaultLabelFormColumn" :key="key" :span="4">
<el-col v-for="(val, key) in fixedDefaultLabelFormColumn"
:key="key"
:span="4">
<el-checkbox :label="key">{{ val }}</el-checkbox>
</el-col>
</el-row>
@ -134,7 +133,9 @@
<el-divider />
<el-checkbox-group v-model="checkOtherCustomColumns">
<el-row>
<el-col v-for="(val, key) in projectItemColumns" :key="key" :span="8">
<el-col v-for="(val, key) in projectItemColumns"
:key="key"
:span="8">
<el-checkbox :label="key">{{ val }}</el-checkbox>
</el-col>
</el-row>
@ -142,18 +143,24 @@
<el-divider />
<el-checkbox-group v-model="checkedFixedTailCustomColumns">
<el-row>
<el-col v-for="(val, key) in fixedDefaultLabelFormTailColumn" :key="key" :span="4">
<el-col v-for="(val, key) in fixedDefaultLabelFormTailColumn"
:key="key"
:span="4">
<el-checkbox :label="key">{{ val }}</el-checkbox>
</el-col>
</el-row>
</el-checkbox-group>
<span slot="footer" class="dialog-footer">
<span slot="footer"
class="dialog-footer">
<el-button @click="customColumnDialogVisible = false"> </el-button>
<el-button type="primary" @click="saveStatisticsCheckedColumns"> </el-button>
<el-button type="primary"
@click="saveStatisticsCheckedColumns"> </el-button>
</span>
</el-dialog>
</div>
<data-filter ref="dataFilter" :fields="projectItemList" @filter="dataFilterHandle" />
<data-filter ref="dataFilter"
:fields="projectItemList"
@filter="dataFilterHandle" />
</div>
</template>
@ -161,14 +168,14 @@
import _ from 'lodash'
import ResultItem from './item'
import DataFilter from './filter'
import {getCheckedColumn, saveCheckedColumn} from '@/utils/db'
import { getCheckedColumn, saveCheckedColumn } from '@/utils/db'
//
const fixedDefaultFormColumn = ['serialNumber']
const fixedDefaultLabelFormColumn = {serialNumber: '提交序号'}
const fixedDefaultLabelFormColumn = { serialNumber: '提交序号' }
//
const fixedDefaultFormTailColumn = ['submitAddress', 'createdTime']
const fixedDefaultLabelFormTailColumn = { submitAddress: '提交地址', createdTime: '提交时间'}
const fixedDefaultLabelFormTailColumn = { submitAddress: '提交地址', createdTime: '提交时间' }
export default {
name: 'ProjectStatisticsList',
@ -176,7 +183,7 @@ export default {
ResultItem,
DataFilter
},
data() {
data () {
return {
projectKey: null,
customFilterDialogVisible: false,
@ -212,7 +219,7 @@ export default {
}
}
},
mounted() {
mounted () {
this.projectKey = this.$route.query.key
this.queryConditions.projectKey = this.projectKey
this.queryProjectResult()
@ -220,38 +227,38 @@ export default {
this.queryProject()
},
methods: {
renderHeader() {
renderHeader () {
return (
<i class="el-icon-setting" style="color:currentColor"
onClick={() => this.customColumnDialogVisible = true}></i>
)
},
openDetailDrawerHandle(row) {
openDetailDrawerHandle (row) {
this.activeResultRow = row
this.detailDrawer = true
},
queryProject() {
queryProject () {
this.$api.get(`${process.env.VUE_APP_API_ROOT_TDUCK}/user/project/${this.projectKey}`).then(res => {
this.projectData = res.data
})
},
conditionFilterHandle() {
conditionFilterHandle () {
this.$refs.dataFilter.showDialogHandle()
},
dataFilterHandle(params, comparisons) {
dataFilterHandle (params, comparisons) {
this.queryConditions.extParams = params
this.queryConditions.extComparisons = comparisons
this.queryProjectResult()
},
queryProjectResult() {
this.$api.get(`${process.env.VUE_APP_API_ROOT_TDUCK}/user/project/result/page`, {params: this.queryConditions}).then(res => {
let {records, total, size} = res.data
queryProjectResult () {
this.$api.get(`${process.env.VUE_APP_API_ROOT_TDUCK}/user/project/result/page`, { params: this.queryConditions }).then(res => {
let { records, total, size } = res.data
this.projectResultList = records
this.total = total
this.queryConditions.size = size
})
},
saveStatisticsCheckedColumns() {
saveStatisticsCheckedColumns () {
this.customColumnDialogVisible = false
this.fixedCustomColumns = this.checkedFixedCustomColumns
this.otherCustomColumns = this.checkOtherCustomColumns
@ -262,12 +269,12 @@ export default {
fixedCustomTailColumns: this.fixedFormTailColumns
})
},
getDbCheckedColumns() {
getDbCheckedColumns () {
let checkedColumn = getCheckedColumn(this.projectKey)
if (!checkedColumn) {
return
}
let {fixedCustomColumns, otherCustomColumns, fixedCustomTailColumns} = checkedColumn
let { fixedCustomColumns, otherCustomColumns, fixedCustomTailColumns } = checkedColumn
if (fixedCustomColumns) {
this.fixedCustomColumns = fixedCustomColumns
this.checkedFixedCustomColumns = fixedCustomColumns
@ -281,7 +288,7 @@ export default {
this.checkedFixedTailCustomColumns = fixedCustomTailColumns
}
},
downloadProjectResultFile() {
downloadProjectResultFile () {
if (!this.total) {
this.$message.error('无附件,无法导出')
return
@ -289,13 +296,16 @@ export default {
this.$api.get(`${process.env.VUE_APP_API_ROOT_TDUCK}/user/project/result/download/file`, {
params: this.queryConditions
}).then(res => {
this.$process({
message: '附件导出中',
key: res.data
})
})
},
exportProjectResult() {
exportProjectResult () {
if (!this.total) {
this.$message.error('无表单有效反馈结果,无法导出')
return
@ -315,8 +325,8 @@ export default {
window.URL.revokeObjectURL(href) // blob
})
},
queryProjectItems() {
this.$api.get(`${process.env.VUE_APP_API_ROOT_TDUCK}/user/project/item/list`, {params: {key: this.projectKey, displayType: false}}).then(res => {
queryProjectItems () {
this.$api.get(`${process.env.VUE_APP_API_ROOT_TDUCK}/user/project/item/list`, { params: { key: this.projectKey, displayType: false } }).then(res => {
if (res.data) {
res.data.map(item => {
_.set(this.projectItemColumns, `field${item.formItemId}`, item.label)
@ -386,5 +396,4 @@ export default {
::v-deep .el-drawer__container ::-webkit-scrollbar {
display: none;
}
</style>

2
src/views/form/statistics/public.vue

@ -150,7 +150,7 @@ export default {
}
.el-main {
background-color: rgba(247, 247, 247, 90);
height: calc(100vh - 60px);
height: 100vh;
}
@media screen and (max-width: 750px) {
.public-result-table {

33
src/views/form/theme/index.vue

@ -1,17 +1,10 @@
<template>
<div class="theme-container">
<div class="left-container">
<div v-if="false"
class="left-container">
<el-scrollbar class="left-scrollbar-container">
<p class="theme-title">外观主题</p>
<div class="tag-wr">
<div class="tag-title">风格</div>
<div class="tag-list">
<div v-for="item in styleList" :key="item.key" class="tag-item"
:class="{'tag-item-on':activeStyle==item.key}" @click="activeStyleHandle(item)">
{{ item.label }}</div>
</div>
</div>
<!-- <el-row>
<el-row>
<el-col :span="6">
<span class="theme-prompt-text">风格</span>
</el-col>
@ -22,18 +15,8 @@
class="style-btn"
@click="activeStyleHandle(item)">{{ item.label }}</span>
</el-col>
</el-row> -->
<div class="tag-wr">
<div class="tag-title">颜色</div>
<div class="tag-list">
<div class="tag-item"
:class="{'tag-item-on':activeColor==''}" @click="activeColorHandle('')">全部</div>
<div v-for="c in colorList" :key="c" class="tag-item tag-c"
:style="{backgroundColor: c}"
:class="{'tag-item-on':activeColor==c}" @click="activeColorHandle(c)"></div>
</div>
</div>
<!-- <el-row>
</el-row>
<el-row style="margin-top:20px">
<el-col :span="6">
<span class="theme-prompt-text">颜色</span>
</el-col>
@ -409,7 +392,7 @@ export default {
<style scoped>
.theme-container {
width: 100%;
width: 100vw;
height: 100%;
background-color: #f7f7f7;
overflow: hidden;
@ -425,7 +408,7 @@ export default {
border: 1px solid rgba(255, 255, 255, 100);
background-color: white;
width: 20%;
height: calc(100vh - 60px);
height: 100vh;
}
.left-scrollbar-container {
height: 100%;
@ -499,7 +482,7 @@ export default {
}
.right-container {
width: 310px;
height: calc(100vh - 60px);
height: 100vh;
line-height: 20px;
text-align: center;
padding: 22px;

21
src/views/form/write/index.vue

@ -47,6 +47,7 @@ import loadWXJs from '@/utils/loadWxSdk'
import defaultValue from '@/utils/defaultValue'
import { getQueryString } from '@/utils'
import constants from '@/utils/constants'
import ELEMENT from 'element-ui'
const uaParser = require('ua-parser-js')
const ua = uaParser(navigator.userAgent)
@ -288,10 +289,18 @@ export default {
let projectKey = this.projectConfig.projectKey
this.$router.replace({ path: '/project/public/result', query: { projectKey } })
},
submitForm (data) {
async submitForm (data) {
const loading = ELEMENT.Loading.service({
fullscreen: true,
lock: true,
text: '提交中',
spinner: 'el-icon-loading',
background: 'rgba(255, 255, 255, 0.5)'
})
//
let inActiveTime = document.getElementById('inActiveTime').innerText
this.$api.post(`${process.env.VUE_APP_API_ROOT_TDUCK}/user/project/result/create?access_key=${this.accessKey}`, {
await this.$api.post(`${process.env.VUE_APP_API_ROOT_TDUCK}/user/project/result/create?access_key=${this.accessKey}`, {
'completeTime': inActiveTime,
'projectKey': this.projectConfig.projectKey,
'submitOs': ua.os.name,
@ -307,7 +316,8 @@ export default {
'orgType': this.orgType,//(:agency;:dept;:grid)
'realName': this.realName,//
//'accessKey':this.accessKey
}).then(() => {
}).then((res) => {
this.writeStatus = 2
if (this.userProjectSetting.submitJumpUrl) {
setTimeout(() => {
@ -315,7 +325,12 @@ export default {
}, 1000)
}
},
(msg) => {
// debugger
})
// debugger
loading.close()
}
}
}

2
src/views/project/my/index.vue

File diff suppressed because one or more lines are too long
Loading…
Cancel
Save