Browse Source

修复bug

shaogen1995 3 năm trước cách đây
mục cha
commit
32d3438dc6

+ 1 - 1
万物墙后台/src/configue/http.js

@@ -8,7 +8,7 @@ let loading = ''
 
 // 配置请求域名
 let layoutBoxIsShow
-const serverName = isProduction ? '/zhoushan' : 'http://project.4dage.com:8018/zhoushan'
+const serverName = isProduction ? '/zhoushan' : 'http://project.4dage.com:8018'
 // http://192.168.0.135:8018
 const exceptUrls = ['/login']
 

+ 8 - 0
万物墙后台/src/pages/cultural-relic/index.vue

@@ -154,6 +154,13 @@ export default {
     //   this.refresh()
     // }
   },
+  created () {
+    // 看看有没有存储的页码
+    let tempNum = sessionStorage.getItem('wzWwqPage')
+    if (tempNum) {
+      this.currentPage = Number(tempNum)
+    }
+  },
   mounted () {
     this.getPositionList()
     this.getTypeList()
@@ -268,6 +275,7 @@ export default {
       this.loading = false
     },
     handleCurrentChange (val) {
+      sessionStorage.setItem('wzWwqPage', val)
       this.currentPage = val
     },
     async getInformation () {

+ 222 - 96
万物墙后台/src/pages/editPages/cultural-relic/index.vue

@@ -1,69 +1,130 @@
 <!--  -->
 <template>
-  <div  v-loading.fullscreen.lock="loading"
+  <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)">
+    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-item prop="name" label="文物名称:" style="width:318px;">
-              <el-input v-model="form.name" placeholder="请输入文物名称"></el-input>
+          <el-form
+            ref="form"
+            :rules="rules"
+            status-icon
+            :model="form"
+            label-width="120px"
+          >
+            <el-form-item prop="name" label="文物名称:" style="width: 318px">
+              <el-input
+                v-model="form.name"
+                placeholder="请输入文物名称"
+                maxlength="20"
+              ></el-input>
             </el-form-item>
             <el-form-item prop="verticalName" label="竖排文物名" v-if="0">
-              <el-input type="textarea" v-model="form.verticalName" class="verticla-input" />
+              <el-input
+                type="textarea"
+                v-model="form.verticalName"
+                class="verticla-input"
+              />
               <!-- <textarea rows="10" >
                 在w3school,你可以找到你所需要的所有的网站建设教程。
                 </textarea> -->
             </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-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-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-select>
             </el-form-item>
             <el-form-item label="文物排序:">
-              <el-input v-model="form.num" placeholder="请输入文物排序"></el-input>
+              <el-input
+                v-model="form.num"
+                placeholder="请输入文物排序"
+              ></el-input>
             </el-form-item>
-            <el-form-item label="文物年代:"  v-if="0">
-              <el-input v-model="form.typeTime" maxlength="50" show-word-limit placeholder="请输入文物年代"></el-input>
+            <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" />
+              <vue-editor v-model="form.description" />
             </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 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-input v-model="form.purpose" maxlength="50" show-word-limit placeholder="请输入文物用途"></el-input>
+            <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-input v-model="form.texture" maxlength="50" show-word-limit placeholder="请输入文物材质"></el-input>
+            <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-input v-model="form.size" maxlength="50" show-word-limit placeholder="请输入文物尺寸"></el-input>
+            <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>
 
-            <el-form-item label="备注信息:" style="width:100%;" v-if="0">
-              <el-input v-model="form.remarks" maxlength="50" show-word-limit placeholder="请输入文物出土地点"></el-input>
+            <el-form-item label="备注信息:" style="width: 100%" v-if="0">
+              <el-input
+                v-model="form.remarks"
+                maxlength="50"
+                show-word-limit
+                placeholder="请输入文物出土地点"
+              ></el-input>
             </el-form-item>
           </el-form>
         </div>
@@ -71,19 +132,36 @@
         <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="biaoshi">*</div>
                 <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="">
-                      <i class="el-icon-circle-close" @click.stop="delUploadItem(i)"></i>
+                  <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>
@@ -91,7 +169,7 @@
                   class="upload-demo"
                   drag
                   :on-success="upload_imglist_success"
-                  :action='uploadUrl'
+                  :action="uploadUrl"
                   :headers="{
                     token,
                   }"
@@ -115,25 +193,31 @@
               </el-form-item>
             </template>
 
-            <el-form-item v-else label="文物模型:" style="width:340px;">
-              <el-input v-model="form.modelUrl" placeholder="请输入文物模型链接(url地址)"></el-input>
+            <el-form-item v-else label="文物模型:" style="width: 340px">
+              <div class="biaoshi">*</div>
+              <el-input
+                v-model="form.modelUrl"
+                placeholder="请输入文物模型链接(url地址)"
+              ></el-input>
             </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>
+              <span class="wwtxt" style="color: #c0c4cc"
+                >建议上传512*512的png格式图片</span
+              >
             </el-form-item>
 
             <el-form-item label="动画封面:">
