123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369 |
- <template>
- <div class="app-container">
- <div class="box-container">
- <div class="contain-title">修改平台信息</div>
- </div>
- <div class="content-container">
- <div class="main-info">
- <el-form :model="formObj" ref="formObj" :rules="rulesObj" label-width="80px" class="update-wrapper demo-ruleForm">
- <el-row :gutter="25">
- <el-col :span="14">
- <el-row :gutter="20" class="update-main">
- <el-col :span="24">
- <el-form-item label="平台名称">{{formObj.name}}</el-form-item>
- </el-col>
- <el-col :span="item.span||''" v-for="item in formItem" :key="item.index">
- <el-form-item :label="item.tit" :prop="item.prop">
- <el-input v-if="item.textarea" type="textarea" :rows="8" v-model="formObj[item.prop]" placeholder="请填写一个平台的简单介绍,让大家更好地了解平台" maxlength="5000"></el-input>
-
- <el-input v-else v-model="formObj[item.prop]" :placeholder="`请填写${item.place||''}${item.tit}`" :maxlength="item.num||''"></el-input>
- </el-form-item>
- </el-col>
- <el-col :span="24">
- <el-form-item align="center">
- <el-button type="primary" @click="submitForm('formObj')">保存</el-button>
- </el-form-item>
- </el-col>
- </el-row>
- </el-col>
- <el-col :span="10">
- <div class="fileBox" v-on:uploadfun="uploadfun">
- <uploadFile :uploadImg=uploadImg></uploadFile>
- <p class="teimg">上传封面图片</p>
- <p class="tetype">PNG/JPG/JPEG格式,2M以内</p>
- </div>
-
- <el-upload
- class="avatar-uploader"
- :action="uploadUrl"
- :show-file-list="false"
- ref="uploadLogo"
- :on-success="handleAvatarSuccess"
- :before-upload="beforeAvatarUpload">
- <img v-if="imageUrl" :src="imageUrl" class="avatar">
- <i v-else class="el-icon-plus avatar-uploader-icon"></i>
- </el-upload>
- <div class="update-tip">PNG/JPG/JPEG格式<br>大小2M以内</div>
- </div> -->
- </el-col>
- <el-col :offset="16">
- <el-form-item>
- <div style="line-height: 10px;">
- <p>最后修改人: {{formObj.modifier}}</p>
- <p>最后修改时间: {{formObj.modifyTime}}</p>
- </div>
- </el-form-item>
- </el-col>
- </el-row>
- </el-form>
- </div>
- </div>
- </div>
- </template>
- <script>
- import {
- queryPlat,
- updatePlat,
- uploadLogo
- } from '@/api/platUpdate'
- import {
- requiredTip,
- limitNumTip,
- checkEmailV
- } from '@/utils/validator'
- import { parseTime } from '@/utils'
- import queryDict from '@/utils/queryDict'
- import queryBase from '@/utils/queryBase'
- import cityPicker from '@/components/CityPicker'
- import uploadFile from '@/components/uploadFile'
- export default {
- data() {
- return {
- uploadImg: {
- url: uploadLogo,
- width: '280px',
- height: '200px',
- fun: 'uploadfun'
- },
- AllCitys: [],
- formItem: [
- {
- span: 24,
- prop: 'url',
- tit: '平台网址',
- required: true
- },
- {
- span: 24,
- prop: 'manageOrg',
- tit: '管理机构',
- required: true
- },
- {
- span: 12,
- prop: 'addr',
- city: true,
- tit: '所在城市',
- required: true
- },
- {
- span: 12,
- prop: 'zipCode',
- tit: '平台邮编',
- num: 20
- },
- {
- span: 24,
- prop: 'location',
- tit: '详细地址',
- num: 50,
- place: '管理机构'
- },
- {
- span: 12,
- prop: 'servicePhone',
- tit: '客服电话',
- num: 50,
- required: true
- },
- {
- span: 12,
- prop: 'serviceEmail',
- tit: '客服邮箱',
- num: 50,
- required: true
- },
- {
- span: 24,
- prop: 'operateTime',
- tit: '工作时间',
- num: 50
- },
- {
- span: 12,
- prop: 'linkman',
- tit: '联系人',
- required: true,
- place: '平台',
- num: 10
- },
- {
- span: 12,
- prop: 'job',
- tit: '职位',
- required: true,
- place: '联系人',
- num: 20
- },
- {
- span: 24,
- prop: 'comp',
- tit: '所在机构',
- required: true,
- place: '联系人',
- num: 50
- },
- {
- span: 12,
- prop: 'linkphone',
- tit: '联系电话',
- num: 50,
- required: true
- },
- {
- span: 12,
- prop: 'linkemail',
- tit: '联系邮箱',
- num: 50
- },
- {
- span: 24,
- prop: 'descp',
- tit: '平台简介',
- textarea: true,
- required: true,
- num: 5000
- }
- ],
- formObj: {
- name: '',
- logo: '',
- url: '',
- manageOrg: '',
- addr: '',
- location: '',
- zipCode: '',
- servicePhone: '',
- serviceEmail: '',
- operateTime: '',
- linkman: '',
- job: '',
- department: '',
- comp: '',
- linkphone: '',
- linkemail: '',
- descp: ''
- },
- rulesObj: {}
- }
- },
- components: {
- cityPicker,
- uploadFile
- },
- computed: {
- },
- created() {
- this.getDictoryData()
- this.pushRulesFn()
- this.queryPlatInfo()
- },
- methods: {
- getDictoryData() {
- const that = this
- queryDict.applyDict('XZQH', function(dictData) {
- dictData.map(item => {
- that.AllCitys[item.code] = item.fullCaption
- })
- })
- },
- pushRulesFn() {
- const formItem = this.formItem
- const rulesObj = this.rulesObj
- for (let i = 0; i < formItem.length; ++i) {
- const ru = []
- if (formItem[i].required) {
- ru.push({ required: true, message: requiredTip(formItem[i].tit), trigger: 'blur' })
- }
- if (formItem[i].num) {
- ru.push({ max: formItem[i].num, message: limitNumTip(formItem[i].tit, formItem[i].num), trigger: 'blur, change' })
- }
- switch (formItem[i].prop) {
- case 'linkemail':
- ru.push({ validator: checkEmailV, trigger: 'blur' })
- break
- case 'serviceEmail':
- ru.push({ validator: checkEmailV, trigger: 'blur' })
- break
- }
- rulesObj[formItem[i].prop] = ru
- }
- },
- queryPlatInfo() {
- var that = this
- this.$http.get(queryPlat, {}, function(res) {
- if (res.success) {
- const obj = res.data
- if (obj.modifyTime) {
- obj.modifyTime = parseTime(obj.modifyTime)
- }
- if (obj.modifier) {
- queryBase.getAdminUser(obj.modifier, function(sc, value) {
- if (sc) {
- obj.modifier = value.name
- }
- })
- }
- that.formObj = obj
- }
- })
- },
- submitForm(formName) {
- this.$refs[formName].validate((valid) => {
- if (valid) {
-
-
-
-
-
-
-
-
-
-
-
- const form = this.formObj
- this.$http.put(updatePlat, {
- name: form.name,
- logo: form.logo,
- url: form.url,
- manageOrg: form.manageOrg,
- addr: form.addr,
- location: form.location,
- zipCode: form.zipCode,
- servicePhone: form.servicePhone,
- serviceEmail: form.serviceEmail,
- operateTime: form.operateTime,
- linkman: form.linkman,
- job: form.job,
- department: form.department,
- comp: form.comp,
- linkphone: form.linkphone,
- linkemail: form.linkemail,
- descp: form.descp
- }, function(res) {
- this.$message({
- message: '平台信息修改成功!',
- type: 'success'
- })
- })
- } else {
- return false
- }
- })
- },
- uploadfun(value) {
- console.log(value)
- },
- toshow(value) {
- this.formObj.addr = value
- }
- }
- }
- </script>
- <style rel="stylesheet/scss" lang="scss">
- .main-info{
- padding: 0 20px;
- .update-logo{
- width: 280px;
- .avatar-uploader{
- .el-upload{
- /*center-items(280px,187px);*/
- border: 1px dashed #d9d9d9;
- cursor: pointer;
- position: relative;
- .el-upload:hover {
- border-color: #dadada;
- }
- .avatar-uploader-icon{
- font-size: 40px;
- color: #8c939d;
- width: 280px;
- height: 187px;
- line-height: 187px;
- text-align: center;
- }
- }
- }
- .update-tip{
- margin-top:15px;
- text-align:center;
- font-size:14px;
- /*color:$secondaryFont;*/
- }
- }
- .update-main{
- .update-title{
- font-size:30px;
- line-height:54px;
- margin-bottom:16px;
- padding-left:10px;
- }
- }
- }
- </style>
|