kun 191113 1112

This commit is contained in:
沈学坤
2019-11-13 11:11:51 +08:00
parent 03cae85307
commit c3ec95e2c6
12 changed files with 610 additions and 82 deletions

View File

@@ -0,0 +1,46 @@
<template>
<div id="aboutUs"></div>
</template>
<script>
import E from 'wangeditor'
var phoneEditor, _this
export default {
components: {},
props: {
aboutUsVal: {
type: String,
required: false
}
},
data () {
return {}
},
created () {},
mounted () {
_this = this
phoneEditor = new E('aboutUs')
phoneEditor.onchange = function () {
_this.$emit('aboutUs', this.$txt.html())
}
phoneEditor.create()
// phoneEditor.$txt.html(this.val)
},
methods: {},
computed: {},
watch: {
aboutUsVal (val) {
// console.log(val)
phoneEditor.$txt.html(_this.aboutUsVal)
}
}
}
</script>
<style lang="scss" scoped>
#aboutUs {
width: 100%;
height: 250px;
}
</style>

46
src/components/Cover.vue Normal file
View File

@@ -0,0 +1,46 @@
<template>
<div id="cover"></div>
</template>
<script>
import E from 'wangeditor'
var phoneEditor, _this
export default {
components: {},
props: {
coverVal: {
type: String,
required: false
}
},
data () {
return {}
},
created () {},
mounted () {
_this = this
phoneEditor = new E('cover')
phoneEditor.onchange = function () {
_this.$emit('cover', this.$txt.html())
}
phoneEditor.create()
// phoneEditor.$txt.html(this.val)
},
methods: {},
computed: {},
watch: {
coverVal (val) {
// console.log(val)
phoneEditor.$txt.html(_this.coverVal)
}
}
}
</script>
<style lang="scss" scoped>
#cover {
width: 100%;
height: 250px;
}
</style>

View File

@@ -0,0 +1,46 @@
<template>
<div id="desiredEffect"></div>
</template>
<script>
import E from 'wangeditor'
var phoneEditor, _this
export default {
components: {},
props: {
desiredEffectVal: {
type: String,
required: false
}
},
data () {
return {}
},
created () {},
mounted () {
_this = this
phoneEditor = new E('desiredEffect')
phoneEditor.onchange = function () {
_this.$emit('desiredEffect', this.$txt.html())
}
phoneEditor.create()
// phoneEditor.$txt.html(this.val)
},
methods: {},
computed: {},
watch: {
desiredEffectVal (val) {
// console.log(val)
phoneEditor.$txt.html(_this.desiredEffectVal)
}
}
}
</script>
<style lang="scss" scoped>
#desiredEffect {
width: 100%;
height: 250px;
}
</style>

View File

@@ -0,0 +1,46 @@
<template>
<div id="divisionLabor"></div>
</template>
<script>
import E from 'wangeditor'
var phoneEditor, _this
export default {
components: {},
props: {
divisionLaborVal: {
type: String,
required: false
}
},
data () {
return {}
},
created () {},
mounted () {
_this = this
phoneEditor = new E('divisionLabor')
phoneEditor.onchange = function () {
_this.$emit('divisionLabor', this.$txt.html())
}
phoneEditor.create()
// phoneEditor.$txt.html(this.val)
},
methods: {},
computed: {},
watch: {
divisionLaborVal (val) {
// console.log(val)
phoneEditor.$txt.html(_this.divisionLaborVal)
}
}
}
</script>
<style lang="scss" scoped>
#divisionLabor {
width: 100%;
height: 250px;
}
</style>

View File

@@ -0,0 +1,46 @@
<template>
<div id="existingBasis"></div>
</template>
<script>
import E from 'wangeditor'
var phoneEditor, _this
export default {
components: {},
props: {
existingBasisVal: {
type: String,
required: false
}
},
data () {
return {}
},
created () {},
mounted () {
_this = this
phoneEditor = new E('existingBasis')
phoneEditor.onchange = function () {
_this.$emit('existingBasis', this.$txt.html())
}
phoneEditor.create()
// phoneEditor.$txt.html(this.val)
},
methods: {},
computed: {},
watch: {
existingBasisVal (val) {
// console.log(val)
phoneEditor.$txt.html(_this.existingBasisVal)
}
}
}
</script>
<style lang="scss" scoped>
#existingBasis {
width: 100%;
height: 250px;
}
</style>