-               <el-upload
+              <el-upload
                 class="avatar-uploader"
                 :action="uploadUrl"
                 :headers="{
@@ -142,11 +226,13 @@
                 :show-file-list="false"
                 :before-upload="beforeAvatarUpload"
                 :on-success="upload_avatar_success"
-                >
-                <img v-if="form.unityPic" :src="form.unityPic" class="avatar">
+              >
+                <img v-if="form.unityPic" :src="form.unityPic" class="avatar" />
                 <i v-else class="el-icon-plus avatar-uploader-icon"></i>
               </el-upload>
-              <span class="wwtxt" style="color:#C0C4CC">建议上传最长边不超过1024的JPG格式图片</span>
+              <span class="wwtxt" style="color: #c0c4cc"
+                >建议上传最长边不超过1024的JPG格式图片</span
+              >
             </el-form-item>
 
             <!-- <el-form-item label="四维模库:" style="width:340px;">
@@ -158,7 +244,7 @@
                 class="upload-demo"
                 drag
                 :headers="{
-                  token
+                  token,
                 }"
                 :action="uploadUrl"
                 :file-list="unityUrlList"
@@ -167,14 +253,16 @@
                 :before-upload="beforeUnityUpload"
                 :on-success="upload_unity_success"
               >
-                <div >
+                <div>
                   <i class="el-icon-upload"></i>
                   <div class="el-upload__text">
                     将文件拖到此处,或
                     <em>点击上传</em>
                   </div>
                 </div>
-                <div class="el-upload__tip" slot="tip">支持上传unity文件:.unity, .ab, .u3d</div>
+                <div class="el-upload__tip" slot="tip">
+                  支持上传unity文件:.unity, .ab, .u3d
+                </div>
               </el-upload>
             </el-form-item>
 
@@ -183,7 +271,7 @@
                 class="upload-demo"
                 drag
                 :headers="{
-                  token
+                  token,
                 }"
                 :file-list="contentUrlList"
                 :show-file-list="true"
@@ -199,12 +287,14 @@
                     <em>点击上传</em>
                   </div>
                 </div>
-                <div class="el-upload__tip" slot="tip">支持视频动画格式:.wmv, .wav, .mp4</div>
+                <div class="el-upload__tip" slot="tip">
+                  支持视频动画格式:.wmv, .wav, .mp4
+                </div>
               </el-upload>
             </el-form-item>
 
             <el-form-item label="二维码信息:" v-show="0">
-               <el-upload
+              <el-upload
                 class="avatar-uploader"
                 :action="uploadUrl"
                 :headers="{
@@ -213,13 +303,16 @@
                 :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>
+                    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>
@@ -227,8 +320,8 @@
 
             <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>
