Ver Fonte

更改思想政治教育,更改私家车进出查询

sunyanqiang há 2 anos atrás
pai
commit
8021c49a87

+ 24 - 0
src/views/militaryvehicleManagement/privateAccessLog/index.vue

@@ -23,6 +23,30 @@
           @input="handleQuery"
         />
       </el-form-item>
+      <el-form-item label="" prop="jinrushiajin">
+        <el-date-picker
+          clearable
+          size="small"
+          v-model="queryParams.jinrushiajin"
+          type="datetime"
+          placeholder="选择开始时间"
+          value-format="yyyy-MM-dd HH:mm:ss"
+          @change="handleQuery"
+        >
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="" prop="likaishitian">
+        <el-date-picker
+          clearable
+          size="small"
+          v-model="queryParams.likaishitian"
+          type="datetime"
+          placeholder="选择结束时间"
+          value-format="yyyy-MM-dd HH:mm:ss"
+          @change="handleQuery"
+        >
+        </el-date-picker>
+      </el-form-item>
       <!-- 
       <el-form-item label="车辆型号" prop="vehiclemodel">
         <el-input

+ 1 - 0
src/views/regulations/fileinfo/index.vue

@@ -1171,6 +1171,7 @@ export default {
     },
     // 阅读按钮操作
     ViewRead(row) {
+      console.log(row);
       if (row.parentDirId == ".docx" || row.parentDirId == ".doc") {
         this.open33 = true;
         axios({

+ 206 - 200
src/views/thought/getready/index.vue

@@ -1,19 +1,5 @@
 <template>
   <div class="app-container">
-    <!-- <div class="box-lfet"> -->
-    <!-- <div class="data">
-        <p>单位</p>
-        <div class="a1"></div>
-        <el-date-picker
-          v-model="tiem"
-          type="date"
-          :editable="false"
-          placeholder="选择日期"
-          value-format="yyyy-MM-dd"
-          @change="shiJian"
-        >
-        </el-date-picker>
-      </div> -->
     <el-row :gutter="20">
       <el-col :span="4" :xs="24">
         <div class="dadui">
@@ -33,148 +19,6 @@
           ></el-tree>
         </div>
       </el-col>
-      <!-- <div class="dadui">
-        <img src="../../../images/星星.png" alt="" />
-        大队
-      </div>
-      <div class="tree">
-        <el-tree
-        class="userAgrees"
-         style = "height:700px;overflow:auto;"
-          :data="deptOptions"
-          :props="defaultProps"
-          @node-click="handleNodeClick"
-          default-expand-all
-          highlight-current
-          :expand-on-click-node="false"
-        ></el-tree>
-      </div> -->
-      <!-- </div> -->
-      <!-- <div class="box-right"> -->
-      <!-- <el-form
-      :model="queryParams"
-      ref="queryForm"
-      :inline="true"
-      v-show="showSearch"
-      label-width="100px"
-    > -->
-      <!-- <el-form-item label="谈心人员" prop="talkPeople" label-width="69px">
-        <el-input
-          v-model="queryParams.talkPeople"
-          placeholder="请输入谈心人员"
-          clearable
-          size="small"
-          @input="handleQuery"
-        />
-      </el-form-item> -->
-      <!-- <el-form-item>
-        <el-select
-          v-model="queryParams.talkPeople"
-          ref="peoplenames"
-          placeholder="请选择谈心人员"
-          @change="handleQuery"
-        >
-          <el-option
-            v-for="item in executors"
-            :key="item.id"
-            :label="item.name"
-            :value="item.name"
-          />
-        </el-select>
-      </el-form-item> -->
-      <!-- <el-form-item label="开始时间" prop="startTime">
-        <el-date-picker clearable size="small"
-          v-model="queryParams.startTime"
-          type="date"
-          value-format="yyyy-MM-dd"
-          placeholder="选择开始时间">
-        </el-date-picker>
-      </el-form-item>
-      <el-form-item label="结束时间" prop="endTime">
-        <el-date-picker clearable size="small"
-          v-model="queryParams.endTime"
-          type="date"
-          value-format="yyyy-MM-dd"
-          placeholder="选择结束时间">
-        </el-date-picker>
-      </el-form-item> -->
-      <!-- <el-form-item prop="createName">
-        <el-input
-          v-model="queryParams.createName"
-          placeholder="请输入创建人姓名"
-          clearable
-          size="small"
-          @input="handleQuery"
-        />
-      </el-form-item> -->
-      <!-- <el-form-item label="创建人id" prop="createId">
-        <el-input
-          v-model="queryParams.createId"
-          placeholder="请输入创建人id"
-          clearable
-          size="small"
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item> -->
-      <!-- <el-form-item label="文件路径" prop="filePath">
-        <el-input
-          v-model="queryParams.filePath"
-          placeholder="请输入文件路径"
-          clearable
-          size="small"
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item> -->
-      <!-- <el-form-item prop="fileName" label-width="69px">
-        <el-input
-          v-model="queryParams.fileName"
-          placeholder="请输入文件名称"
-          clearable
-          size="small"
-          @input="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item prop="recorder" label-width="59px"> -->
-      <!-- <el-input
-          v-model="queryParams.recorder"
-          placeholder="请输入记录人"
-          clearable
-          size="small"
-          @input="handleQuery"
-        />
-      </el-form-item> -->
-      <!-- <el-select
-          v-model="queryParams.recorder"
-          ref="peoplenames"
-          placeholder="请选择记录人"
-          @change="handleQuery"
-        >
-          <el-option
-            v-for="item in executors"
-            :key="item.id"
-            :label="item.name"
-            :value="item.name"
-          />
-        </el-select>
-      </el-form-item> -->
-      <!-- <el-form-item label="记录人id" prop="recorderId">
-        <el-input
-          v-model="queryParams.recorderId"
-          placeholder="请输入记录人id"
-          clearable
-          size="small"
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item> -->
-      <!-- <el-form-item> -->
-      <!-- <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button> -->
-      <!-- <el-button icon="el-icon-refresh" size="btr" @click="resetQuery"
-          >重置</el-button
-        >
-      </el-form-item>
-    </el-form> -->
-
-      <!-- <el-row :gutter="10" class="mb8"> -->
       <el-col :span="1.5" class="mb8">
         <el-button
           type="primary"
@@ -302,12 +146,6 @@
               <span>{{ parseTime(scope.row.endTime, "{y}-{m}-{d}") }}</span>
             </template>
           </el-table-column>
-
-          <!-- <el-table-column label="创建人id" align="center" prop="createId" /> -->
-          <!-- <el-table-column label="文件路径" align="center" prop="filePath" /> -->
-          <!-- <el-table-column label="文件名称" align="center" prop="fileName" show-overflow-tooltip/> -->
-
-          <!-- <el-table-column label="记录人id" align="center" prop="recorderId" /> -->
           <el-table-column
             label="操作"
             align="center"
@@ -315,6 +153,15 @@
             width="200px"
           >
             <template slot-scope="scope">
+              <el-button
+                size="read"
+                type="text"
+                @click.native="ViewRead(scope.row)"
+              >
+                <span>
+                  <a target="_blank">查看资料</a>
+                </span>
+              </el-button>
               <el-button
                 size="btk"
                 type="text"
@@ -664,6 +511,88 @@
       </div>
     </el-dialog>
     <!-- </div> -->
+    <!-- 添加预览doc文件弹框 -->
+    <el-dialog
+      style="color: pink"
+      :title="title3"
+      :visible.sync="open33"
+      width="850px"
+      append-to-body
+      id="fileinfodocx"
+      class="el-dialog__header"
+      custom-class="yuedu"
+      :close-on-click-modal="false"
+    >
+      <div ref="file"></div>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="open33 = false">关 闭</el-button>
+        <!-- <el-button type="primary" @click="open33 = false">
+     关 闭</el-button
+     > -->
+      </div>
+    </el-dialog>
+    <!-- 预览PDF文件弹框 -->
+    <el-dialog
+      :title="title3"
+      :visible.sync="previewDialog"
+      width="850px"
+      append-to-body
+      id="fileinfopdf"
+      class="el-dialog__header"
+      :close-on-click-modal="false"
+    >
+      <template>
+        <div style="display: flex">
+          <el-button
+            :class="gopage == true ? 'bg' : ''"
+            class="gopage"
+            :theme="'default'"
+            type="submit"
+            :title="'上一页'"
+            @click.native="prePage"
+          >
+            上一页</el-button
+          >
+          <div
+            style="
+              width: 50px;
+              height: 28px;
+              background: #f4f4f4;
+              text-align: center;
+              line-height: 28px;
+            "
+          >
+            {{ pageNum }}/{{ pageTotalNum }}
+          </div>
+          <el-button
+            :class="gopage == false ? 'bg' : ''"
+            :theme="'default'"
+            class="downpage"
+            type="submit"
+            :title="'下一页'"
+            @click.native="nextPage"
+          >
+            下一页</el-button
+          >
+        </div>
+        <PDF
+          ref="pdf"
+          :src="pdfurl"
+          :page="pageNum"
+          :rotate="pageRotate"
+          @progress="loadedRatio = $event"
+          @page-loaded="pageLoaded($event)"
+          @num-pages="pageTotalNum = $event"
+          @error="pdfError($event)"
+          @link-clicked="page = $event"
+        ></PDF>
+        <div slot="footer" class="dialog-footer">
+          <el-button type="primary" @click="previewDialog = false"
+            >关 闭</el-button
+          >
+        </div>
+      </template>
+    </el-dialog>
   </div>
 </template>
 
@@ -676,22 +605,14 @@ import {
   updateGetready,
   exportGetready,
 } from "@/api/thought/getready";
-import {
-  listBdgldiary,
-  getBdgldiary,
-  delBdgldiary,
-  addBdgldiary,
-  updateBdgldiary,
-  exportBdgldiary,
-  exportBdgShuju,
-  updateBdglShenPi,
-} from "@/api/grassrootsregistration/bdgldiary";
+import { exportBdgShuju } from "@/api/grassrootsregistration/bdgldiary";
 import { allUser } from "@/api/workingArrangements/workTask";
-import {
- 
-  getAll
-} from "@/api/thought/parliament";
+import { getAll } from "@/api/thought/parliament";
 import { getWeiShu } from "@/api/grassrootsregistration/bdglmeeting";
+import axios from "axios";
+import PDF from "vue-pdf";
+const docx = require("docx-preview");
+window.JSZip = require("jszip");
 // 富文本
 import "quill/dist/quill.core.css";
 import "quill/dist/quill.snow.css";
@@ -787,6 +708,22 @@ export default {
       form1: {},
       open1: false,
       title1: "",
+      // 下载文件路径
+      downurl: process.env.VUE_APP_BASE_API,
+      // pdf文件
+      previewDialog: false,
+      pdfurl: "",
+      pageNum: 1,
+      pageTotalNum: 1,
+      pageRotate: 0,
+      // 加载进度
+      loadedRatio: 0,
+      curPageNum: 0,
+      gopage: true,
+      // 虚拟字段
+      fid: "",
+      open33: false,
+      title3: "预览文件",
     };
   },
   components: {
@@ -801,7 +738,76 @@ export default {
       this.rylist = res.rows;
     });
   },
+  components: {
+    PDF,
+  },
   methods: {
+    // 预览弹框
+    submitForm3() {
+      this.open33 = false;
+    },
+    /**
+     * 预览PDF
+     */
+    previewPDF(row, index) {
+      this.previewDialog = true;
+    },
+    // 上一页函数,
+    prePage() {
+      this.gopage = true;
+      var page = this.pageNum;
+      page = page > 1 ? page - 1 : this.pageTotalNum;
+      this.pageNum = page;
+    },
+    // 下一页函数
+    nextPage() {
+      this.gopage = false;
+      var page = this.pageNum;
+      page = page < this.pageTotalNum ? page + 1 : 1;
+      this.pageNum = page;
+    },
+    // 页面顺时针翻转90度。
+    clock() {
+      this.pageRotate += 90;
+    },
+    // 页面逆时针翻转90度。
+    counterClock() {
+      this.pageRotate -= 90;
+    },
+    // 页面加载回调函数,其中e为当前页数
+    pageLoaded(e) {
+      this.curPageNum = e;
+    },
+    // 错误时回调函数。
+    pdfError(error) {
+      console.error(error);
+    },
+    // 打印全部
+    pdfPrintAll() {
+      /**
+       * 打印界面字符乱码是因为你pdf中使用了自定义字体导致的,谷歌浏览器打印的时候预览界面真的变成了真·方块字 ,解决方案如下:
+       * 用文章最后的pdfjsWrapper.js在替换掉node_modules/vue-pdf/src/pdfjsWrapper.js
+       */
+
+      this.$refs.pdf.print();
+    },
+    // 阅读按钮操作
+    ViewRead(row) {
+      console.log(row);
+      var path = row.filePath;
+      var index = path.lastIndexOf(".");
+      var str = path.substring(index + 1, path.length);
+      console.log(str);
+      this.open33 = true;
+      axios({
+        method: "get",
+        responseType: "blob", // 设置响应文件格式
+        url: process.env.VUE_APP_BASE_API + row.filePath,
+      }).then(({ data }) => {
+        $(".docx").attr("id", "printArea");
+        docx.renderAsync(data, this.$refs.file); // 渲染到页面预览
+      });
+    },
     // 获取执行人
     unit2Format(row) {
       var deptName = "";
@@ -1016,7 +1022,7 @@ export default {
 </script>
 <style scoped>
 /* 附件 */
-::v-deep .fujian .el-form-item__content{
+::v-deep .fujian .el-form-item__content {
   display: flex;
 }
 /* 备注 */
@@ -1123,7 +1129,7 @@ export default {
   height: 80px !important;
 }
 ::v-deep .el-dialog__body {
-  padding-left: 27px !important;
+  padding-left: 27px;
   padding-right: 0px !important;
   padding-bottom: 0px !important;
 }
@@ -1369,28 +1375,7 @@ export default {
   color: white;
   text-indent: 0.5em;
 }
-/* ::v-deep .el-upload__tip {
-  color: white;
-  position: absolute;
-  top: -5px;
-  width: 500px;
-  left: 80px;
-  color: white;
-}
-::v-deep .el-form-item__content {
-  width: 230px;
-}
-/* 选取附件 */
-/* ::v-deep .el-upload-list__item {
-  /* width: 400px; */
-/* }
-::v-deep .el-upload-list__item a {
-  color: white;
-  text-indent: 0.5em;
-} */
-/* ::v-deep .el-select-dropdown__item {
-  color: white;
-}  */
+
 ::v-deep .el-form-item__content .el-textarea .el-textarea__inner {
   color: white !important;
 }
@@ -1401,4 +1386,25 @@ export default {
 ::v-deep .el-select__input {
   color: white;
 }
+/* doc文件样式修改 */
+::v-deep .docx {
+  padding: 0 !important;
+}
+::v-deep .docx-wrapper > section.docx {
+  /* padding: 0 !important; */
+  margin-bottom: 0px !important;
+  box-shadow: none;
+}
+/* 预览弹框背景去除 */
+::v-deep .docx-wrapper {
+  padding: 0 !important;
+  background: none !important;
+}
+::v-deep .docx {
+  width: 100% !important;
+}
+
+::v-deep .yuedu .el-dialog__body {
+  padding-left: 126px !important;
+}
 </style>

+ 214 - 6
src/views/thought/parliament/index.vue

@@ -129,6 +129,15 @@
         class-name="small-padding fixed-width"
       >
         <template slot-scope="scope">
+          <el-button
+            size="read"
+            type="text"
+            @click.native="ViewRead(scope.row)"
+          >
+            <span>
+              <a target="_blank">查看资料</a>
+            </span>
+          </el-button>
           <el-button
             size="btk"
             type="text"
@@ -345,7 +354,7 @@
         </el-form-item>
         <div class="jiben">附件</div>
         <el-form-item>
-          <FileUpload v-model="form.fileName" />
+          <FileUpload v-model="form.fileName" :limit="1" />
         </el-form-item>
         <!-- <a :href="form.filePath" download class="downloadfile">下载附件</a> -->
       </el-form>
@@ -495,6 +504,89 @@
         <!-- <el-button @click="open1=false" size="btn">取 消</el-button> -->
       </div>
     </el-dialog>
+
+    <!-- 添加预览doc文件弹框 -->
+    <el-dialog
+      style="color: pink"
+      :title="title3"
+      :visible.sync="open33"
+      width="850px"
+      append-to-body
+      id="fileinfodocx"
+      class="el-dialog__header"
+      custom-class="yuedu"
+      :close-on-click-modal="false"
+    >
+      <div ref="file"></div>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="open33 = false">关 闭</el-button>
+        <!-- <el-button type="primary" @click="open33 = false">
+      关 闭</el-button
+      > -->
+      </div>
+    </el-dialog>
+    <!-- 预览PDF文件弹框 -->
+    <el-dialog
+      :title="title3"
+      :visible.sync="previewDialog"
+      width="850px"
+      append-to-body
+      id="fileinfopdf"
+      class="el-dialog__header"
+      :close-on-click-modal="false"
+    >
+      <template>
+        <div style="display: flex">
+          <el-button
+            :class="gopage == true ? 'bg' : ''"
+            class="gopage"
+            :theme="'default'"
+            type="submit"
+            :title="'上一页'"
+            @click.native="prePage"
+          >
+            上一页</el-button
+          >
+          <div
+            style="
+              width: 50px;
+              height: 28px;
+              background: #f4f4f4;
+              text-align: center;
+              line-height: 28px;
+            "
+          >
+            {{ pageNum }}/{{ pageTotalNum }}
+          </div>
+          <el-button
+            :class="gopage == false ? 'bg' : ''"
+            :theme="'default'"
+            class="downpage"
+            type="submit"
+            :title="'下一页'"
+            @click.native="nextPage"
+          >
+            下一页</el-button
+          >
+        </div>
+        <PDF
+          ref="pdf"
+          :src="pdfurl"
+          :page="pageNum"
+          :rotate="pageRotate"
+          @progress="loadedRatio = $event"
+          @page-loaded="pageLoaded($event)"
+          @num-pages="pageTotalNum = $event"
+          @error="pdfError($event)"
+          @link-clicked="page = $event"
+        ></PDF>
+        <div slot="footer" class="dialog-footer">
+          <el-button type="primary" @click="previewDialog = false"
+            >关 闭</el-button
+          >
+        </div>
+      </template>
+    </el-dialog>
   </div>
 </template>
 
@@ -506,14 +598,17 @@ import {
   addParliament,
   updateParliament,
   exportParliament,
-  getAll
+  getAll,
 } from "@/api/thought/parliament";
 // 树形
 import Treeselect from "@riophae/vue-treeselect";
 import "@riophae/vue-treeselect/dist/vue-treeselect.css";
 // 单位
-import { getDept2} from "@/api/grassrootsregistration/bdglmeeting";
-// import { getDept2, getAll,getWeiShu } from "@/api/grassrootsregistration/bdglmeeting";
+import { getDept2 } from "@/api/grassrootsregistration/bdglmeeting";
+import axios from "axios";
+import PDF from "vue-pdf";
+const docx = require("docx-preview");
+window.JSZip = require("jszip");
 export default {
   name: "Parliament",
   components: {
@@ -521,6 +616,10 @@ export default {
   },
   data() {
     return {
+      // 虚拟字段
+      fid: "",
+      open33: false,
+      title3: "预览文件",
       // 遮罩层
       loading: true,
       // 导出遮罩层
@@ -597,8 +696,23 @@ export default {
       form1: {},
       open1: false,
       title1: "",
+      // 下载文件路径
+      downurl: process.env.VUE_APP_BASE_API,
+      // pdf文件
+      previewDialog: false,
+      pdfurl: "",
+      pageNum: 1,
+      pageTotalNum: 1,
+      pageRotate: 0,
+      // 加载进度
+      loadedRatio: 0,
+      curPageNum: 0,
+      gopage: true,
     };
   },
+  components: {
+    PDF,
+  },
   created() {
     this.getList();
     getDept2().then((res) => {
@@ -607,6 +721,80 @@ export default {
     this.getSuoYou();
   },
   methods: {
+    // 预览弹框
+    submitForm3() {
+      this.open33 = false;
+    },
+    /**
+     * 预览PDF
+     */
+    previewPDF(row, index) {
+      this.previewDialog = true;
+    },
+    // 上一页函数,
+    prePage() {
+      this.gopage = true;
+      var page = this.pageNum;
+      page = page > 1 ? page - 1 : this.pageTotalNum;
+      this.pageNum = page;
+    },
+    // 下一页函数
+    nextPage() {
+      this.gopage = false;
+      var page = this.pageNum;
+      page = page < this.pageTotalNum ? page + 1 : 1;
+      this.pageNum = page;
+    },
+    // 页面顺时针翻转90度。
+    clock() {
+      this.pageRotate += 90;
+    },
+    // 页面逆时针翻转90度。
+    counterClock() {
+      this.pageRotate -= 90;
+    },
+    // 页面加载回调函数,其中e为当前页数
+    pageLoaded(e) {
+      this.curPageNum = e;
+    },
+    // 错误时回调函数。
+    pdfError(error) {
+      console.error(error);
+    },
+    // 打印全部
+    pdfPrintAll() {
+      /**
+       * 打印界面字符乱码是因为你pdf中使用了自定义字体导致的,谷歌浏览器打印的时候预览界面真的变成了真·方块字 ,解决方案如下:
+       * 用文章最后的pdfjsWrapper.js在替换掉node_modules/vue-pdf/src/pdfjsWrapper.js
+       */
+
+      this.$refs.pdf.print();
+    },
+    // 阅读按钮操作
+    ViewRead(row) {
+      console.log(row);
+      var path = row.filePath;
+      var index = path.lastIndexOf(".");
+      var str = path.substring(index + 1, path.length);
+      console.log(str);
+      if (str == "docx"|| str == "doc") {
+      this.open33 = true;
+      axios({
+        method: "get",
+        responseType: "blob", // 设置响应文件格式
+        url: process.env.VUE_APP_BASE_API + row.filePath,
+      }).then(({ data }) => {
+        $(".docx").attr("id", "printArea");
+        docx.renderAsync(data, this.$refs.file); // 渲染到页面预览
+      });
+    }else if (str == "pdf") {
+        this.previewDialog = true;
+        this.pdfurl = process.env.VUE_APP_BASE_API + row.filePath;
+        this.pageNum = 1;
+      }else{
+        this.$message.error('只能预览Doc,Docx,Pdf格式的文件!')
+      }
+    },
     // 获取执行人
     unit2Format(row) {
       var deptName = "";
@@ -822,7 +1010,7 @@ export default {
 };
 </script>
 <style scoped>
-::v-deep .fujian .el-form-item__content{
+::v-deep .fujian .el-form-item__content {
   display: flex;
 }
 /* 备注 */
@@ -935,10 +1123,13 @@ export default {
   height: 80px !important;
 }
 ::v-deep .el-dialog__body {
-  padding-left: 35px !important;
+  padding-left: 35px;
   padding-right: 0px !important;
   padding-bottom: 0px !important;
 }
+::v-deep .yuedu .el-dialog__body{
+  padding-left: 126px !important;
+}
 /* 富文本内容 */
 /* ::v-deep .editor{
   width: 1010px;
@@ -1039,4 +1230,21 @@ export default {
 ::v-deep .el-select__input {
   color: white;
 }
+/* doc文件样式修改 */
+::v-deep .docx {
+  padding: 0 !important;
+}
+::v-deep .docx-wrapper > section.docx {
+  /* padding: 0 !important; */
+  margin-bottom: 0px !important;
+  box-shadow: none;
+}
+/* 预览弹框背景去除 */
+::v-deep .docx-wrapper {
+  padding: 0 !important;
+  background: none !important;
+}
+::v-deep .docx {
+  width: 100% !important;
+}
 </style>