Przeglądaj źródła

前端代码提交

sr 4 lat temu
rodzic
commit
f2c34e4f37
1 zmienionych plików z 122 dodań i 189 usunięć
  1. 122 189
      ruoyi-ui/src/views/gallery/gallery/index.vue

+ 122 - 189
ruoyi-ui/src/views/gallery/gallery/index.vue

@@ -2,27 +2,15 @@
   <div class="app-container">
     <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
       <el-form-item label="中文名称" prop="cnName">
-        <el-input
-          v-model="queryParams.cnName"
-          placeholder="请输入中文名称"
-          clearable
-          size="small"
-          @keyup.enter.native="handleQuery"
-        />
+        <el-input v-model="queryParams.cnName" placeholder="请输入中文名称" clearable size="small" @keyup.enter.native="handleQuery" />
       </el-form-item>
       <el-form-item label="俗名" prop="ptName">
-        <el-input
-          v-model="queryParams.ptName"
-          placeholder="请输入俗名"
-          clearable
-          size="small"
-          @keyup.enter.native="handleQuery"
-        />
+        <el-input v-model="queryParams.ptName" placeholder="请输入俗名" clearable size="small" @keyup.enter.native="handleQuery" />
       </el-form-item>
       <el-form-item label="类型" prop="category">
         <el-select v-model="queryParams.category" placeholder="请选择分类">
-          <el-option label="害虫" value="PEST"/>
-          <el-option label="病害" value="DISEASE"/>
+          <el-option label="害虫" value="PEST" />
+          <el-option label="病害" value="DISEASE" />
         </el-select>
       </el-form-item>
       <el-form-item>
@@ -33,143 +21,105 @@
 
     <el-row :gutter="10" class="mb8">
       <el-col :span="1.5">
-        <el-button
-          type="primary"
-          icon="el-icon-plus"
-          size="mini"
-          @click="handleAdd"
-          v-hasPermi="['system:gallery:add']"
-        >新增
+        <el-button type="primary" icon="el-icon-plus" size="mini" @click="handleAdd" v-hasPermi="['system:gallery:add']">新增
         </el-button>
       </el-col>
       <el-col :span="1.5">
-        <el-button
-          type="danger"
-          icon="el-icon-delete"
-          size="mini"
-          :disabled="multiple"
-          @click="handleDelete"
-          v-hasPermi="['system:gallery:remove']"
-        >删除
+        <el-button type="danger" icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"
+          v-hasPermi="['system:gallery:remove']">删除
         </el-button>
       </el-col>
       <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
     </el-row>
 
     <el-table v-loading="loading" border :data="galleryList" @selection-change="handleSelectionChange">
-      <el-table-column type="selection" width="55" align="center"/>
-      <el-table-column label="名称" align="center" prop="name"/>
-      <el-table-column label="中文名称" align="center" prop="cnName"/>
-      <el-table-column label="俗名" align="center" prop="ptName" :show-overflow-tooltip="true"/>
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="名称" align="center" prop="name" />
+      <el-table-column label="中文名称" align="center" prop="cnName" />
+      <el-table-column label="俗名" align="center" prop="ptName" :show-overflow-tooltip="true" />
       <el-table-column label="类型" align="center" prop="category">
         <template slot-scope="scope">
           <span>{{ scope.row.category === 'PEST' ? '害虫' : '病害' }}</span>
         </template>
       </el-table-column>
-      <el-table-column label="分类" align="center" prop="categoryName"/>
+      <el-table-column label="分类" align="center" prop="categoryName" />
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
         <template slot-scope="scope">
-          <el-button
-            size="mini"
-            type="text"
-            icon="el-icon-edit"
-            @click="handleUpdate(scope.row)"
-            v-hasPermi="['system:gallery:edit']"
-          >修改
+          <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" v-hasPermi="['system:gallery:edit']">修改
           </el-button>
-          <el-button
-            size="mini"
-            type="text"
-            icon="el-icon-edit"
-            @click="handleLook(scope.row)"
-            v-hasPermi="['system:gallery:edit']"
-          >查看
+          <el-button size="mini" type="text" icon="el-icon-edit" @click="handleLook(scope.row)" v-hasPermi="['system:gallery:edit']">查看
           </el-button>
