فهرست منبع

添加预览功能

asd123a20 2 سال پیش
والد
کامیت
a1f2652dc4
2فایلهای تغییر یافته به همراه45 افزوده شده و 3 حذف شده
  1. 1 0
      package.json
  2. 44 3
      src/views/cms/blog/index.vue

+ 1 - 0
package.json

@@ -51,6 +51,7 @@
     "js-cookie": "3.0.1",
     "jsencrypt": "3.0.0-rc.1",
     "nprogress": "0.2.0",
+    "qrcodejs2": "^0.0.2",
     "quill": "1.3.7",
     "screenfull": "5.0.2",
     "sortablejs": "1.10.2",

+ 44 - 3
src/views/cms/blog/index.vue

@@ -89,6 +89,7 @@
       </el-table-column>
       <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-view" @click="handleView(scope.row)" v-if="scope.row.status == '0'">预览</el-button>
           <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
             v-hasPermi="['cms:blog:edit']">修改</el-button>
           <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
@@ -143,11 +144,23 @@
               </el-cascader>
             </el-form-item>
           </el-col>
-          <el-col :span="17">
+          <el-col :span="5">
             <el-form-item label="置顶">
               <el-checkbox v-model="top"></el-checkbox>
             </el-form-item>
           </el-col>
+          <el-col :span="7">
+            <el-form-item label="模板">
+              <el-select v-model="form.template" placeholder="请选择模板">
+                <el-option
+                  v-for="dict in dict.type.cms_blog_template"
+                  :key="dict.value"
+                  :label="dict.label"
+                  :value="dict.value">
+                </el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
         </el-row>
       </el-form>
       <div slot="footer" class="dialog-footer">
@@ -156,11 +169,15 @@
         <el-button @click="cancel">取 消</el-button>
       </div>
     </el-dialog>
-
+    <el-dialog title="预览" :visible.sync="preview" :before-close="previewClose" width="800px" append-to-body>
+      <div v-if="preview" class="qrcode" ref="qrcode"></div>
+    </el-dialog>
   </div>
 </template>
 
 <script>
+
+  import QRCode from "qrcodejs2";
   import {
     listBlog,
     getBlog,
@@ -183,7 +200,7 @@
 
   export default {
     name: "Blog",
-    dicts: ['cms_blog_status'],
+    dicts: ['cms_blog_status', 'cms_blog_template'],
     data() {
       return {
         // 遮罩层
@@ -241,6 +258,8 @@
         typeOptions: [],
         // 标签选项
         tagOptions: [],
+        // 预览
+        preview: false,
       };
     },
     created() {
@@ -499,6 +518,23 @@
         }
         return '';
       },
+      // 预览
+      handleView(e) {
+        this.preview = true;
+        setTimeout(() => {
+          new QRCode(this.$refs.qrcode, {
+            text: `https://fuyu.scapp.cn/wx-api/api/cms/article/${e.id}`,
+            width: 128, // 二维码宽度
+            height: 128, // 二维码高度
+            colorDark: "#000000", // 二维码颜色
+            colorLight: "#ffffff", // 背景颜色
+            correctLevel: QRCode.CorrectLevel.H, // 校正水准
+          });
+        }, 100)
+      },
+      previewClose() {
+        this.preview = false;
+      }
     },
     computed: {
       treeOptions() {
@@ -520,4 +556,9 @@
   .el-table .warning-row {
       background: #f8f8f9;
     }
+  .qrcode {
+    width: 100px;
+    height: 100px;
+    margin: 20px auto;
+  }
 </style>