From a52f8c508d08014d1a153cfc02e12b5fc185a3a4 Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期四, 11 七月 2024 15:28:59 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 admin/src/components/business/OperaNewsWindow.vue |  172 ++++++++++++++++++++++++++++++++++++--------------------
 1 files changed, 110 insertions(+), 62 deletions(-)

diff --git a/admin/src/components/business/OperaNewsWindow.vue b/admin/src/components/business/OperaNewsWindow.vue
index 9db6ae7..548f327 100644
--- a/admin/src/components/business/OperaNewsWindow.vue
+++ b/admin/src/components/business/OperaNewsWindow.vue
@@ -1,102 +1,82 @@
 <template>
   <GlobalWindow
     :title="title"
+    width="60%"
     :visible.sync="visible"
     :confirm-working="isWorking"
     @confirm="confirm"
   >
     <el-form :model="form" ref="form" :rules="rules">
-      <el-form-item label="鍒涘缓浜虹紪鐮�" prop="creator">
-        <el-input v-model="form.creator" placeholder="璇疯緭鍏ュ垱寤轰汉缂栫爜" v-trim/>
+      <el-form-item label="鏂囨" prop="title" required>
+        <el-input type="textarea" v-model="form.title" placeholder="璇疯緭鍏ユ爣棰�" v-trim maxlength="200"/>
       </el-form-item>
-      <el-form-item label="鍒涘缓鏃堕棿" prop="createDate">
-        <el-date-picker v-model="form.createDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ垱寤烘椂闂�"></el-date-picker>
+      <el-form-item label="鍙戝竷鏃堕棿" prop="publishDate" required>
+        <el-date-picker
+            v-model="form.publishDate"
+            type="datetime"
+            value-format="yyyy-MM-dd HH:mm:ss"
+            format="yyyy-MM-dd HH:mm:ss"
+            placeholder="閫夋嫨鏃堕棿">
+        </el-date-picker>
       </el-form-item>
-      <el-form-item label="鏇存柊浜虹紪鐮�" prop="editor">
-        <el-input v-model="form.editor" placeholder="璇疯緭鍏ユ洿鏂颁汉缂栫爜" v-trim/>
+      <el-form-item label="鐘舵��" prop="status" required>
+        <el-radio-group v-model="form.status"  >
+          <el-radio :label="0" >灞曠ず</el-radio>
+          <el-radio :label="1">涓嶅睍绀�</el-radio>
+        </el-radio-group>
       </el-form-item>
-      <el-form-item label="鏇存柊鏃堕棿" prop="editDate">
-        <el-date-picker v-model="form.editDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ユ洿鏂版椂闂�"></el-date-picker>
+      <el-form-item label="闄勪欢绫诲瀷" prop="fileType" required>
+        <el-radio-group v-model="form.fileType"  >
+          <el-radio :label="0" >鍥剧墖</el-radio>
+          <el-radio :label="1">瑙嗛</el-radio>
+        </el-radio-group>
       </el-form-item>
-      <el-form-item label="鏄惁鍒犻櫎0鍚� 1鏄�" prop="isdeleted">
-        <el-input v-model="form.isdeleted" placeholder="璇疯緭鍏ユ槸鍚﹀垹闄�0鍚� 1鏄�" v-trim/>
+      <el-form-item label="鍥鹃泦涓婁紶 锛堟渶澶�9寮狅級"    v-if="form.fileType !=1">
+        <upload width="100px" height="100px" :max-length="9" @dele="delFile" :list="fileImgList" accept=".png,.jpg,.jpeg" folder="news" @loading="loading = true" @success="fileResult($event)" />
       </el-form-item>
-      <el-form-item label="澶囨敞" prop="remark">
-        <el-input v-model="form.remark" placeholder="璇疯緭鍏ュ娉�" v-trim/>
+      <el-form-item label="瑙嗛涓婁紶锛堝崟涓級"    v-if="form.fileType === 1">
+        <upload width="100px" height="100px" :max-length="1"   @dele="delFile" :list="fileVideoList" accept=".mp4" folder="news" @loading="loading = true" @success="fileResult($event)" />
       </el-form-item>
-      <el-form-item label="鏍囬" prop="title">
-        <el-input v-model="form.title" placeholder="璇疯緭鍏ユ爣棰�" v-trim/>
+      <el-form-item label="鎺掑簭鐮侊紙鍗囧簭锛�" prop="sortnum">
+        <el-input   v-model="form.sortnum"   type="number"  placeholder="璇疯緭鍏ユ帓搴忕爜" v-trim/>
       </el-form-item>
