From 2088fc58f63e6d72e48ae3fd5da5fa27d12bc0a5 Mon Sep 17 00:00:00 2001
From: luohairen <3399054449@qq.com>
Date: 星期五, 01 十一月 2024 13:59:30 +0800
Subject: [PATCH] 优化手机号、座机号验证

---
 src/views/education/resource/list.vue |  103 ++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 81 insertions(+), 22 deletions(-)

diff --git a/src/views/education/resource/list.vue b/src/views/education/resource/list.vue
index cde0a54..c446ec6 100644
--- a/src/views/education/resource/list.vue
+++ b/src/views/education/resource/list.vue
@@ -4,16 +4,26 @@
       <el-form :inline="true" :model="searchForm" class="demo-form-inline">
         <el-form-item label="涓婚">
           <el-input v-model="searchForm.introduction" size="small" placeholder="涓婚鍐呭" clearable
-                    @clear="page"></el-input>
+                    @clear="page" @input="page"></el-input>
         </el-form-item>
         <el-form-item label="鐝骇">
-          <el-select v-model="searchForm.classId" clearable @clear="page" @change="page" placeholder="鐝骇">
+          <el-select v-model="searchForm.classId" size="small" clearable @clear="page" @change="page" placeholder="鐝骇">
             <el-option v-for="item in classesIds" :key="item.id" :label="item.className" :value="item.id"/>
           </el-select>
         </el-form-item>
         <el-form-item label="绉戠洰">
-          <el-select v-model="searchForm.subjectId" clearable @clear="page" @change="page" placeholder="绉戠洰">
+          <el-select v-model="searchForm.subjectId" size="small" clearable @clear="page" @change="page" placeholder="绉戠洰">
             <el-option v-for="item in typeList" :key="item.id" :label="item.name" :value="item.id">
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="鏂囦欢绫诲瀷">
+          <el-select v-model="searchForm.contentType" size="small" clearable @clear="page" @change="page" placeholder="鏂囦欢绫诲瀷">
+            <el-option
+              v-for="item in contentTypeList"
+              :key="item.value"
+              :label="item.name"
+              :value="item.value">
             </el-option>
           </el-select>
         </el-form-item>
@@ -23,7 +33,9 @@
       </el-form>
       <div>
         <el-button type="primary" @click="handlerAdd" size="small">娣诲姞</el-button>
-        <el-button type="danger" @click="batchRemove" size="small" style="margin-left: 5px">鍒犻櫎</el-button>
+        <el-popconfirm title="纭鎵归噺鍒犻櫎鍚楋紵" @confirm="batchRemove">
+          <el-button slot="reference" type="danger" size="small" style="margin-left: 5px">鍒犻櫎</el-button>
+        </el-popconfirm>
       </div>
     </div>
 
@@ -46,8 +58,14 @@
                     class="showContent"></el-image>
           <!-- <img v-if="scope.row.contentType === 'img'" :src="'/api/files/' + scope.row.contentUrl.url"
             class="showContent" /> -->
-          <el-link type="primary" v-if="scope.row.contentType === 'pdf'" class="showContent"
-                   @click="checkPdf('/api/files/' + scope.row.contentUrl.url)">鐐瑰嚮鏌ョ湅
+          <audio controls v-if="scope.row.contentType === 'audio'"
+                 class="showContent">
+            <source :src="'/api/files/' + scope.row.contentUrl.url">
+          </audio>
+          <el-link type="primary"
+                   v-if="scope.row.contentType !== 'video' && scope.row.contentType !== 'audio'  && scope.row.contentType !== 'img'"
+                   class="showContent"
+                   @click="check(scope.row)">鐐瑰嚮鏌ョ湅
           </el-link>
         </template>
       </el-table-column>
@@ -57,6 +75,13 @@
             <el-link type="primary" :href="'/api/upload/download?url=' + item.url +'&fileName=' + item.name">
               {{ item.name }}
             </el-link>
+          </div>
+        </template>
+      </el-table-column>
+      <el-table-column prop="visitUrl" label="璁块棶閾炬帴">
+        <template slot-scope="scope">
+          <div v-if="scope.row.contentType === 'video'">
+            {{ scope.row.visitUrl }}
           </div>
         </template>
       </el-table-column>
@@ -81,7 +106,7 @@
         <el-form-item label="涓婚绠�浠�" prop="introduction">
           <el-input v-model="form.introduction" placeholder="涓婚鍐呭"></el-input>
         </el-form-item>