@@ -318,7 +411,10 @@ export default {
   },
   watch: {
     'form.description' (val) {
-      this.form.description1 = val.replace(/<\/[^>]*>/g, '\n').replace(/<[^>]*>/g, '').replace(/&nbsp/g, '')
+      this.form.description1 = val
+        .replace(/<\/[^>]*>/g, '\n')
+        .replace(/<[^>]*>/g, '')
+        .replace(/&nbsp/g, '')
     }
   },
   methods: {
@@ -346,7 +442,8 @@ export default {
       this.uploadList.push(data.data)
     },
     async onSubmit () {
-      let {name,
+      let {
+        name,
         typeId,
         type,
         timeId,
@@ -369,7 +466,8 @@ export default {
         remarks,
         description,
         verticalName,
-        id} = this.form
+        id
+      } = this.form
       if (!name) {
         this.$notify.error({
           title: '错误',
@@ -378,6 +476,22 @@ export default {
         })
         return
       }
+      if (type === '2D' && this.uploadList.length <= 0) {
+        this.$notify.error({
+          title: '错误',
+          message: '请上传轮播板式',
+          duration: 2000
+        })
+        return
+      }
+      if (type === '3D' && modelUrl.trim() === '') {
+        this.$notify.error({
+          title: '错误',
+          message: '请输入文物模型地址',
+          duration: 2000
+        })
+        return
+      }
       // if (!verticalName) {
       //   this.$notify.error({
       //     title: '错误',
@@ -392,7 +506,8 @@ export default {
         typeImages = this.uploadList
       }
       description = this.form.description1
-      let data = {name,
+      let data = {
+        name,
         typeId,
         timeId,
         typeTime,
@@ -415,7 +530,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]
@@ -426,14 +542,18 @@ export default {
         data['id'] = id
       }
       console.log(6666666666666, data)
-      this.$http.post(urlType[this.type], data).then(res => {
+      this.$http.post(urlType[this.type], data).then((res) => {
         if (res.code === 0) {
-          this.$alert(this.$route.params.type ? '操作成功' : '操作成功', '提示', {
-            confirmButtonText: '确定',
-            callback: action => {
-              this.$router.back()
+          this.$alert(
+            this.$route.params.type ? '操作成功' : '操作成功',
+            '提示',
+            {
+              confirmButtonText: '确定',
+              callback: (action) => {
+                this.$router.back()
+              }
             }
-          })
+          )
         } else {
           this.$notify.error({
             title: '错误',
@@ -503,19 +623,23 @@ export default {
     upload_unity_success (data) {
       this.loading = false
       this.form.unityUrl = data.data
-      this.unityUrlList = [{
-        name: data.data.split('/')[data.data.split('/').length - 1],
-        url: data.data
-      }]
+      this.unityUrlList = [
+        {
+          name: data.data.split('/')[data.data.split('/').length - 1],
+          url: data.data
+        }
+      ]
     },
 
     upload_success (data) {
       this.loading = false
       this.form.contentUrl = data.data
-      this.contentUrlList = [{
-        name: data.data.split('/')[data.data.split('/').length - 1],
-        url: data.data
-      }]
+      this.contentUrlList = [
+        {
+          name: data.data.split('/')[data.data.split('/').length - 1],
+          url: data.data
+        }
+      ]
     },
 
     async getPositionList () {
@@ -537,7 +661,6 @@ export default {
 
       this.tlist = result.data
     }
-
   },
   mounted () {
     this.getPositionList()
@@ -553,17 +676,21 @@ export default {
         let contentUrl = this.form.contentUrl
 
         if (unityUrl) {
-          this.unityUrlList = [{
-            name: unityUrl.split('/')[unityUrl.split('/').length - 1],
-            url: unityUrl
-          }]
+          this.unityUrlList = [
+            {
+              name: unityUrl.split('/')[unityUrl.split('/').length - 1],
+              url: unityUrl
+            }
+          ]
         }
 
         if (contentUrl) {
-          this.contentUrlList = [{
-            name: contentUrl.split('/')[contentUrl.split('/').length - 1],
-            url: contentUrl
-          }]
+          this.contentUrlList = [
+            {
+              name: contentUrl.split('/')[contentUrl.split('/').length - 1],
+              url: contentUrl
+            }
+          ]
         }
         setTimeout(() => {
           // this.uploadList = this.form.typeImages ? JSON.parse(this.form.typeImages) : []
@@ -606,7 +733,7 @@ export default {
 
 <style lang='less' scoped>
 /* 引入公共css类 */
-@import './style.less';
+@import "./style.less";
 </style>
 
 <style  lang='less'>
@@ -643,7 +770,7 @@ export default {
   overflow: hidden;
 }
 
-.avatar-uploader{
+.avatar-uploader {
   border: 1px dashed #ccc;
   border-radius: 6px;
   cursor: pointer;
@@ -660,7 +787,7 @@ export default {
   color: #8c939d;
   width: 178px;
   height: 178px;
-  line-height: 178px!important;
+  line-height: 178px !important;
   text-align: center;
 }
 .avatar {
@@ -679,5 +806,4 @@ export default {
     }
   }
 }
-
 </style>

+ 54 - 0
万物墙后台/src/pages/editPages/cultural-relic/style.css

@@ -0,0 +1,54 @@
+.top-body {
+  border-top: 0.0625rem solid #e6e6e6;
+  line-height: 1.5;
+  padding: 1.25rem;
+  align-items: center;
+  box-sizing: border-box;
+  background: #fff;
+  margin: 1rem 0;
+}
+.table-interface {
+  overflow-y: auto;
+  overflow-x: hidden;
+  height: calc(100% - 3rem);
+}
+.top-body .top-title {
+  font-weight: bold;
+  font-size: 16px;
+  margin-bottom: 20px;
+}
+.form-con {
+  width: 85%;
+  border: 1px solid #e5e5e5;
+  padding: 2% 10% 2% 2%;
+  margin-bottom: 20px;
+}
+.banshi {
+  line-height: 1;
+  font-size: 0;
+}
+.banshi > div {
+  display: flex;
+  margin-bottom: 10px;
+  flex-wrap: wrap;
+}
+.banshi > div > div {
+  width: 19%;
+  border: 1px solid #ccc;
+  min-height: 100px;
+  margin-right: 4px;
+  margin-bottom: 20px;
+}
+.banshi > div > div > img {
+  cursor: pointer;
+  width: 100%;
+}
+.banshi > div > div:last-of-type {
+  margin-right: 0;
+}
+.biaoshi {
+  position: absolute;
+  top: 0;
+  left: -92px;
+  color: #F56C6C;
+}

+ 6 - 0
万物墙后台/src/pages/editPages/cultural-relic/style.less

@@ -52,3 +52,9 @@
   }
 }
 
+.biaoshi{
+  position: absolute;
+  top: 0;
+  left: -92px;
+  color: #F56C6C;
+}

+ 1 - 1
万物墙后台/src/pages/showPages/cultural-relic/index.vue

@@ -126,7 +126,7 @@ export default {
       })
 
       this.detail = result.data
-      this.detail.modelUrl += `&hideAction=true`
+      // this.detail.modelUrl += `&hideAction=true`
       if (this.detail.urlList) this.imgs = this.detail.urlList.split(',')
       this.type = this.getType()
     },