View File

@@ -0,0 +1,46 @@
<template>
<div id="methodsWay"></div>
</template>
<script>
import E from 'wangeditor'
var phoneEditor, _this
export default {
components: {},
props: {
methodsWayVal: {
type: String,
required: false
}
},
data () {
return {}
},
created () {},
mounted () {
_this = this
phoneEditor = new E('methodsWay')
phoneEditor.onchange = function () {
_this.$emit('methodsWay', this.$txt.html())
}
phoneEditor.create()
// phoneEditor.$txt.html(this.val)
},
methods: {},
computed: {},
watch: {
methodsWayVal (val) {
// console.log(val)
phoneEditor.$txt.html(_this.methodsWayVal)
}
}
}
</script>
<style lang="scss" scoped>
#methodsWay {
width: 100%;
height: 250px;
}
</style>

View File

@@ -0,0 +1,46 @@
<template>
<div id="projectAssessment"></div>
</template>
<script>
import E from 'wangeditor'
var phoneEditor, _this
export default {
components: {},
props: {
projectAssessmentVal: {
type: String,
required: false
}
},
data () {
return {}
},
created () {},
mounted () {
_this = this
phoneEditor = new E('projectAssessment')
phoneEditor.onchange = function () {
_this.$emit('projectAssessment', this.$txt.html())
}
phoneEditor.create()
// phoneEditor.$txt.html(this.val)
},
methods: {},
computed: {},
watch: {
projectAssessmentVal (val) {
// console.log(val)
phoneEditor.$txt.html(_this.projectAssessmentVal)
}
}
}
</script>
<style lang="scss" scoped>
#projectAssessment {
width: 100%;
height: 250px;
}
</style>

View File

@@ -0,0 +1,46 @@
<template>
<div id="projectBrief"></div>
</template>
<script>
import E from 'wangeditor'
var phoneEditor, _this
export default {
components: {},
props: {
projectBriefVal: {
type: String,
required: false
}
},
data () {
return {}
},
created () {},
mounted () {
_this = this
phoneEditor = new E('projectBrief')
phoneEditor.onchange = function () {
_this.$emit('projectBrief', this.$txt.html())
}
phoneEditor.create()
// phoneEditor.$txt.html(this.val)
},
methods: {},
computed: {},
watch: {
projectBriefVal (val) {
// console.log(val)
phoneEditor.$txt.html(_this.projectBriefVal)
}
}
}
</script>
<style lang="scss" scoped>
#projectBrief {
width: 100%;
height: 250px;
}
</style>

View File

@@ -1,7 +1,5 @@
<template>
<div class="wrr">
<div id="websiteEditorElem"></div>
</div>
</template>
<script>

View File

@@ -0,0 +1,46 @@
<template>
<div id="scheduling"></div>
</template>
<script>
import E from 'wangeditor'
var phoneEditor, _this
export default {
components: {},
props: {
schedulingVal: {
type: String,
required: false
}
},
data () {
return {}
},
created () {},
mounted () {
_this = this
phoneEditor = new E('scheduling')
phoneEditor.onchange = function () {
_this.$emit('scheduling', this.$txt.html())
}
phoneEditor.create()
// phoneEditor.$txt.html(this.val)
},
methods: {},
computed: {},
watch: {
schedulingVal (val) {
// console.log(val)
phoneEditor.$txt.html(_this.schedulingVal)
}
}
}
</script>
<style lang="scss" scoped>
#scheduling {
width: 100%;
height: 250px;
}
</style>

View File