-        <el-form-item label="鐝骇" >
+        <el-form-item label="鐝骇" prop="classId">
           <el-select
             v-model="form.classId"
             placeholder="鐝骇"
@@ -98,9 +123,12 @@
         </el-form-item>
         <el-form-item label="鏂囦欢绫诲瀷" prop="contentType">
           <el-select v-model="form.contentType" placeholder="涓嶅悓绫诲瀷鐨勬枃浠堕槄瑙堟柟寮忎笉鍚岋紝澶氫綑鏂囦欢璇蜂互闄勪欢褰㈠紡涓婁紶" @change="fileChange">
-            <el-option label="瑙嗛" value="video"></el-option>
-            <el-option label="PDF" value="pdf"></el-option>
-            <el-option label="鍥剧墖" value="img"></el-option>
+            <el-option
+              v-for="item in contentTypeList"
+              :key="item.value"
+              :label="item.name"
+              :value="item.value">
+            </el-option>
           </el-select>
         </el-form-item>
         <el-form-item label="涓婁紶鏂囦欢(涓�涓�)" prop="contentUrl">
@@ -147,12 +175,22 @@
       dialogTitle: '娣诲姞瀛︿範鍐呭',
       ids: [],
       typeList: [],
+      contentTypeList: [
+        { name: '瑙嗛', value: 'video' },
+        { name: '鍥剧墖', value: 'img' },
+        { name: '闊抽', value: 'audio' },
+        { name: 'PDF', value: 'pdf' },
+        { name: 'EXCEL', value: 'excel' },
+        { name: 'WORD', value: 'word' },
+        { name: 'PPT', value: 'ppt' }
+      ],
       classesIds: [],
       searchForm: {
         pageNum: 1,
         pageSize: 5,
         subjectId: null,
-        introduction: null
+        introduction: null,
+        contentType: null
       },
       total: 0,
       tableData: [],
@@ -169,10 +207,16 @@
       },
       rules: {
         contentUrl: [
-          { required: true, message: '璇蜂笂浼犳枃浠�', trigger: 'blur' },
+          { required: true, message: '璇蜂笂浼犳枃浠�', trigger: 'blur' }
         ],
         introduction: [
-          { required: true, message: '璇疯緭鍏ヤ富棰樺唴瀹�', trigger: 'blur' },
+          { required: true, message: '璇疯緭鍏ヤ富棰樺唴瀹�', trigger: 'blur' }
+        ],
+        classId: [
+          { required: true, message: '璇烽�夋嫨鐝骇', trigger: 'blur' }
+        ],
+        subjectId: [
+          { required: true, message: '璇烽�夋嫨绉戠洰', trigger: 'blur' }
         ],
         belongType: [
           { required: true, message: '璇烽�夋嫨瀛︿範鍒嗙被', trigger: 'change' }
@@ -190,9 +234,10 @@
         this.classesIds = re.data.data
       })
     },
-    checkPdf (url) {
-      this.pdf = url
-      this.pdfDialog = true
+    check (row) {
+      // this.pdf = url
+      // this.pdfDialog = true
+      window.open(row.visitUrl)
     },
     closePdfDialog () {
       this.pdfDialog = false
@@ -213,8 +258,20 @@
       if (row.contentType === 'img') {
         return '鍥剧墖'
       }
+      if (row.contentType === 'audio') {
+        return '闊抽'
+      }
       if (row.contentType === 'pdf') {
         return 'PDF'
+      }
+      if (row.contentType === 'excel') {
+        return 'EXCEL'
+      }
+      if (row.contentType === 'word') {
+        return 'WORD'
+      }
+      if (row.contentType === 'ppt') {
+        return 'PPT'
       }
     },
     clearFile () {
@@ -244,13 +301,15 @@
     batchRemove () {
       if (this.ids.length < 1) {
         this.$message.warning('璇烽�夋嫨瑕佸垹闄ょ殑鏁版嵁')
+      } else {
+        EducationResourceAPI.remove(this.ids).then(res => {
+          if (res.code === 1) {
+            this.$message.success('鍒犻櫎鎴愬姛')
+            this.ids = []
+          }
+          this.page()
+        })
       }
-      EducationResourceAPI.remove(this.ids).then(res => {
-        if (res.code === 1) {
-          this.$message.success('鍒犻櫎鎴愬姛')
-          this.ids = []
-        }
-      })
     },
     getTitle (typeName) {
       return '纭畾瑕佸垹闄�' + typeName + '杩欎釜鏂囦欢鍚楋紵'

--
Gitblit v1.8.0