-          <el-button
-            size="mini"
-            type="text"
-            icon="el-icon-delete"
-            @click="handleDelete(scope.row)"
-            v-hasPermi="['system:gallery:remove']"
-          >删除
+          <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)" v-hasPermi="['system:gallery:remove']">删除
           </el-button>
         </template>
       </el-table-column>
     </el-table>
 
-    <pagination
-      v-show="total>0"
-      :total="total"
-      :page.sync="queryParams.pageNum"
-      :limit.sync="queryParams.pageSize"
-      @pagination="getList"
-    />
+    <pagination v-show="total>0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
+      @pagination="getList" />
 
     <!-- 添加或修改【请填写功能名称】对话框 -->
-     <el-dialog :title="title" :visible.sync="open" :close-on-click-modal="false" :draggable="true" width="90%" append-to-body class="gallery">
+    <el-dialog :title="title" :visible.sync="open" :close-on-click-modal="false" :draggable="true" width="90%"
+      append-to-body class="gallery">
       <el-form ref="form" :model="form" :rules="rules" label-width="80px">
         <el-row>
-          <el-col span="8">
+          <el-col :span="8">
             <el-form-item label="分类" prop="categoryId">
-              <treeselect
-                v-model="form.categoryId"
-                :options="categoryOptions"
-                :normalizer="normalizer"
-                :show-count="true"
-                placeholder="选择分类"
-                @select="onCategorySelect"
-                :readonly="look"
-              />
+              <treeselect v-model="form.categoryId" :options="categoryOptions" :normalizer="normalizer" :show-count="true"
+                placeholder="选择分类" @select="onCategorySelect" :readonly="look" />
             </el-form-item>
-<!--            <el-form-item label="类型" prop="category">-->
-<!--              <el-select v-model="form.category" placeholder="请选择分类" :disabled="look" @change="onCategoryChange"-->
-<!--                         style="width: 100%;">-->
-<!--                <el-option label="害虫" value="PEST"/>-->
-<!--                <el-option label="病害" value="DISEASE"/>-->
-<!--              </el-select>-->
-<!--            </el-form-item>-->
+            <!--            <el-form-item label="类型" prop="category">-->
+            <!--              <el-select v-model="form.category" placeholder="请选择分类" :disabled="look" @change="onCategoryChange"-->
+            <!--                         style="width: 100%;">-->
+            <!--                <el-option label="害虫" value="PEST"/>-->
+            <!--                <el-option label="病害" value="DISEASE"/>-->
+            <!--              </el-select>-->
+            <!--            </el-form-item>-->
           </el-col>
-          <el-col span="8">
+          <el-col :span="8">
             <!--            <el-form-item label="名称" prop="name">-->
             <!--              <el-input v-model="form.name" placeholder="请输入名称" :readonly="look"/>-->
             <!--            </el-form-item>-->
             <el-form-item label="中文名称" prop="cnName">
-              <el-input v-model="form.cnName" placeholder="请输入中文名称" :readonly="look"/>
+              <el-input v-model="form.cnName" placeholder="请输入中文名称" :readonly="look" />
             </el-form-item>
           </el-col>
-          <el-col span="8">
+          <el-col :span="8">
             <el-form-item label="俗名" prop="ptName">
-              <el-input v-model="form.ptName" placeholder="请输入俗名" :readonly="look"/>
+              <el-input v-model="form.ptName" placeholder="请输入俗名" :readonly="look" />
             </el-form-item>
           </el-col>
         </el-row>
 
         <el-row>
-          <el-col span="8">
+          <el-col :span="8">
             <el-form-item label="分布" prop="distribution">
-              <el-input v-model="form.distribution" placeholder="请输入分布" :readonly="look"/>
+              <el-input v-model="form.distribution" placeholder="请输入分布" :readonly="look" />
             </el-form-item>
           </el-col>
-          <el-col span="8" v-if="form.category === 'PEST'">
+          <el-col :span="8" v-if="form.category === 'PEST'">
             <el-form-item label="拉丁名" prop="latinName">
-              <el-input v-model="form.latinName" class="latin-name" placeholder="请输入拉丁名" :readonly="look"/>
+              <el-input v-model="form.latinName" class="latin-name" placeholder="请输入拉丁名" :readonly="look" />
             </el-form-item>
           </el-col>
