|
|
@@ -1,16 +1,13 @@
|
|
|
<!-- -->
|
|
|
<template>
|
|
|
- <div v-loading.fullscreen.lock="loading"
|
|
|
- element-loading-text="拼命加载中"
|
|
|
- element-loading-spinner="el-icon-loading"
|
|
|
- class="edit-cultural-relic"
|
|
|
- element-loading-background="rgba(0, 0, 0, 0.8)">
|
|
|
+ <div v-loading.fullscreen.lock="loading" element-loading-text="拼命加载中" element-loading-spinner="el-icon-loading"
|
|
|
+ class="edit-cultural-relic" element-loading-background="rgba(0, 0, 0, 0.8)">
|
|
|
<main-top :crumb="crumbData"></main-top>
|
|
|
<div class="table-interface">
|
|
|
<div class="top-body">
|
|
|
<div class="top-title">文物信息:</div>
|
|
|
<div class="form-con">
|
|
|
- <el-form ref="form" :rules="rules" status-icon :model="form" label-width="120px">
|
|
|
+ <el-form ref="form" :rules="rules" status-icon :model="form" label-width="120px">
|
|
|
<el-form-item prop="name" label="文物名称:" style="width:330px;">
|
|
|
<el-input v-model="form.name" placeholder="请输入文物名称" class="nameInput"></el-input>
|
|
|
</el-form-item>
|
|
|
@@ -22,43 +19,44 @@
|
|
|
</el-form-item>
|
|
|
<el-form-item label="文物类别:">
|
|
|
<el-select v-model="form.typeId" placeholder="请选择文物类别">
|
|
|
- <el-option v-for="(item,i) in plist" :key="i" :label="item.name" :value="item.id"></el-option>
|
|
|
+ <el-option v-for="(item, i) in plist" :key="i" :label="item.name" :value="item.id"></el-option>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
|
|
|
- <el-form-item label="分类年代:" :rules="[
|
|
|
- { required: true}
|
|
|
+ <el-form-item label="分类年代:" :rules="[
|
|
|
+ { required: true }
|
|
|
]">
|
|
|
<el-select v-model="form.timeId" placeholder="请选择分类年代" style="width:400px">
|
|
|
- <el-option v-for="(item,i) in tlist" :key="i" :label="item.name" :value="item.id"></el-option>
|
|
|
+ <el-option v-for="(item, i) in tlist" :key="i" :label="item.name" :value="item.id"></el-option>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="文物排序:">
|
|
|
<el-input v-model="form.num" placeholder="请输入文物排序"></el-input>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="文物年代:" v-if="0">
|
|
|
+ <el-form-item label="文物年代:" v-if="0">
|
|
|
<el-input v-model="form.typeTime" maxlength="50" show-word-limit placeholder="请输入文物年代"></el-input>
|
|
|
</el-form-item>
|
|
|
|
|
|
- <el-form-item label="文物介绍:">
|
|
|
- <vue-editor v-model="form.description" />
|
|
|
+ <el-form-item label="文物介绍:" class="txtBox">
|
|
|
+ <vue-editor v-model="form.description"/>
|
|
|
+ <div class="txtLength">{{form.description.length}}/500</div>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="文物介绍预览:" v-if="0">
|
|
|
- <el-input type="textarea" v-model="form.description1" disabled />
|
|
|
+ <el-input type="textarea" v-model="form.description1" disabled />
|
|
|
</el-form-item>
|
|
|
<el-form-item label="出土信息:" style="width:100%;" v-if="0">
|
|
|
<el-input v-model="form.venue" maxlength="50" show-word-limit placeholder="请输入出土信息"></el-input>
|
|
|
</el-form-item>
|
|
|
|
|
|
- <el-form-item label="文物用途:" style="width:100%;" v-if="0">
|
|
|
+ <el-form-item label="文物用途:" style="width:100%;" v-if="0">
|
|
|
<el-input v-model="form.purpose" maxlength="50" show-word-limit placeholder="请输入文物用途"></el-input>
|
|
|
</el-form-item>
|
|
|
|
|
|
- <el-form-item label="文物材质:" style="width:100%;" v-if="0">
|
|
|
+ <el-form-item label="文物材质:" style="width:100%;" v-if="0">
|
|
|
<el-input v-model="form.texture" maxlength="50" show-word-limit placeholder="请输入文物材质"></el-input>
|
|
|
</el-form-item>
|
|
|
|
|
|
- <el-form-item label="文物尺寸:" style="width:100%;" v-if="0">
|
|
|
+ <el-form-item label="文物尺寸:" style="width:100%;" v-if="0">
|
|
|
<el-input v-model="form.size" maxlength="50" show-word-limit placeholder="请输入文物尺寸"></el-input>
|
|
|
</el-form-item>
|
|
|
|
|
|
@@ -71,36 +69,26 @@
|
|
|
<div class="form-con">
|
|
|
<el-form ref="form" :model="form" label-width="120px">
|
|
|
<el-form-item label="文物展示方式:">
|
|
|
- <el-radio-group v-model="form.type">
|
|
|
- <el-radio :label="'2D'" >2D</el-radio>
|
|
|
- <el-radio :label="'3D'" >3D</el-radio>
|
|
|
- </el-radio-group>
|
|
|
+ <el-radio-group v-model="form.type">
|
|
|
+ <el-radio :label="'2D'">2D</el-radio>
|
|
|
+ <el-radio :label="'3D'">3D</el-radio>
|
|
|
+ </el-radio-group>
|
|
|
</el-form-item>
|
|
|
|
|
|
<template v-if="form.type === '2D'">
|
|
|
<el-form-item label="轮播板式:">
|
|
|
<div class="banshi">
|
|
|
- <draggable v-model="uploadList" group="people" @start="drag=true" @end="drag=false">
|
|
|
- <div v-for="(item,i) in uploadList" :key="i" class="imgdiv">
|
|
|
- <img v-if="item" :src="$serverName.replace('/zhoushan','') + item" alt="">
|
|
|
+ <draggable v-model="uploadList" group="people" @start="drag = true" @end="drag = false">
|
|
|
+ <div v-for="(item, i) in uploadList" :key="i" class="imgdiv">
|
|
|
+ <img v-if="item" :src="$serverName.replace('/zhoushan', '') + item" alt="">
|
|
|
<i class="el-icon-circle-close" @click.stop="delUploadItem(i)"></i>
|
|
|
</div>
|
|
|
</draggable>
|
|
|
</div>
|
|
|
- <el-upload
|
|
|
- class="upload-demo"
|
|
|
- drag
|
|
|
- :on-success="upload_imglist_success"
|
|
|
- :action='uploadUrl'
|
|
|
- :headers="{
|
|
|
- token,
|
|
|
- }"
|
|
|
- :limit="10"
|
|
|
- :on-exceed="handleExceed"
|
|
|
- :before-upload="before_imglistUpload"
|
|
|
- multiple
|
|
|
- :show-file-list="false"
|
|
|
- >
|
|
|
+ <el-upload class="upload-demo" drag :on-success="upload_imglist_success" :action='uploadUrl' :headers="{
|
|
|
+ token,
|
|
|
+ }" :limit="10" :on-exceed="handleExceed" :before-upload="before_imglistUpload" multiple
|
|
|
+ :show-file-list="false">
|
|
|
<div>
|
|
|
<i class="el-icon-upload"></i>
|
|
|
<div class="el-upload__text">
|
|
|
@@ -120,29 +108,15 @@
|
|
|
</el-form-item>
|
|
|
|
|
|
<el-form-item label="展示封面:">
|
|
|
- <Cropper
|
|
|
- :width="512"
|
|
|
- :height="512"
|
|
|
- :fixed-number="[1,1]"
|
|
|
- :uploadUrl = "'/exhibition/upload'"
|
|
|
- :img="form.pic"
|
|
|
- @clearImg="form.pic=''"
|
|
|
- @subUploadSucceed="getShopImages"
|
|
|
- />
|
|
|
+ <Cropper :width="512" :height="512" :fixed-number="[1, 1]" :uploadUrl="'/exhibition/upload'"
|
|
|
+ :img="form.pic" @clearImg="form.pic = ''" @subUploadSucceed="getShopImages" />
|
|
|
<span class="wwtxt" style="color:#C0C4CC">建议上传512*512的png格式图片</span>
|
|
|
</el-form-item>
|
|
|
|
|
|
<el-form-item label="动画封面:">
|
|
|
- <el-upload
|
|
|
- class="avatar-uploader"
|
|
|
- :action="uploadUrl"
|
|
|
- :headers="{
|
|
|
- token,
|
|
|
- }"
|
|
|
- :show-file-list="false"
|
|
|
- :before-upload="beforeAvatarUpload"
|
|
|
- :on-success="upload_avatar_success"
|
|
|
- >
|
|
|
+ <el-upload class="avatar-uploader" :action="uploadUrl" :headers="{
|
|
|
+ token,
|
|
|
+ }" :show-file-list="false" :before-upload="beforeAvatarUpload" :on-success="upload_avatar_success">
|
|
|
<img v-if="form.unityPic" :src="form.unityPic" class="avatar">
|
|
|
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
|
|
|
</el-upload>
|
|
|
@@ -154,20 +128,12 @@
|
|
|
</el-form-item> -->
|
|
|
|
|
|
<el-form-item label="unity文件:" v-if="0">
|
|
|
- <el-upload
|
|
|
- class="upload-demo"
|
|
|
- drag
|
|
|
- :headers="{
|
|
|
- token
|
|
|
- }"
|
|
|
- :action="uploadUrl"
|
|
|
- :file-list="unityUrlList"
|
|
|
- :show-file-list="true"
|
|
|
- :before-remove="beforeUnityUrlRemove"
|
|
|
- :before-upload="beforeUnityUpload"
|
|
|
- :on-success="upload_unity_success"
|
|
|
- >
|
|
|
- <div >
|
|
|
+ <el-upload class="upload-demo" drag :headers="{
|
|
|
+ token
|
|
|
+ }" :action="uploadUrl" :file-list="unityUrlList" :show-file-list="true"
|
|
|
+ :before-remove="beforeUnityUrlRemove" :before-upload="beforeUnityUpload"
|
|
|
+ :on-success="upload_unity_success">
|
|
|
+ <div>
|
|
|
<i class="el-icon-upload"></i>
|
|
|
<div class="el-upload__text">
|
|
|
将文件拖到此处,或
|
|
|
@@ -179,19 +145,10 @@
|
|
|
</el-form-item>
|
|
|
|
|
|
<el-form-item label="视频动画:" v-if="0">
|
|
|
- <el-upload
|
|
|
- class="upload-demo"
|
|
|
- drag
|
|
|
- :headers="{
|
|
|
- token
|
|
|
- }"
|
|
|
- :file-list="contentUrlList"
|
|
|
- :show-file-list="true"
|
|
|
- :action="uploadUrl"
|
|
|
- :before-remove="beforeRemove"
|
|
|
- :before-upload="beforeUpload"
|
|
|
- :on-success="upload_success"
|
|
|
- >
|
|
|
+ <el-upload class="upload-demo" drag :headers="{
|
|
|
+ token
|
|
|
+ }" :file-list="contentUrlList" :show-file-list="true" :action="uploadUrl" :before-remove="beforeRemove"
|
|
|
+ :before-upload="beforeUpload" :on-success="upload_success">
|
|
|
<div>
|
|
|
<i class="el-icon-upload"></i>
|
|
|
<div class="el-upload__text">
|
|
|
@@ -203,22 +160,12 @@
|
|
|
</el-upload>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="二维码信息:">
|
|
|
- <el-upload
|
|
|
- class="avatar-uploader"
|
|
|
- :action="uploadUrl"
|
|
|
- :headers="{
|
|
|
- token,
|
|
|
- }"
|
|
|
- :show-file-list="false"
|
|
|
- :before-upload="beforeqrCodeUpload"
|
|
|
- :on-success="upload_qrCode_success"
|
|
|
- >
|
|
|
+ <el-upload class="avatar-uploader" :action="uploadUrl" :headers="{
|
|
|
+ token,
|
|
|
+ }" :show-file-list="false" :before-upload="beforeqrCodeUpload" :on-success="upload_qrCode_success">
|
|
|
<div v-if="form.qrCode" class="imgdiv">
|
|
|
- <img
|
|
|
- style="width: 100%;height:100%;"
|
|
|
- :src="$serverName.replace('/zhoushan','') + form.qrCode"
|
|
|
- >
|
|
|
- <i class="el-icon-circle-close" @click.stop="form.qrCode=''"></i>
|
|
|
+ <img style="width: 100%;height:100%;" :src="$serverName.replace('/zhoushan', '') + form.qrCode">
|
|
|
+ <i class="el-icon-circle-close" @click.stop="form.qrCode = ''"></i>
|
|
|
</div>
|
|
|
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
|
|
|
</el-upload>
|
|
|
@@ -226,8 +173,8 @@
|
|
|
</el-form-item>
|
|
|
<el-form-item label="是否展示:">
|
|
|
<el-radio-group v-model="form.state">
|
|
|
- <el-radio :label="0" >是</el-radio>
|
|
|
- <el-radio :label="1" >否</el-radio>
|
|
|
+ <el-radio :label="0">是</el-radio>
|
|
|
+ <el-radio :label="1">否</el-radio>
|
|
|
</el-radio-group>
|
|
|
</el-form-item>
|
|
|
</el-form>
|
|
|
@@ -345,7 +292,7 @@ export default {
|
|
|
this.uploadList.push(data.data)
|
|
|
},
|
|
|
async onSubmit () {
|
|
|
- let {name,
|
|
|
+ let { name,
|
|
|
typeId,
|
|
|
type,
|
|
|
timeId,
|
|
|
@@ -368,7 +315,7 @@ export default {
|
|
|
remarks,
|
|
|
description,
|
|
|
verticalName,
|
|
|
- id} = this.form
|
|
|
+ id } = this.form
|
|
|
if (!name) {
|
|
|
this.$notify.error({
|
|
|
title: '错误',
|
|
|
@@ -391,7 +338,16 @@ export default {
|
|
|
typeImages = this.uploadList
|
|
|
}
|
|
|
description = this.form.description1
|
|
|
- let data = {name,
|
|
|
+ if (description && description.length > 500) {
|
|
|
+ this.$notify.error({
|
|
|
+ title: '错误',
|
|
|
+ message: '文物介绍不能超过500字',
|
|
|
+ duration: 2000
|
|
|
+ })
|
|
|
+ return
|
|
|
+ }
|
|
|
+ let data = {
|
|
|
+ name,
|
|
|
typeId,
|
|
|
timeId,
|
|
|
typeTime,
|
|
|
@@ -414,7 +370,8 @@ export default {
|
|
|
state,
|
|
|
verticalName,
|
|
|
urlList: '',
|
|
|
- description}
|
|
|
+ description
|
|
|
+ }
|
|
|
if (data.typeImages) {
|
|
|
for (let i = 0; i < data.typeImages.length; i++) {
|
|
|
if (i === 0) data.urlList += data.typeImages[i]
|
|
|
@@ -621,9 +578,11 @@ export default {
|
|
|
position: relative;
|
|
|
overflow: hidden;
|
|
|
}
|
|
|
+
|
|
|
.avatar-uploader .el-upload:hover {
|
|
|
border-color: #409eff;
|
|
|
}
|
|
|
+
|
|
|
.avatar-uploader-icon {
|
|
|
font-size: 28px;
|
|
|
color: #8c939d;
|
|
|
@@ -632,17 +591,19 @@ export default {
|
|
|
line-height: 178px;
|
|
|
text-align: center;
|
|
|
}
|
|
|
+
|
|
|
.avatar {
|
|
|
width: 178px;
|
|
|
height: 178px;
|
|
|
display: block;
|
|
|
}
|
|
|
+
|
|
|
.ql-picker-label {
|
|
|
line-height: 1;
|
|
|
overflow: hidden;
|
|
|
}
|
|
|
|
|
|
-.avatar-uploader{
|
|
|
+.avatar-uploader {
|
|
|
border: 1px dashed #ccc;
|
|
|
border-radius: 6px;
|
|
|
cursor: pointer;
|
|
|
@@ -651,17 +612,20 @@ export default {
|
|
|
width: 178px;
|
|
|
margin-top: 10px;
|
|
|
}
|
|
|
+
|
|
|
.avatar-uploader .el-upload:hover {
|
|
|
border-color: #409eff;
|
|
|
}
|
|
|
+
|
|
|
.avatar-uploader-icon {
|
|
|
font-size: 28px;
|
|
|
color: #8c939d;
|
|
|
width: 178px;
|
|
|
height: 178px;
|
|
|
- line-height: 178px!important;
|
|
|
+ line-height: 178px !important;
|
|
|
text-align: center;
|
|
|
}
|
|
|
+
|
|
|
.avatar {
|
|
|
width: 178px;
|
|
|
height: 178px;
|
|
|
@@ -672,11 +636,11 @@ export default {
|
|
|
.verticla-input {
|
|
|
height: 200px;
|
|
|
width: 40px;
|
|
|
+
|
|
|
textarea {
|
|
|
height: 100% !important;
|
|
|
resize: none;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
</style>
|