@@ -452,94 +452,139 @@
<div>
<div class="xx">
<h5>申报单位简介</h5>
<textarea
<div class="rich">
<about-us
@aboutUs="aboutUs"
:aboutUsVal="aboutUsVal"
></about-us>
</div>
<!-- <textarea
value
name="decldes"
v-model="decldes"
required
></textarea>
></textarea> -->
</div>
<div class="xx">
<h5>项目简介</h5>
<textarea
<div class="rich">
<project-brief
@projectBrief="projectBrief"
:projectBriefVal="projectBriefVal"
></project-brief>
</div>
<!-- <textarea
value
name="prodes"
v-model="prodes"
required
></textarea>
></textarea> -->
</div>
<div class="xx">
<h5>项目论证</h5>
<h3>() 项目实施的必要性可行性</h3>
<textarea
<div class="rich">
<project-assessment
@projectAssessment="projectAssessment"
:projectAssessmentVal="projectAssessmentVal"
></project-assessment>
</div>
<!-- <textarea
value
name="prodemo"
v-model="prodemo"
required
></textarea>
></textarea> -->
<h3>
()
项目实施的已有基础具体方法和途径及进度安排预期效果及完成时间
</h3>
<p>1.项目实施的已有基础</p>
<textarea
<div class="rich">
<existing-basis
@existingBasis="existingBasis"
:existingBasisVal="existingBasisVal"
></existing-basis>
</div>
<!-- <textarea
value
name="prodemojc"
v-model="prodemojc"
required
placeholder="(说明:包括但不限于项目实施已有的相关经验或有助于项目实施的资源支持等)"
></textarea>
></textarea> -->
<p>2.具体方法和途径</p>
<textarea
<div class="rich">
<methods-way
@methodsWay="methodsWay"
:methodsWayVal="methodsWayVal"
></methods-way>
</div>
<!-- <textarea
name="prodemotj"
value
v-model="prodemotj"
required
placeholder="(说明:包括项目实施的具体方式、途径。明确项目的具体组成内容(子项目、各类服务等),每类、每次活动的具体内容、形式、对象、次数、人数等)"
></textarea>
></textarea> -->
<p>3.进度安排</p>
<textarea
<div class="rich">
<scheduling
@scheduling="scheduling"
:schedulingVal="schedulingVal"
></scheduling>
</div>
<!-- <textarea
name="prodemojd"
value
v-model="prodemojd"
required
placeholder="(说明:可单独作为一部分,也可与“具体方法和途径”一并细化到子项目中说明。建议时间单元为月,不建议简单表述为“年内”、“上半年”“下半年”、“第*季度”等。)"
></textarea>
></textarea> -->
<p>4.预期效果</p>
<textarea
<div class="rich">
<desired-effect
@desiredEffect="desiredEffect"
:desiredEffectVal="desiredEffectVal"
></desired-effect>
</div>
<!-- <textarea
value
name="prodemoxg"
v-model="prodemoxg"
placeholder="(说明:具体明确项目实施所要达到的目标或预期的效果以及)"
></textarea>
></textarea> -->
<p>5.项目团队及分工</p>
<textarea
<div class="rich">
<division-labor
@divisionLabor="divisionLabor"
:divisionLaborVal="divisionLaborVal"
></division-labor>
</div>
<!-- <textarea
value
required
v-model="prodemofg"
name="prodemofg"
placeholder="(说明:包括项目实施的组织管理机构组成,各子项目或各项服务活动的具体承接单位和负责人,各有关协作单位等。如有以主责单位名义申报的综合性、联合性项目,要细化各子项目的组织实施体系。如有涉及到委托管理(如财务委托管理)的,要在组织架构中予以说明。要把可能引起转包怀疑的所有事项交代清楚,避免在检查、审计和评估中产生误解。)"
></textarea>
></textarea> -->
<h3>
() 项目实施涵盖的范围实施的规模服务的人群创新之处等
</h3>
<textarea
<div class="rich">
<cover @cover="cover" :coverVal="coverVal"></cover>
</div>
<!-- <textarea
required
name="prodemotwo"
v-model="prodemotwo"
value
></textarea>
></textarea> -->
</div>
<div class="xx">
<h5>经费预算</h5>
<!-- <textarea name="funds" v-model="funds" required value></textarea> -->
<div id="rich">
<div class="rich">
<rich-text-one
@quillVal="quillVal"
:initialTextVal="initialTextVal"
@@ -604,18 +649,18 @@
</template>
<script>
import HeaderNav from '../../components/HeaderNav'
import FooterNav from '../../components/FooterNav'
import RichTextOne from '../../components/RichTextOne'
const path = require('path')
const files = require.context('@/components', false, /\.vue$/)
const modules = {}
files.keys().forEach(key => {
const name = path.basename(key, '.vue')
modules[name] = files(key).default || files(key)
})
var preD = function (e) {
e.preventDefault()
}
export default {
components: {
HeaderNav,
FooterNav,
RichTextOne
},
components: modules,
props: {},
data () {
return {
@@ -624,6 +669,24 @@ export default {
bgData: null,
initialTextVal: '',
initialText: '',
aboutUsText: '',
aboutUsVal: '',
projectBriefVal: '',
projectBriefText: '',
projectAssessmentVal: '',
projectAssessmentText: '',
existingBasisVal: '',
existingBasisText: '',
methodsWayVal: '',
methodsWayText: '',
schedulingVal: '',
schedulingText: '',
desiredEffectVal: '',
desiredEffectText: '',
divisionLaborVal: '',
divisionLaborText: '',
coverVal: '',
coverText: '',
thff: false,
imgUrl: {
bg0: require('../../../static/img/bg0.png'),
@@ -725,6 +788,33 @@ export default {
return this.$confirm(`确定移除 ${file.name} ?`)
},
/** 获取富文本内容 */
aboutUs (data) {
this.aboutUsText = data
},
projectBrief (data) {
this.projectBriefText = data
},
projectAssessment (data) {
this.projectAssessmentText = data
},
existingBasis (data) {
this.existingBasisText = data
},
methodsWay (data) {
this.methodsWayText = data
},
scheduling (data) {
this.schedulingText = data
},
desiredEffect (data) {
this.desiredEffectText = data
},
divisionLabor (data) {
this.divisionLaborText = data
},
cover (data) {
this.coverText = data
},
quillVal (data) {
this.initialText = data
},
@@ -742,7 +832,7 @@ export default {
if (s === 0) {
this.sub = s
}
// this.sub = s
// this.sub = s;
if (s === 1) {
if (
@@ -795,40 +885,59 @@ export default {
let regd = /^(\(\d{3,4}\)|\d{3,4}-|\s)?\d{7,14}$/
let regs = /^(0|86|17951)?(13[0-9]|15[012356789]|166|17[3678]|18[0-9]|14[57])[0-9]{8}$/
let text = this.funds
text = this.initialText
this.funds = text
this.decldes = this.aboutUsText
this.prodes = this.projectBriefText
this.prodemo = this.projectAssessmentText
this.prodemojc = this.existingBasisText
this.prodemotj = this.methodsWayText
this.prodemojd = this.schedulingText
this.prodemoxg = this.desiredEffectText
this.prodemofg = this.divisionLaborText
this.prodemotwo = this.coverText
this.funds = this.initialText
console.log(
this.decldes,
this.prodes,
this.prodemo,
this.prodemojc,
this.prodemotj,
this.prodemojd,
this.prodemoxg,
this.prodemofg,
this.prodemotwo,
this.funds
)
this.proimages = [...this.fileLists, ...this.picture]
if (this.sub === 1) {
if (
this.prespo === '' ||
this.respoadd === '' ||
this.respopcode === '' ||
this.respomail === '' ||
this.respopname === '' ||
this.respopost === '' ||
this.respoophone === '' ||
this.respocname === '' ||
this.respocpost === '' ||
this.respocophone === '' ||
this.decldes === '' ||
this.prodes === '' ||
this.prodemo === '' ||
this.prodemojc === '' ||
this.prodemotj === '' ||
this.prodemojd === '' ||
this.prodemoxg === '' ||
this.prodemofg === '' ||
this.prodemotwo === '' ||
this.funds === ''
this.respoadd === '' ||
this.respopcode === '' ||
this.respomail === '' ||
this.respopname === '' ||
this.respopost === '' ||
this.respoophone === '' ||
this.respocname === '' ||
this.respocpost === '' ||
this.respocophone === '' ||
this.decldes === '' ||
this.prodes === '' ||
this.prodemo === '' ||
this.prodemojc === '' ||
this.prodemotj === '' ||
this.prodemojd === '' ||
this.prodemoxg === '' ||
this.prodemofg === '' ||
this.prodemotwo === '' ||
this.funds === ''
) {
alert('以上内容不可为空!')
return
} else if (
!regd.test(this.respoophone) ||
!regd.test(this.respocophone)
!regd.test(this.respocophone)
) {
alert('请填写正确的电话号码!')
return false
@@ -841,7 +950,6 @@ export default {
}
} else {
alert('数据出错!')
return
}
if (this.respoptel !== '' && !regs.test(this.respoptel)) {
@@ -1055,16 +1163,24 @@ export default {
this.respocpost = data.respocpost
this.respocophone = data.respocophone
this.respoctel = data.respoctel
this.decldes = data.decldes
this.prodes = data.prodes
this.prodemo = data.prodemo
this.prodemojc = data.prodemojc
this.prodemotj = data.prodemotj
this.prodemojd = data.prodemojd
this.prodemoxg = data.prodemoxg
this.prodemofg = data.prodemofg
this.prodemotwo = data.prodemotwo
this.prodemojc = data.prodemojc
this.aboutUsVal = data.decldes
this.aboutUsText = data.decldes
this.projectBriefVal = data.prodes
this.projectBriefText = data.prodes
this.projectAssessmentVal = data.prodemo
this.projectAssessmentText = data.prodemo
this.existingBasisVal = data.prodemojc
this.existingBasisText = data.prodemojc
this.methodsWayVal = data.prodemotj
this.methodsWayText = data.prodemotj
this.schedulingVal = data.prodemojd
this.schedulingText = data.prodemojd
this.desiredEffectVal = data.prodemoxg
this.desiredEffectText = data.prodemoxg
this.divisionLaborVal = data.prodemofg
this.divisionLaborText = data.prodemofg
this.coverVal = data.prodemotwo
this.coverText = data.prodemotwo
this.initialTextVal = data.funds
this.initialText = data.funds
@@ -1104,9 +1220,9 @@ export default {
</script>
<style lang="scss" scoped>
#rich {
.rich {
width: 100%;
margin: 30px auto 30px;
margin: 30px auto 0px;
}
.img-img {
margin-top: 25px;

View File

@@ -136,41 +136,41 @@
</div>
<h3>申报单位简介:</h3>
<div class="one-e">
<p>{{zData.decldes}}</p>
<p v-html="zData.decldes">{{zData.decldes}}</p>
</div>
<h3>项目简介</h3>
<div class="one-e">
<p>{{zData.prodes}}</p>
<p v-html="zData.prodes">{{zData.prodes}}</p>
</div>
<h3>项目论证</h3>
<h4>() 项目实施的必要性可行性</h4>
<div class="one-e">
<p>{{zData.prodemo}}</p>
<p v-html="zData.prodemo">{{zData.prodemo}}</p>
</div>
<h4>() 项目实施的已有基础具体方法和途径及进度安排预期效果及完成时间</h4>
<h5>1.项目实施的已有基础</h5>
<div class="one-e">
<p>{{zData.prodemojc}}</p>
<p v-html="zData.prodemojc">{{zData.prodemojc}}</p>
</div>
<h5>2.具体方法和途径</h5>
<div class="one-e">
<p>{{zData.prodemotj}}</p>
<p v-html="zData.prodemotj">{{zData.prodemotj}}</p>
</div>
<h5>3.进度安排</h5>
<div class="one-e">
<p>{{zData.prodemojd}}</p>
<p v-html="zData.prodemojd">{{zData.prodemojd}}</p>
</div>
<h5>4.预期效果</h5>
<div class="one-e">
<p>{{zData.prodemoxg}}</p>
<p v-html="zData.prodemoxg">{{zData.prodemoxg}}</p>
</div>
<h5>5.项目团队及分工</h5>
<div class="one-e">
<p>{{zData.prodemofg}}</p>
<p v-html="zData.prodemofg">{{zData.prodemofg}}</p>
</div>
<h4>() 项目实施涵盖的范围实施的规模服务的人群创新之处等</h4>
<div class="one-e">
<p>{{zData.prodemotwo}}</p>
<p v-html="zData.prodemotwo">{{zData.prodemotwo}}</p>
</div>
<h3>经费预算:</h3>
<div id="one_e" v-html="zData.funds">{{zData.funds}}</div>