-          <el-col span="8" v-if="form.category === 'PEST'">
+          <el-col :span="8" v-if="form.category === 'PEST'">
             <el-form-item label="寄主" prop="host">
-              <el-input v-model="form.host" placeholder="请输入寄主" :readonly="look"/>
+              <el-input v-model="form.host" placeholder="请输入寄主" :readonly="look" />
             </el-form-item>
           </el-col>
         </el-row>
         <el-row>
-          <el-col span="24" v-if="form.category === 'PEST'">
+          <el-col :span="24" v-if="form.category === 'PEST'">
             <el-form-item label="形态" prop="form">
-              <el-input v-model="form.form" type="textarea" placeholder="请输入形态" :readonly="look"/>
+              <el-input v-model="form.form" type="textarea" placeholder="请输入形态" :readonly="look" />
             </el-form-item>
           </el-col>
-          <el-col span="24" v-if="form.category === 'DISEASE'">
+
+        </el-row>
+        <el-row>
+          <el-col :span="24" v-if="form.category === 'DISEASE'">
             <el-form-item label="症状" prop="symptom">
-              <el-input v-model="form.symptom" type="textarea" placeholder="请输入症状" :readonly="look"/>
+              <el-input v-model="form.symptom" type="textarea" placeholder="请输入症状" :readonly="look" />
             </el-form-item>
           </el-col>
         </el-row>
@@ -186,7 +136,7 @@
         <!--          </el-col>-->
         <!--        </el-row>-->
         <el-form-item label="说明" prop="remark">
-          <el-input v-model="form.remark" type="textarea" placeholder="请输入内容" :readonly="look"/>
+          <el-input v-model="form.remark" type="textarea" placeholder="请输入内容" :readonly="look" />
         </el-form-item>
       </el-form>
 
@@ -194,54 +144,27 @@
         <el-col style="margin-bottom: 10px">
           <el-button size="mini" type="primary" @click.native="addImgs" v-if="!look">添加</el-button>
 
-          <el-upload
-            style="display: inline-block;margin-left: 20px"
-            :action="apiUrl+'/file/upload'"
-            :show-file-list="false"
-            accept="image/*"
-            name="files"
-            multiple
-            :on-success="handleMuiltUploadSuccess"
-            :on-error="handUploadError"
-            v-if="!look"
-            :limit="10">
+          <el-upload ref="upload" style="display: inline-block;margin-left: 20px" :action="apiUrl+'/file/upload'" :show-file-list="false"
+            accept="image/*" name="files" :on-change="upChange" multiple :on-success="handleMuiltUploadSuccess" :on-error="handUploadError"
+            v-if="!look" :limit="10">
             <el-button size="mini" type="primary" v-if="!look">批量上传</el-button>
           </el-upload>
 
         </el-col>
-        <el-table
-          :data="form.imgInfos"
-          height="420"
-          border
-          style="width: 100%"
-        >
+        <el-table :data="form.imgInfos" height="420" border style="width: 100%">
           <el-table-column width="35">
             <template slot-scope="scope">
               <div style="cursor: pointer" @click="removeRow(scope.$index)">
-                <i class="el-icon-delete"/>
+                <i class="el-icon-delete" />
               </div>
             </template>
           </el-table-column>
-          <el-table-column
-            prop="date"
-            label="图片"
-            width="180">
+          <el-table-column prop="date" label="图片" width="180">
             <template slot-scope="scope">
-              <el-upload
-                class="avatar-uploader"
-                :action="apiUrl+'/file/upload'"
-                :show-file-list="false"
-                accept="image/*"
-                name="files"
-                @click.native="beforeUpload(scope.$index)"
-                :on-success="handleUploadSuccess"
-                :on-error="handUploadError"
-                :disabled="look"
-                :data="uploadParam"
-              >
-                <div v-if="scope.row.url"
-                     @click.stop="scope.row.url='',scope.row.location=''"
-                     style="
+              <el-upload class="avatar-uploader" :action="apiUrl+'/file/upload'" :show-file-list="false" accept="image/*"
+                name="files" @click.native="beforeUpload(scope.$index)" :on-success="handleUploadSuccess" :on-error="handUploadError"
+                :disabled="look" :data="uploadParam">
+                <div v-if="scope.row.url" @click.stop="scope.row.url='',scope.row.location=''" style="
                    position: absolute;
                    right: 0;
                    top: 0;