-      <el-form-item label="鍓爣棰�" prop="subTitle">
-        <el-input v-model="form.subTitle" placeholder="璇疯緭鍏ュ壇鏍囬" v-trim/>
-      </el-form-item>
-      <el-form-item label="鎺掑簭鐮�" prop="sortnum">
-        <el-input v-model="form.sortnum" placeholder="璇疯緭鍏ユ帓搴忕爜" v-trim/>
-      </el-form-item>
-      <el-form-item label="鍐呭" prop="content">
-        <el-input v-model="form.content" placeholder="璇疯緭鍏ュ唴瀹�" v-trim/>
-      </el-form-item>
-      <el-form-item label="璺宠浆绫诲瀷 0瀵屾枃鏈� 1澶栭摼" prop="linkType">
-        <el-input v-model="form.linkType" placeholder="璇疯緭鍏ヨ烦杞被鍨� 0瀵屾枃鏈� 1澶栭摼" v-trim/>
-      </el-form-item>
-      <el-form-item label="鐘舵�� 0灞曠ず 1涓嶅睍绀�" prop="status">
-        <el-input v-model="form.status" placeholder="璇疯緭鍏ョ姸鎬� 0灞曠ず 1涓嶅睍绀�" v-trim/>
-      </el-form-item>
-      <el-form-item label="娴忚閲�" prop="lookNum">
-        <el-input v-model="form.lookNum" placeholder="璇疯緭鍏ユ祻瑙堥噺" v-trim/>
-      </el-form-item>
-      <el-form-item label="涓嬭浇閲�" prop="donwloadNum">
-        <el-input v-model="form.donwloadNum" placeholder="璇疯緭鍏ヤ笅杞介噺" v-trim/>
-      </el-form-item>
-      <el-form-item label="鏈�杩戝彂甯冩椂闂�" prop="publishDate">
-        <el-date-picker v-model="form.publishDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ユ渶杩戝彂甯冩椂闂�"></el-date-picker>
-      </el-form-item>
-      <el-form-item label="鏈�杩戝彂甯冧汉浜虹紪鐮�(鍏宠仈system_user)" prop="publishUserid">
-        <el-input v-model="form.publishUserid" placeholder="璇疯緭鍏ユ渶杩戝彂甯冧汉浜虹紪鐮�(鍏宠仈system_user)" v-trim/>
-      </el-form-item>
-      <el-form-item label="鏈�杩戝彂甯冨娉�" prop="publishInfo">
-        <el-input v-model="form.publishInfo" placeholder="璇疯緭鍏ユ渶杩戝彂甯冨娉�" v-trim/>
-      </el-form-item>
-      <el-form-item label="绱犳潗绫诲瀷 0鎺ㄥ箍璧勮 1瀹氬埗鏈嶅姟" prop="type">
-        <el-input v-model="form.type" placeholder="璇疯緭鍏ョ礌鏉愮被鍨� 0鎺ㄥ箍璧勮 1瀹氬埗鏈嶅姟" v-trim/>
+      <el-form-item label="澶囨敞" prop="publishInfo">
+        <el-input  type="textarea" v-model="form.publishInfo" placeholder="璇疯緭鍏ュ彂甯冨娉�" v-trim/>
       </el-form-item>
     </el-form>
   </GlobalWindow>
 </template>
-
 <script>
 import BaseOpera from '@/components/base/BaseOpera'
 import GlobalWindow from '@/components/common/GlobalWindow'
+import upload from '@/components/common/upload'
 export default {
   name: 'OperaNewsWindow',
   extends: BaseOpera,
-  components: { GlobalWindow },
+  components: { GlobalWindow, upload },
   data () {
     return {
       // 琛ㄥ崟鏁版嵁
+      loading: false,
       form: {
         id: null,
-        creator: '',
-        createDate: '',
-        editor: '',
-        editDate: '',
-        isdeleted: '',
-        remark: '',
         title: '',
-        subTitle: '',
         sortnum: '',
-        content: '',
-        linkType: '',
-        status: '',
-        lookNum: '',
-        donwloadNum: '',
+        status: 0,
         publishDate: '',
-        publishUserid: '',
         publishInfo: '',
-        type: ''
+        fileList: [],
+        fileType: 0,
+        type: 0
       },
+      fileImgList: [],
+      fileVideoList: [],
       // 楠岃瘉瑙勫垯
       rules: {
+        title: [{ required: true, message: '璇疯緭鍏ユ枃妗�' }],
+        publishDate: [{ required: true, message: '璇烽�夋嫨鍙戝竷鏃堕棿' }],
+        status: [{ required: true, message: '璇烽�夋嫨鐘舵��' }],
+        fileType: [{ required: true, message: '璇烽�夋嫨闄勪欢绫诲瀷' }]
       }
     }
   },
@@ -105,6 +85,74 @@
       api: '/business/news',
       'field.id': 'id'
     })
+  },
+  methods: {
+    open (title, target) {
+      this.title = title
+      this.visible = true
+      this.form.fileList = []
+      this.fileImgList= []
+      this.fileVideoList = []
+      // 鏂板缓
+      if (target == null) {
+        this.$nextTick(() => {
+          this.$refs.form.resetFields()
+          this.form[this.configData['field.id']] = null
+        })
+        return
+      }
+      // 缂栬緫
+      this.$nextTick(() => {
+        for (const key in this.form) {
+          this.form[key] = target[key]
+        }
+        this.form.fileType = target.fileType || 0
+        const files = target.fileList || []
+        if(target.fileType === 1){
+          if(files.length>0){
+            this.fileVideoList.push(files[0])
+          }
+        }else {
+          files.forEach(item => {
+            this.fileImgList.push(item)
+          })
+        }
+      })
+    },
+    getWangedditor (val) {
+      this.form.content = val
+    },
+    delFile (index) {
+      if(this.form.fileType === 1){
+        this.fileVideoList.splice(index, 1)
+        this.form.fileList =this.fileVideoList
+      }else{
+        this.fileImgList.splice(index, 1)
+        this.form.fileList =this.fileImgList
+      }
+    },
+    fileResult (e) {
+      if(this.form.fileType === 1){
+        this.fileVideoList = this.fileVideoList||[]
+        this.fileVideoList.push({
+          fileurlFull: e.url,
+          fileurl: e.imgaddr,
+          name: e.originname,
+          type: e.type
+        })
+        this.form.fileList =this.fileVideoList
+      }else{
+        this.fileImgList = this.fileImgList||[]
+        this.fileImgList.push({
+          fileurlFull: e.url,
+          fileurl: e.imgaddr,
+          name: e.originname,
+          type: e.type
+        })
+        this.form.fileList =this.fileImgList
+      }
+      console.log(this.form.fileList)
+    }
   }
 }
 </script>

--
Gitblit v1.9.3