From 92ff846fb659c62037a32b1d8c15eae9df9d9b54 Mon Sep 17 00:00:00 2001
From: zenglf <18502938215@163.com>
Date: 星期一, 18 九月 2023 13:24:30 +0800
Subject: [PATCH] Merge branch 'develop' of http://117.34.109.166:18448/r/vue_mdc_430

---
 src/views/eam/modules/equipmentNew/EquipmentDocumentList.vue |  420 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 420 insertions(+), 0 deletions(-)

diff --git a/src/views/eam/modules/equipmentNew/EquipmentDocumentList.vue b/src/views/eam/modules/equipmentNew/EquipmentDocumentList.vue
new file mode 100644
index 0000000..af5b351
--- /dev/null
+++ b/src/views/eam/modules/equipmentNew/EquipmentDocumentList.vue
@@ -0,0 +1,420 @@
+<template>
+  <a-card
+    :bordered="false"
+    :class="'cust-erp-sub-tab'"
+  >
+    <!-- 鏌ヨ鍖哄煙 -->
+    <div class="table-page-search-wrapper">
+      <a-form
+        layout="inline"
+        @keyup.enter.native="searchQuery"
+      >
+        <a-row :gutter="24">
+        </a-row>
+      </a-form>
+    </div>
+    <!-- 鏌ヨ鍖哄煙-END -->
+
+    <!-- 鎿嶄綔鎸夐挳鍖哄煙 -->
+    <div
+      class="table-operator"
+      v-if="mainId"
+    >
+      <a-button
+        @click="handleAdd"
+        type="primary"
+        icon="plus"
+        v-has="'accountSons:add&edit&delete&submit'"
+      >鏂板</a-button>
+      <!-- <a-button type="primary" icon="download" @click="handleExportXls('璁惧鏂囨。')">瀵煎嚭</a-button>
+      <a-upload
+        name="file"
+        :showUploadList="false"
+        :multiple="false"
+        :headers="tokenHeader"
+        :action="importExcelUrl"
+        @change="handleImportExcel">
+          <a-button type="primary" icon="import">瀵煎叆</a-button>
+      </a-upload> -->
+      <a-dropdown v-if="selectedRowKeys.length > 0" v-has="'accountSons:add&edit&delete&submit'">
+        <a-menu slot="overlay">
+          <a-menu-item
+            key="1"
+            @click="batchDel"
+          ><a-icon type="delete" />鍒犻櫎</a-menu-item>
+        </a-menu>
+        <a-button style="margin-left: 8px"> 鎵归噺鎿嶄綔 <a-icon type="down" /></a-button>
+      </a-dropdown>
+    </div>
+
+    <!-- table鍖哄煙-begin -->
+    <div>
+      <div
+        class="ant-alert ant-alert-info"
+        style="margin-bottom: 16px;"
+      >
+        <i class="anticon anticon-info-circle ant-alert-icon"></i> 宸查�夋嫨 <a style="font-weight: 600">{{ selectedRowKeys.length }}</a>椤�
+        <a
+          style="margin-left: 24px"
+          @click="onClearSelected"
+        >娓呯┖</a>
+      </div>
+
+      <a-table
+        ref="table"
+        size="middle"
+        bordered
+        rowKey="id"
+        :scroll="{x:true}"
+        :columns="columns"
+        :dataSource="dataSource"
+        :pagination="ipagination"
+        :loading="loading"
+        :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
+        @change="handleTableChange"
+      >
+
+        <span
+          slot="size"
+          slot-scope="text"
+          class="error"
+        >
+          {{sizeConvert(text)}}
+        </span>
+
+        <span
+          slot="action"
+          slot-scope="text, record"
+        >
+          <a @click="handleEdit(record)" v-has="'accountSons:add&edit&delete&submit'">缂栬緫</a>
+
+          <a-divider type="vertical" />
+
+          <Tooltip
+            placement="top"
+            title="棰勮鍥剧墖"
+          >
+            <img
+              v-if="record.upload.path && (record.upload.format.toLowerCase()=='jpg'||record.upload.format.toLowerCase()=='bmp'||record.upload.format.toLowerCase()=='png'||record.upload.format.toLowerCase()=='jpeg'||record.upload.format.toLowerCase()=='gif')"
+              width="30"
+              height="14"
+              border="1"
+              draggable="false"
+              preview="1"
+              :preview-text="''"
+              :src="record.upload.src"
+            />
+          </Tooltip>
+          <a
+            v-if="record.upload.path && record.upload.format.toLowerCase()=='pdf'"
+            href="javascript:;"
+            @click="view(record)"
+          >
+            棰勮
+          </a>
+          <a-divider
+            v-if="record.upload.path && (record.upload.format.toLowerCase()=='jpg'||record.upload.format.toLowerCase()=='bmp'||record.upload.format.toLowerCase()=='png'||record.upload.format.toLowerCase()=='jpeg'||record.upload.format.toLowerCase()=='gif'||record.upload.format.toLowerCase()=='pdf')"
+            type="vertical"
+          />
+
+          <a
+            href="javascript:;"
+            @click="handleDownload(record)"
+          >涓嬭浇</a>
+
+          <a-divider type="vertical" />
+          <a-popconfirm
+            title="纭畾鍒犻櫎鍚�?"
+            @confirm="() => handleDelete(record.id)"
+            v-has="'accountSons:add&edit&delete&submit'"
+          >
+            <a>鍒犻櫎</a>
+          </a-popconfirm>
+        </span>
+      </a-table>
+    </div>
+    <pdf-view ref="pdfview"></pdf-view>
+    <equipmentDocument-modal
+      ref="modalForm"
+      @ok="modalFormOk"
+      :mainId="mainId"
+    ></equipmentDocument-modal>
+  </a-card>
+</template>
+
+<script>
+
+import { JeecgListMixin } from '@/mixins/JeecgListMixin'
+import EquipmentDocumentModal from './EquipmentDocumentModal'
+import { preview } from 'vue-photo-preview'
+import { mixinDevice } from '@/utils/mixin'
+import { ACCESS_TOKEN } from '@/store/mutation-types'
+import Vue from 'vue'
+import PdfView from '@views/common/PdfView'
+import JInput from '@/components/jeecg/JInput'
+import Tooltip from 'ant-design-vue/es/tooltip'
+import JEllipsis from "@/components/jeecg/JEllipsis";
+import { getFileAccessHttpUrl } from '@/api/manage';
+import '@/assets/less/TableExpand.less'
+import store from '@/store/'
+import { downFile, getAction } from '../../../../api/manage'
+export default {
+  name: "EquipmentDocumentList",
+  mixins: [JeecgListMixin, mixinDevice],
+  components: {
+    EquipmentDocumentModal,
+    PdfView,
+    preview,
+    JInput,
+    Tooltip,
+    JEllipsis,
+  },
+  props: {
+    mainId: {
+      type: String,
+      default: '',
+      required: false
+    }
+  },
+  watch: {
+    mainId: {
+      immediate: true,
+      handler(val) {
+        if (!this.mainId) {
+          this.clearList()
+        } else {
+          this.queryParam['equipmentId'] = val
+          this.loadData(1);
+        }
+      }
+    }
+  },
+  data() {
+    return {
+      description: '璁惧鍙拌处绠$悊椤甸潰',
+      disableMixinCreated: true,
+      colorMap: {},
+      // 琛ㄥご
+      columns: [
+        {
+          title: '#',
+          dataIndex: '',
+          key: 'rowIndex',
+          width: 60,
+          align: "center",
+          customRender: function (t, r, index) {
+            return parseInt(index) + 1;
+          }
+        },
+        {
+          title: '鏂囨。缂栧彿',
+          dataIndex: 'num',
+          align: "center",
+        },
+        {
+          title: '鏂囨。鍚嶇О',
+          align: 'center',
+          dataIndex: 'name',
+        },
+        {
+          title: '鏂囨。绫诲瀷',
+          align: 'center',
+          dataIndex: 'fileType_dictText',
+        },
+        {
+          title: '涓婁紶鏃堕棿',
+          align: "center",
+          dataIndex: 'createTime',
+        },
+        {
+          title: '涓婁紶鑰�',
+          align: "center",
+          dataIndex: 'createBy',
+        },
+        {
+          title: '澶у皬',
+          align: "center",
+          dataIndex: 'size',
+          scopedSlots: {
+            customRender: 'size'
+          },
+          width: 300,
+        },
+        {
+          title: '鎿嶄綔',
+          align: "center",
+          dataIndex: 'action',
+          scopedSlots: {
+            customRender: 'action'
+          },
+          width: 200,
+          fixed: 'right',
+        },
+      ],
+      url: {
+        list: "/eam/equipmentDocument/list",
+        delete: "/eam/equipmentDocument/delete",
+        deleteBatch: '/eam/equipmentDocument/deleteBatch',
+        urlDownload: window._CONFIG['staticDomainURL'],
+        download: '/sys/upload/downloadFile',
+      },
+      dictOptions: {
+      }
+    }
+  },
+  created() {
+  },
+  computed: {
+    importExcelUrl() {
+      return `${window._CONFIG['domianURL']}/${this.url.importUrl}/${this.mainId}`;
+    }
+  },
+  methods: {
+    clearList() {
+      this.dataSource = []
+      this.selectedRowKeys = []
+      this.ipagination.current = 1
+    },
+    sizeConvert(limit) {
+      var size = "";
+      if (limit < 0.1 * 1024) {
+        size = parseFloat(limit).toFixed(2) + "B";//灏忎簬0.1KB锛屽垯杞寲鎴怋
+      } else if (limit < 0.1 * 1024 * 1024) {
+        size = (parseFloat(limit) / 1024).toFixed(2) + "KB";//灏忎簬0.1MB锛屽垯杞寲鎴怟B
+      } else if (limit < 0.1 * 1024 * 1024 * 1024) {
+        size = (parseFloat(limit) / (1024 * 1024)).toFixed(2) + "MB";//灏忎簬0.1GB锛屽垯杞寲鎴怣B
+      } else {
+        size = (parseFloat(limit) / (1024 * 1024 * 1024)).toFixed(2) + "GB";//鍏朵粬杞寲鎴怗B
+      }
+      var sizeStr = size + "";//杞垚瀛楃涓�
+      var index = sizeStr.indexOf(".");//鑾峰彇灏忔暟鐐瑰鐨勭储寮�
+      var dou = sizeStr.substr(index + 1, 2);//鑾峰彇灏忔暟鐐瑰悗涓や綅鐨勫��
+      if (dou == "00") {//鍒ゆ柇鍚庝袱浣嶆槸鍚︿负00锛屽鏋滄槸鍒欏垹闄�00
+        return sizeStr.substring(0, index) + sizeStr.substr(index + 3, 2);
+      }
+      return size;
+    },
+    getSrc(record) {
+
+      if (!record.path) {
+        return '';
+      }
+      //鏈湴锛歭ocal\Minio锛歮inio\闃块噷浜戯細alioss
+      if (record.uploadType == 'local') {
+
+        let ssoLoginFlag = Vue.ls.get("ssoLoginFlag");
+        let deployMode = Vue.ls.get("deployMode");
+
+        if (ssoLoginFlag && deployMode == "container") {
+          var baseProject = Vue.ls.get("baseProject");
+          console.log("baseProject==>" + baseProject)
+
+          var hostname = window.location.protocol + "//" + window.location.host;
+          var url = hostname + '/' + baseProject + '/sys/common/static';
+          return getFileAccessHttpUrl(record.path + record.encodeName, url, window._CONFIG['hyperTextTransfer'])
+        } else {
+          //鏍规嵁鍙戝竷鐘舵�佷慨鏀筯ttps 鎴� http
+          return getFileAccessHttpUrl(record.path + record.encodeName, this.url.urlDownload, window._CONFIG['hyperTextTransfer'])
+        }
+
+      } else if (record.uploadType == 'alioss') {
+
+        const OSS = require('ali-oss')
+        const client = new OSS({
+          // region浠ユ澀宸炰负渚嬶紙oss-cn-hangzhou锛夛紝鍏朵粬region鎸夊疄闄呮儏鍐靛~鍐欍��
+          region: window._CONFIG['region'],
+          // 闃块噷浜戜富璐﹀彿AccessKey鎷ユ湁鎵�鏈堿PI鐨勮闂潈闄愶紝椋庨櫓寰堥珮銆傚己鐑堝缓璁偍鍒涘缓骞朵娇鐢≧AM璐﹀彿杩涜API璁块棶鎴栨棩甯歌繍缁达紝璇风櫥褰昍AM鎺у埗鍙板垱寤篟AM璐﹀彿銆�
+          accessKeyId: window._CONFIG['accessKeyId'],
+          accessKeySecret: window._CONFIG['accessKeySecret'],
+          bucket: window._CONFIG['bucket'],
+        })
+        // object-key琛ㄧず浠嶰SS涓嬭浇鏂囦欢鏃堕渶瑕佹寚瀹氬寘鍚枃浠跺悗缂�鍦ㄥ唴鐨勫畬鏁磋矾寰勶紝渚嬪abc/efg/123.jpg銆�
+        return client.signatureUrl(record.path)
+      }
+    },
+    view(record) {
+      this.$refs.pdfview.showPdf(record.upload.src);
+    },
+
+    handleDownload(record) {
+      downFile(this.url.download, { id: record.id }).then((res) => {
+        if (!res) {
+          this.$message.warning('鏂囦欢涓嬭浇澶辫触')
+          return
+        } else {
+          let fileName = record.name;
+          if (typeof window.navigator.msSaveBlob !== 'undefined') {
+            window.navigator.msSaveBlob(new Blob([res]), fileName);
+          } else {
+            let url = window.URL.createObjectURL(new Blob([res]));
+            let link = document.createElement('a');
+            link.style.display = 'none';
+            link.href = url;
+            link.setAttribute('download', fileName);
+            document.body.appendChild(link);
+            link.click()
+            document.body.removeChild(link) //涓嬭浇瀹屾垚绉婚櫎鍏冪礌
+            window.URL.revokeObjectURL(url) //閲婃斁鎺塨lob瀵硅薄
+          }
+        }
+      })
+    },
+    loadData(arg) {
+      if (!this.url.list) {
+        this.$message.error("璇疯缃畊rl.list灞炴��!")
+        return
+      }
+      //鍔犺浇鏁版嵁 鑻ヤ紶鍏ュ弬鏁�1鍒欏姞杞界涓�椤电殑鍐呭
+      if (arg === 1) {
+        this.ipagination.current = 1;
+      }
+      var params = this.getQueryParams();//鏌ヨ鏉′欢
+      if (this.equipmentId == '') {
+        params.equipmentId = '-1';
+      }
+      this.loading = true;
+      getAction(this.url.list, params).then((res) => {
+        if (res.success) {
+          for (let i = 0; i < res.result.records.length; i++) {
+            let r = res.result.records[i].upload;
+            r.src = this.getSrc(res.result.records[i].upload);
+          }
+          this.dataSource = res.result.records || res.result;
+          if (res.result.total) {
+            this.ipagination.total = res.result.total;
+          } else {
+            this.ipagination.total = 0;
+          }
+          //update-end---author:zhangyafei    Date:20201118  for锛氶�傞厤涓嶅垎椤电殑鏁版嵁鍒楄〃------------
+        } else {
+          this.$message.warning(res.message)
+        }
+      }).finally(() => {
+        this.loading = false
+      })
+    },
+
+
+
+  }
+}
+</script>
+<style scoped>
+@import '~@assets/less/common.less';
+/deep/ .frozenRowClass {
+  color: #c9c9c9;
+}
+.success {
+  color: green;
+}
+.error {
+  color: red;
+}
+.fontweight {
+  font-weight: bold;
+}
+.ant-card {
+  margin-left: -30px;
+  margin-right: -30px;
+}
+</style>

--
Gitblit v1.9.3