@@ -249,78 +172,52 @@
                    font-size: 20px;
                    background-color: grey;
                    color: white;
-                   z-index: 99999999999999"
-                >
-                  <i class="el-icon-close"/>
+                   z-index: 99999999999999">
+                  <i class="el-icon-close" />
                 </div>
-                <img v-if="scope.row.url" :src="scope.row.url" class="avatar"/>
-                <i v-else class="el-icon-plus avatar-uploader-icon"/>
+                <img v-if="scope.row.url" :src="scope.row.url" class="avatar" />
+                <i v-else class="el-icon-plus avatar-uploader-icon" />
               </el-upload>
             </template>
           </el-table-column>
-          <el-table-column
-            prop="name"
-            label="省市"
-            width="180">
+          <el-table-column prop="name" label="省市" width="180">
             <template slot-scope="scope">
-              <el-input v-model="scope.row.location" placeholder="上传图片后自动识别" :readonly="look"/>
+              <el-input v-model="scope.row.location" placeholder="上传图片后自动识别" :readonly="look" />
             </template>
           </el-table-column>
-          <el-table-column
-            prop="address"
-            label="拍摄者">
+          <el-table-column prop="address" label="拍摄者">
             <template slot-scope="scope">
-              <el-input v-model="scope.row.author" placeholder="填写图片拍摄者" :readonly="look"/>
+              <el-input v-model="scope.row.author" placeholder="填写图片拍摄者" :readonly="look" />
             </template>
           </el-table-column>
-          <el-table-column
-            prop="authorConcat"
-            label="拍摄者联系方式">
+          <el-table-column prop="authorConcat" label="拍摄者联系方式">
             <template slot-scope="scope">
-              <el-input v-model="scope.row.concat" placeholder="填写图片拍摄者联系方式" :readonly="look"/>
+              <el-input v-model="scope.row.concat" placeholder="填写图片拍摄者联系方式" :readonly="look" />
             </template>
           </el-table-column>
-          <el-table-column
-            label="拍摄者二维码"
-            width="180">
+          <el-table-column label="拍摄者二维码" width="180">
             <template slot-scope="scope">
-              <el-upload
-                class="avatar-uploader"
-                :action="apiUrl+'/file/upload'"
-                :show-file-list="false"
-                accept="image/*"
-                name="files"
-                @click.native="beforeUpload(scope.$index)"
-                :on-success="handleQrCodeUploadSuccess"
-                :on-error="handUploadError"
-                :disabled="look"
-              >
-                <img v-if="scope.row.qrCodeUrl" :src="scope.row.qrCodeUrl" class="avatar"/>
-                <i v-else class="el-icon-plus avatar-uploader-icon"/>
+              <el-upload class="avatar-uploader" :action="apiUrl+'/file/upload'" :show-file-list="false" accept="image/*"
+                name="files" @click.native="beforeUpload(scope.$index)" :on-success="handleQrCodeUploadSuccess"
+                :on-error="handUploadError" :disabled="look">
+                <img v-if="scope.row.qrCodeUrl" :src="scope.row.qrCodeUrl" class="avatar" />
+                <i v-else class="el-icon-plus avatar-uploader-icon" />
               </el-upload>
             </template>
           </el-table-column>
-          <el-table-column
-            label="图释"
-            width="180">
+          <el-table-column label="图释" width="180">
             <template slot-scope="scope">
-              <el-input v-model="scope.row.remark" placeholder="填写描述信息" type="textarea" :readonly="look"/>
+              <el-input v-model="scope.row.remark" placeholder="填写描述信息" type="textarea" :readonly="look" />
             </template>
           </el-table-column>
-          <el-table-column
-            prop="watermarkColor"
-            label="水印颜色"
-            width="90">
+          <el-table-column prop="watermarkColor" label="水印颜色" width="90">
             <template slot-scope="scope">
               <el-radio v-model="scope.row.watermarkColor" label="RED" :disabled="look">红色</el-radio>
               <el-radio v-model="scope.row.watermarkColor" label="GREEN" :disabled="look">绿色</el-radio>
               <el-radio v-model="scope.row.watermarkColor" label="WHITE" :disabled="look">白色</el-radio>
             </template>
           </el-table-column>
-          <el-table-column
-            prop="watermarkType"
-            label="水印类型"
-            width="140">
+          <el-table-column prop="watermarkType" label="水印类型" width="140">
             <template slot-scope="scope">
               <el-radio v-model="scope.row.watermarkType" label="AUTHOR" :disabled="look">显示拍摄者</el-radio>
               <el-radio v-model="scope.row.watermarkType" label="CONCAT" :disabled="look">显示联系方式</el-radio>
@@ -340,15 +237,26 @@
 </template>
 
 <script>
-  import {listGallery, getGallery, delGallery, addGallery, updateGallery, exportGallery} from "@/api/gallery/gallery";
+  import {
+    listGallery,
+    getGallery,
+    delGallery,
+    addGallery,
+    updateGallery,
+    exportGallery
+  } from "@/api/gallery/gallery";
   import setting from "@/settings";
   import Treeselect from "@riophae/vue-treeselect";
   import '@riophae/vue-treeselect/dist/vue-treeselect.css'
-  import {listCategory} from "@/api/gallery/category";
+  import {
+    listCategory
+  } from "@/api/gallery/category";
 
   export default {
     name: "Gallery",
-    components: {Treeselect},
+    components: {
+      Treeselect
+    },
     data() {
       return {
         // 遮罩层
@@ -392,17 +300,31 @@
         // 表单校验
         rules: {
           // name: [{required: true, message: '请输入名称', trigger: 'blur'}],
-          cnName: [{required: true, message: '请输入名称', trigger: 'blur'}],
+          cnName: [{
+            required: true,
+            message: '请输入名称',
+            trigger: 'blur'
+          }],
           // ptName: [{required: true, message: '请输入名称', trigger: 'blur'}],
-          category: [{required: true, message: '请选择类型', trigger: 'change'}],
-          categoryId: [{required: true, message: '请选择分类', trigger: 'change'}],
+          category: [{
+            required: true,
+            message: '请选择类型',
+            trigger: 'change'
+          }],
+          categoryId: [{
+            required: true,
+            message: '请选择分类',
+            trigger: 'change'
+          }],
         },
         apiUrl: '',
         uploadIndex: 0,
         allCategoryOptions: [],
         categoryOptions: [],
         look: false,
-        uploadParam: {parse: true}
+        uploadParam: {
+          parse: true
+        }
       };
     },
     created() {
@@ -410,6 +332,9 @@
       this.apiUrl = setting.apiUrl;
     },
     methods: {
+      upChange(files){
+        console.log(files)
+      },
       /** 查询【请填写功能名称】列表 */
       getList() {
         this.loading = true;
@@ -425,10 +350,15 @@
       // 取消按钮
       cancel() {
         this.open = false;
+        this.$refs.upload.clearFiles();
         this.reset();
       },
       addImgs() {
-        this.form.imgInfos.push({editable: true, watermarkType: 'NONE', watermarkColor: 'WHITE'});
+        this.form.imgInfos.push({
+          editable: true,
+          watermarkType: 'NONE',
+          watermarkColor: 'WHITE'
+        });
       },
       // 表单重置
       reset() {
@@ -549,12 +479,14 @@
               updateGallery(this.form).then(response => {
                 this.msgSuccess("修改成功");
                 this.open = false;
+                this.$refs.upload.clearFiles();
                 this.getList();
               });
             } else {
               addGallery(this.form).then(response => {
                 this.msgSuccess("新增成功");
                 this.open = false;
+                this.$refs.upload.clearFiles();
                 this.getList();
               });
             }
@@ -568,7 +500,7 @@
           confirmButtonText: "确定",
           cancelButtonText: "取消",
           type: "warning"
-        }).then(function () {
+        }).then(function() {
           return delGallery(ids);
         }).then(() => {
           this.getList();
@@ -582,6 +514,7 @@
         this.$message.error('图片上传失败');
       },
       handleUploadSuccess(res) {
+        console.log(res, 111)
         let datum = res.data[0];
         let imgInfo = this.form.imgInfos[this.uploadIndex];
         imgInfo.url = datum.url;