14 Commits 21674c3236 ... ffc6ab4d49

Autor SHA1 Mensagem Data
  Shan9312 ffc6ab4d49 代码更新 3 meses atrás
  Shan9312 f1657291ff 校验铅封号 4 meses atrás
  Shan9312 2debf10a87 添加教研铅封号必填 4 meses atrás
  Shan9312 c89e226cc0 用户管理修改牧场id 4 meses atrás
  Shan9312 051df8a7ff 大数据修改--打包 4 meses atrás
  Shan9312 1360096963 大数据修改 4 meses atrás
  Shan9312 990a3c26d7 设备大数据 4 meses atrás
  Shan9312 27af95c6dd 设备大数据 5 meses atrás
  Shan9312 34724af529 折线图 5 meses atrás
  Shan9312 04e1eb6b94 铅封号 5 meses atrás
  Shan9312 75a92d6a76 铅封号 5 meses atrás
  Shan9312 7040793850 铅封号 5 meses atrás
  Shan9312 efc5a81744 铅封号 5 meses atrás
  Shan9312 7affc9cb33 更换接口 5 meses atrás
35 arquivos alterados com 1313 adições e 252 exclusões
  1. 1 1
      .env.development
  2. BIN
      dist 2.zip
  3. BIN
      dist-20241223-正式-现代牧业.zip
  4. BIN
      dist-20241223-正式-现代牧业2.zip
  5. BIN
      dist-正式-20241218-现代牧业.zip
  6. BIN
      dist-正式-20250110-现代牧业.zip
  7. BIN
      dist-正式-现代牧业-20250117.zip
  8. BIN
      dist-正式2-现代牧业-20241217.zip
  9. BIN
      dist-正式3-现代牧业-20241217.zip
  10. BIN
      dist-测试-现代牧业-1218.zip
  11. BIN
      dist-测试版-现代-20241225.zip
  12. BIN
      dist-现代牧业-20250120-正式线.zip
  13. BIN
      dist-现代牧业-20250217-正式.zip
  14. BIN
      dist-现代牧业-20250218-正式.zip
  15. BIN
      dist-现代牧业-正式-20250116.zip
  16. BIN
      dist-现代牧业-测试-20250106.zip
  17. BIN
      dist-现代牧业-测试-20250110.zip
  18. 0 0
      dist/index.html
  19. 65 180
      package-lock.json
  20. 1 1
      package.json
  21. 45 0
      src/api/common.js
  22. 1 1
      src/layout/components/Sidebar/SidebarItem.vue
  23. 6 6
      src/router/index.js
  24. 859 0
      src/views/asset/assetBigData/index.vue
  25. 1 1
      src/views/basic/assetStandardManagement/index.vue
  26. 7 1
      src/views/console/user/index.vue
  27. 2 1
      src/views/cost/diesel/index.vue
  28. 2 0
      src/views/cost/elec/index.vue
  29. 1 0
      src/views/cost/water/index.vue
  30. 2 1
      src/views/custom/basic/index.vue
  31. 14 5
      src/views/custom/purchase/index.vue
  32. 23 9
      src/views/custom/subscribe/index.vue
  33. 56 12
      src/views/maintenance/repair/index.vue
  34. 92 17
      src/views/maintenance/subcontractingMainten/tabPage/tab1.vue
  35. 135 16
      src/views/maintenance/subcontractingMainten/tabPage/tab2.vue

+ 1 - 1
.env.development

@@ -13,7 +13,7 @@ ENV = 'development'
 VUE_APP_BASE_API = 'http://tmrwatch.cn:8082/'
 
 # 白少后台本地
-# VUE_APP_BASE_API = 'http://192.168.1.233:8082/'
+# VUE_APP_BASE_API = 'http://192.168.1.76:8082/'
 
 # VUE_APP_BASE_API = 'http://36.155.144.182:18090/'
 

BIN
dist 2.zip


BIN
dist-20241223-正式-现代牧业.zip


BIN
dist-20241223-正式-现代牧业2.zip


BIN
dist-正式-20241218-现代牧业.zip


BIN
dist-正式-20250110-现代牧业.zip


BIN
dist-正式-现代牧业-20250117.zip


BIN
dist.zip → dist-正式2-现代牧业-20241217.zip


BIN
-.zip → dist-正式3-现代牧业-20241217.zip


BIN
dist-测试-现代牧业-1218.zip


BIN
dist-测试版-现代-20241225.zip


BIN
dist-现代牧业-20250120-正式线.zip


BIN
dist-现代牧业-20250217-正式.zip


BIN
dist-现代牧业-20250218-正式.zip


BIN
dist-现代牧业-正式-20250116.zip


BIN
dist-现代牧业-测试-20250106.zip


BIN
dist-现代牧业-测试-20250110.zip


Diferenças do arquivo suprimidas por serem muito extensas
+ 0 - 0
dist/index.html


Diferenças do arquivo suprimidas por serem muito extensas
+ 65 - 180
package-lock.json


+ 1 - 1
package.json

@@ -26,6 +26,7 @@
     "js-cookie": "2.2.0",
     "js-table2excel": "^1.0.3",
     "moment": "^2.24.0",
+    "node-sass": "^4.14.1",
     "normalize.css": "7.0.0",
     "nprogress": "0.2.0",
     "path-to-regexp": "2.4.0",
@@ -55,7 +56,6 @@
     "eslint-plugin-vue": "5.2.2",
     "html-webpack-plugin": "3.2.0",
     "mockjs": "1.0.1-beta3",
-    "node-sass": "^4.13.1",
     "runjs": "^4.3.2",
     "sass-loader": "^8.0.2",
     "script-ext-html-webpack-plugin": "2.1.3",

+ 45 - 0
src/api/common.js

@@ -400,3 +400,48 @@ export function getMainPastur(data) {
     params: data
   })
 }
+
+// 查询主牧场
+export function getPartsListSGList(data) {
+  return request({
+    url: '/authdata/sg/parts/list',
+    method: 'post',
+    data
+  })
+}
+
+// 导出验收单
+export function getDownList(data) {
+  return request({
+    url: '/authdata/GetDataByName',
+    method: 'post',
+    data
+  })
+}
+
+// 大数据
+export function getBigData(data) {
+  return request({
+    url: '/authdata/eq/data',
+    method: 'get',
+    params: data
+  })
+}
+
+// 大数据记录
+export function getBigDataRecode(data) {
+  return request({
+    url: '/authdata/eq/data/record',
+    method: 'get',
+    params: data
+  })
+}
+
+// 大数据导出
+export function getDownLoadData(data) {
+   return request({
+    url: '/authdata/eq/data/excel',
+    method: 'get',
+    params: data
+  })
+}

+ 1 - 1
src/layout/components/Sidebar/SidebarItem.vue

@@ -36,7 +36,7 @@ import AppLink from './Link'
 import FixiOSBug from './FixiOSBug'
 
 
-import { GetDataByName, GetDataByNames, PostDataByName } from '@/api/common'
+import {  PostDataByName } from '@/api/common'
 
 export default {
   name: 'SidebarItem',

+ 6 - 6
src/router/index.js

@@ -68,14 +68,14 @@ export const constantRoutes = [
   },
 
   // {
-  //   path: '/ranchAccompany',
+  //   path: '/assetBigData',
   //   component: Layout,
-  //   redirect: '/ranchAccompany',
+  //   redirect: '/assetBigData',
   //   children: [{
-  //     path: 'ranchAccompany',
-  //     name: 'ranchAccompany',
-  //     component: () => import('@/views/basic/ranchAccompany/index.vue'),
-  //     meta: { title: '主牧场配置', icon: '', affix: true }
+  //     path: 'assetBigData',
+  //     name: 'assetBigData',
+  //     component: () => import('@/views/asset/assetBigData/index.vue'),
+  //     meta: { title: '设备大数据', icon: '', affix: true }
   //   }]
   // }
 

+ 859 - 0
src/views/asset/assetBigData/index.vue

@@ -0,0 +1,859 @@
+<template>
+  <div class="app-container">
+    <div v-if="isPercentage" class="percentage" style="width: 210px;height: 90px;background: #fff;position: fixed;bottom: 0;left: 0;z-index: 9999999999999;">
+      <h4 style="padding-left: 10px;line-height: 0;">导出进度:</h4>
+      <el-progress style="padding-left: 10px;" :text-inside="true" :stroke-width="26" :percentage="percentage" />
+    </div>
+    <div class="filter-container">
+      <el-select
+        v-model="getdataListParm.parammaps.pastureArr"
+        style="width: 220px"
+        placeholder="牧场"
+        multiple
+        collapse-tags
+        filterable collapse-tags-tooltip
+        class="filter-item"
+      >
+           <div class="select_up">
+                <el-button type="text" @click="selectAll">
+                    <i class="jw jw-quanxuan " />
+                    全选</el-button>
+                <el-button type="text" @click="removeTag">
+                    <i class="jw jw-qingkong " />
+                    清空</el-button>
+                <el-button type="text" @click="selectReverse">
+                    <i class="jw jw-fanxuan " />
+                    反选</el-button>
+            </div>
+            <div class="select_list">
+        <el-option
+          v-for="item in findAllPasture"
+          :key="item.id"
+          :label="item.name"
+          :value="item.name"
+        />
+        </div>
+      </el-select>
+         <el-input
+            v-model="getdataListParm.parammaps.eqName"
+            placeholder="设备名称"
+            clearable
+            style="width: 120px"
+            class="filter-item"
+          />
+            <el-input
+            v-model="getdataListParm.parammaps.eqCode"
+            placeholder="设备内部编号"
+            clearable
+            style="width: 150px"
+            class="filter-item"
+          />
+           <el-input
+            v-model="getdataListParm.parammaps.financeCode"
+            placeholder="财务编号"
+            clearable
+            style="width: 120px"
+            class="filter-item"
+          />
+      <el-select v-model="getdataListParm.parammaps.departmentId" clearable placeholder="部门" class="filter-item" style="width: 120px;">
+        <el-option v-for="item in findAllDepart" :key="item.id" :label="item.name" :value="item.id" />
+      </el-select>
+          <el-select
+            v-model="getdataListParm.parammaps.status"
+            clearable
+            placeholder="状态"
+            class="filter-item"
+            style="width: 120px"
+          >
+            <el-option
+              v-for="item in getDictByName"
+              :key="item.id"
+              :label="item.label"
+              :value="item.id"
+            />
+          </el-select>
+           <el-input
+            v-model="getdataListParm.parammaps.cardCode"
+            placeholder="油卡编号"
+            clearable
+            style="width: 120px"
+            class="filter-item"
+          />
+      <!-- <el-date-picker ref="inputDatetime" v-model="getdataListParm.parammaps.inputDatetime" class="inputDatetime" type="monthrange" style="width: 250px;top:-3px;" format="yyyy-MM" value-format="yyyy-MM" range-separator="至" start-placeholder="盘点日期" end-placeholder="盘点日期" /> -->
+      <el-date-picker
+                  v-model="getdataListParm.parammaps.inputDatetime"
+                  type="month"
+                  placeholder="选择月">
+                </el-date-picker>
+      <el-button class="filter-item" type="primary" icon="el-icon-search" @click="form_search">搜索</el-button>
+      <!-- <el-button class="filter-item" type="info" icon="el-icon-tickets" style="" @click="handleDownloadTemp">模板</el-button> -->
+      <!-- <el-upload style="display: inline-block;" :headers="headers" :data="uploadData" :action="uploadExcelUrl" :show-file-list="false" :before-upload="beforeImportExcel" :on-success="handleImportExcelSuccess">
+        <el-button class="filter-item" type="warning" icon="el-icon-upload2">导入</el-button>
+      </el-upload> -->
+
+      <el-button class="filter-item" type="success" icon="el-icon-download" style="" @click="handleDownload">导出</el-button>
+      <!-- <el-button class="filter-item" type="primary" icon="el-icon-edit" @click="handleDelete">批量删除</el-button> -->
+    </div>
+    <el-table
+        :key="tableKey"
+        v-loading="listLoading"
+        element-loading-text="给我一点时间"
+        :data="list"
+        border
+        fit
+        highlight-current-row
+        style="width: 100%;"
+        :row-style="rowStyle"
+        :cell-style="cellStyle"
+        class="elTable"
+        @selection-change="handleSelectionChange"
+        :max-height="myHeight"
+        ref="table"
+      >
+        <!-- <el-table-column type="selection" width="55" /> -->
+        <el-table-column label="序号" align="center" type="index" width="50px">
+          <template slot-scope="scope">
+            <span>{{ scope.$index + (pageNum-1) * pageSize + 1 }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="牧场" align="center" prop="pastureName" />
+
+        <el-table-column label="设备类别" align="center" prop="eqClassName" />
+       <el-table-column label="设备名称" align="center" prop="eqName" />
+        <el-table-column label="设备内部编号" align="center" prop="eqCode" />
+        <el-table-column label="状态" align="center" prop="status" />
+        <el-table-column label="置换日期"   align="center" prop="purchaseDate" />
+        <el-table-column label="财务编号" align="center" prop="financeCode" />
+        <el-table-column label="部门" align="center" prop="departmentName" />
+        <el-table-column label="责任人" sortable align="center" prop="employeName" />
+        <el-table-column label="物联网编码" sortable align="center" prop="license" />
+        <el-table-column label="标准工作时长" sortable align="center" prop="duration" />
+        <el-table-column label="油卡号" sortable align="center" prop="cardCode" />
+        <el-table-column label="油卡类型" sortable align="center" prop="cardType" />
+        <el-table-column label="油卡状态" sortable align="center" prop="enable" >
+          </el-table-column>
+        <el-table-column label="操作" align="center" width="300" class-name="small-padding fixed-width" fixed="right">
+          <template slot-scope="{row}">
+            <el-button type="primary" size="mini" @click="form_see(row)">查看</el-button>
+          </template>
+        </el-table-column>
+     </el-table>
+      <pagination v-show="total>=0" :total="total" :page.sync="getdataListParm.parammaps.offset" :limit.sync="getdataListParm.parammaps.pagecount" @pagination="get_table_data" />
+      <el-dialog title="查看详情" :visible.sync="dialogFormVisible" :close-on-click-modal="false" width="80%">
+        <div class="app-change">
+          <el-tabs v-model="activeName" @tab-click="handleClick">
+          <el-tab-pane label="基础信息" name="first">
+                <el-form ref="seeTemp" :model="see.temp" label-position="right" label-width="115px" style="width: 90%;margin:0 auto 30px" @click.native.prevent @submit.native.prevent>
+            <el-row>
+              <el-col :span="6">
+                <el-form-item label="牧场:" prop="pastureName">
+                  <el-input ref="pastureName" v-model="see.temp.pastureName" placeholder="牧场" disabled />
+                </el-form-item>
+              </el-col>
+              <el-col :span="6">
+                <el-form-item label="部门:" prop="departmentName">
+                 <el-input ref="departmentName" v-model="see.temp.departmentName" placeholder="部门" disabled />
+                </el-form-item>
+              </el-col>
+              <el-col :span="6">
+                <el-form-item label="设备类别:" prop="eqClassName">
+                 <el-input ref="departmentName" v-model="see.temp.eqClassName" placeholder="设备类别" disabled />
+                </el-form-item>
+              </el-col>
+               <el-col :span="6">
+                <el-form-item label="设备名称:" prop="eqName">
+                 <el-input ref="eqName" v-model="see.temp.eqName" placeholder="设备名称" disabled />
+                </el-form-item>
+              </el-col>
+            </el-row>
+            <el-row>
+              <el-col :span="6">
+                <el-form-item label="设备内部编号:" prop="eqCode">
+                 <el-input ref="assetCode" v-model="see.temp.eqCode" placeholder="设备内部编号" disabled />
+                </el-form-item>
+              </el-col>
+              <el-col :span="6">
+                <el-form-item label="设备规格:" prop="specification">
+                 <el-input ref="specification" v-model="see.temp.specification" placeholder="设备规格" disabled />
+                </el-form-item>
+              </el-col>
+              <el-col :span="6">
+                <el-form-item label="品牌:" prop="brandName">
+                  <el-input ref="eqCode" v-model="see.temp.brandName" placeholder="品牌" disabled />
+                </el-form-item>
+              </el-col>
+              <el-col :span="6">
+                <el-form-item label="原值:" prop="yuanzhi">
+                  <el-input ref="yuanzhi" v-model="see.temp.yuanzhi" placeholder="原值" disabled />
+                </el-form-item>
+              </el-col>
+            </el-row>
+            <el-row>
+              <el-col :span="6">
+                <el-form-item label="用途:" prop="purpose">
+                  <el-input ref="unit" v-model="see.temp.purpose" placeholder="用途" disabled />
+                </el-form-item>
+              </el-col>
+              <el-col :span="6">
+                <el-form-item label="购置日期:" prop="purchaseDate">
+                 <el-input ref="purchaseDate" v-model="see.temp.purchaseDate" placeholder="购置日期" disabled />
+                </el-form-item>
+              </el-col>
+              <el-col :span="6">
+                <el-form-item label="财务编号:" prop="financeCode">
+                 <el-input ref="financeCode" v-model="see.temp.financeCode" placeholder="财务编号" disabled />
+                </el-form-item>
+              </el-col>
+              <el-col :span="6">
+                <el-form-item label="维修费用:" prop="yearMaintainCost">
+                 <el-input ref="yearMaintainCost" v-model="see.temp.yearMaintainCost" placeholder="维修费用" disabled />
+                </el-form-item>
+              </el-col>
+            </el-row>
+            <el-row>
+              <el-col :span="6">
+                <el-form-item label="残值:" prop="salvage">
+                  <el-input ref="salvage" v-model="see.temp.salvage" placeholder="残值" disabled />
+                </el-form-item>
+              </el-col>
+              <el-col :span="6">
+                <el-form-item label="保养级别:" prop="upkeepgrade">
+                 <el-input ref="upkeepgrade" v-model="see.temp.upkeepgrade" placeholder="保养级别" disabled />
+                </el-form-item>
+              </el-col>
+              <el-col :span="6">
+                <el-form-item label="保养费用:" prop="yearUpkeepCost">
+                 <el-input ref="yearUpkeepCost" v-model="see.temp.yearUpkeepCost" placeholder="保养费用" disabled />
+                </el-form-item>
+              </el-col>
+              <el-col :span="6">
+                <el-form-item label="工作类别:" prop="work">
+                 <el-input ref="work" v-model="see.temp.work" placeholder="工作类别" disabled />
+                </el-form-item>
+              </el-col>
+            </el-row>
+            <el-row>
+              <el-col :span="6">
+                <el-form-item label="责任人:" prop="employeName">
+                  <el-input ref="employeName" v-model="see.temp.employeName" placeholder="责任人" disabled />
+                </el-form-item>
+              </el-col>
+              <el-col :span="6">
+                <el-form-item label="物联网编码:" prop="license">
+                 <el-input ref="license" v-model="see.temp.license" placeholder="物联网编码" disabled />
+                </el-form-item>
+              </el-col>
+              <el-col :span="6">
+                <el-form-item label="标准工作时长:" prop="duration">
+                 <el-input ref="duration" v-model="see.temp.duration" placeholder="标准工作时长" disabled />
+                </el-form-item>
+              </el-col>
+               <el-col :span="6">
+                <el-form-item label="状态:" prop="status">
+                  <el-input ref="status" v-model="see.temp.status" placeholder="状态" disabled />
+                </el-form-item>
+              </el-col>
+            </el-row>
+            <el-row>
+              <el-col :span="6">
+                <el-form-item label="油卡号:" prop="cardCode">
+                  <el-input ref="cardCode" v-model="see.temp.cardCode" placeholder="油卡号" disabled />
+                </el-form-item>
+              </el-col>
+              <el-col :span="6">
+                <el-form-item label="油卡类型:" prop="cardType">
+                 <el-input ref="cardType" v-model="see.temp.cardType" placeholder="油卡类型" disabled />
+                </el-form-item>
+              </el-col>
+              <el-col :span="6">
+                <el-form-item label="油卡状态:" prop="enable">
+                 <el-input ref="enable" v-model="see.temp.enable" placeholder="油卡状态" disabled />
+                </el-form-item>
+              </el-col>
+            </el-row>
+          </el-form>
+          </el-tab-pane>
+
+          <el-tab-pane label="记录" name="second">
+            <div style="margin-bottom: 60px;">
+          <!-- <el-date-picker
+            ref="inputDatetime2"
+            v-model="getdataListParm.parammaps.inputDatetime"
+            class="inputDatetime"
+            type="month"
+            style="width: 250px; top: -3px"
+            format="yyyy-MM"
+            value-format="yyyy-MM"
+            range-separator="至"
+            start-placeholder="购置日期"
+            end-placeholder="购置日期"
+            @change="getDateByList"
+          /> -->
+          <el-date-picker
+            v-model="getdataListParm.parammaps.inputDatetime"
+            type="month"
+            @change="getDateByList"
+            placeholder="选择月">
+          </el-date-picker>
+
+             <el-table
+              key="tableRef"
+              v-loading="listLoading"
+              element-loading-text="给我一点时间"
+              :data="recodeList"
+              border
+              fit
+              highlight-current-row
+              style="width: 100%;"
+              :row-style="rowStyle"
+              :cell-style="cellStyle"
+              class="elTable"
+              @selection-change="handleSelectionChange"
+              :max-height="myHeight2"
+           >
+            <el-table-column label="序号" align="center" type="index" width="50px">
+              <template slot-scope="scope">
+                <span>{{ scope.$index + (pageNum-1) * pageSize + 1 }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column label="日期" align="center" prop="date" />
+            <el-table-column label="工作时长/h" align="center" prop="hour" />
+            <el-table-column label="加油量/L" align="center" prop="oilAmount" />
+             </el-table>
+
+            </div>
+
+          </el-tab-pane>
+        </el-tabs>
+
+
+          <div slot="footer" class="dialog-footer" style="right:30px;position:absolute;bottom:10px">
+            <el-button @click="dialogFormVisible = false;">关闭</el-button>
+          </div>
+        </div>
+      </el-dialog>
+    </div>
+  </div>
+</template>
+
+<script>
+import { GetDataByName, GetDataByNames,checkButtons,postJson,getJson ,getBigData,getBigDataRecode, getDownLoadData} from '@/api/common'
+import { parseTime, json2excel } from '@/utils/index.js'
+import Pagination from '@/components/Pagination'
+import { MessageBox } from 'element-ui'
+import Cookies from 'js-cookie'
+import { getToken } from '@/utils/auth'
+export default {
+  inject: ['reload'],
+  name: 'Assetinventory',
+  components: { Pagination },
+  data() {
+    return {
+      recodeList:[],
+      mountDate:'',
+      tableKey: 0,
+      list: [],
+      statusMap: [
+            { id: 17, label: "正常", value: "正常" },
+            { id: 18, label: "闲置", value: "闲置" },
+            { id: 19, label: "报废", value: "报废" },
+            { id: 20, label: "封存", value: "封存" }
+        ],
+      activeName: 'first',
+      getDictByName:[],
+      total: 0,
+      listLoading: true,
+      getdataListParm: {
+        parammaps: { offset: 1, pagecount: 50, pastureId:'',  cardCode: '', status: '', departmentName: '', departmentId: '',eqCode:"",eqName:"",financeCode:"" ,inputDatetime:this.getCurrentMonthStart() , startTime: '', endTime: '',} // [this.getCurrentMonthStart(), this.getCurrentMonthEnd()]
+      },
+      isAssetinventorySee: [], isBasicsCard: [], isBasicsUpdate: [], isBasicsDel: [], isBasicsDel2: [], isBasic: [], isBasicSH: [], isBasicExamine: [],
+      requestParams: [
+          {
+          name: 'getDictByName',
+          offset: 0,
+          pagecount: 0,
+          params: ['资产状态']
+        },
+        { name: 'findAllPasture', offset: 0, pagecount: 0, returntype: 'Map', parammaps: { 'id': "18" }}
+      ],
+      getDepartParam: { name: 'findAllDepart1', offset: 0, pagecount: 0, parammaps: { 'pastureId': Cookies.get('pastureid'), 'eId': Cookies.get('employeid') }},
+      findAllPasture: [], findAllDepart: [],
+      selectionList:[],
+      textMap: { see: '查看设备信息' },
+      dialogFormVisible: false,
+      dialogStatus: '',
+      see:{
+        temp:{}
+      },
+      isPercentage:false,
+      uploadImageUrl: process.env.VUE_APP_BASE_API + 'authdata/uploaderimage',
+      rowStyle: { maxHeight: 50 + 'px', height: 45 + 'px' },
+      cellStyle: { padding: 0 + 'px' },
+      myHeight: document.documentElement.clientHeight - 85 - 150,
+      myHeight2:  document.documentElement.clientHeight - 150
+    }
+  },
+  computed: {
+    headers() {
+      return {
+        // 设置token
+        token: getToken()
+      }
+    },
+    uploadData() {
+      return {
+        // importParams: '牧场,部门, 资产编号, 资产名称, 设备内部编号, 实物入账日期, 计量单位, 规格, 资产数量, 资产原值, 实际盘点数, 盈亏量, 有无标签, 备注',
+        // sheetname: 'SheetJS'
+      }
+    },
+
+    // 设置上传地址
+    uploadExcelUrl() {
+      // process.env.VUE_APP_BASE_API是服务器的路径,也是axios的基本路径
+      return process.env.VUE_APP_BASE_API + 'authdata/stock/import'
+    }
+  },
+
+
+
+  created() {
+    // this.get_buttons()
+
+    this.get_select_list()
+
+  },
+  methods: {
+    getDateByList(val) {
+      console.log(val,'yue')
+      this.handlegetBigDataRecode()
+   },
+    async handlegetBigDataRecode() {
+       const obj = {
+        startTime: '',
+        endTime: "",
+        eqId:this.see.temp.eqId,
+        cardCode: this.see.temp.cardCode
+      }
+      if (this.getdataListParm.parammaps.inputDatetime == '' || this.getdataListParm.parammaps.inputDatetime == null) {
+        this.getdataListParm.parammaps.inputDatetime = ''
+        const currentYear = new Date().getFullYear();
+        obj.startTime =  `${currentYear}-01-01`;
+        obj.endTime = `${currentYear}-12-31`;
+      } else {
+        obj.startTime = parseTime(this.getdataListParm.parammaps.inputDatetime,'{y}-{m}')+'-01'
+        const year = new Date(this.getdataListParm.parammaps.inputDatetime).getFullYear();
+        const month = new Date(this.getdataListParm.parammaps.inputDatetime).getMonth() + 1; // 月份从0开始
+        const lastDay = new Date(year, month, 0).getDate(); // 获取当前月份的最后一天
+        obj.endTime = parseTime(this.getdataListParm.parammaps.inputDatetime,'{y}-{m}') + '-' + lastDay;
+      }
+      const { data } = await getBigDataRecode(obj)
+      console.log(data, '记录')
+      this.recodeList = data.list;
+
+    },
+     // 获取当前月份的开始日期
+    getCurrentMonthStart() {
+        const date = new Date();
+        return new Date(date.getFullYear(), date.getMonth());
+        // return new Date(date.getFullYear(), date.getMonth(), 1);
+    },
+    // 获取当前月份的结束日期
+    getCurrentMonthEnd() {
+        const date = new Date();
+        return new Date(date.getFullYear(), date.getMonth() + 1, 0);
+    },
+    handleClick(){
+      // this.get_table_data()
+      this.activeName = 'second';
+      if ( this.activeName == 'second') {
+       this. handlegetBigDataRecode()
+      }
+    },
+        // 删除
+    removeTag() {
+      this.getdataListParm.parammaps.pastureArr = []
+    },
+    // 全选
+    selectAll(val) {
+      val = []
+      this.findAllPasture.map(item => {
+          val.push(item.name)
+      })
+      this.getdataListParm.parammaps.pastureArr = val
+    },
+    // 反选
+    selectReverse(val) {
+        val = []
+        this.findAllPasture.map(item => {
+            let index = this.getdataListParm.parammaps.pastureArr.indexOf(item.name);
+            if (index != -1) {
+                //orgData.splice(index, 1)
+            } else {
+                val.push(item.name)
+            }
+        })
+        this.getdataListParm.parammaps.pastureArr = val
+    },
+    // get_buttons() {
+    //   // 新增
+    //   const AssetinventorySee = 'asset:assetinventory:see'
+    //   const isAssetinventorySee = checkButtons(this.$store.state.user.buttons, AssetinventorySee)
+    //   this.isAssetinventorySee = isAssetinventorySee
+    // },
+    get_select_list() {
+      GetDataByNames(this.requestParams).then(response => {
+        if (response.data.list !== null) {
+          this.findAllPasture = response.data.findAllPasture.list
+          this.getDictByName = response.data.getDictByName.list
+          this.selectAll();
+          // this.getdataListParm.parammaps.pastureArr = [Cookies.get('pasturename')]
+          this.getDepartDownList()
+           this.get_table_data()
+
+        }
+      })
+    },
+    getDepartDownList() {
+      GetDataByName(this.getDepartParam).then(response => {
+        this.findAllDepart = response.data.list
+      })
+    },
+    get_table_data() {
+      this.listLoading = true
+      if (this.getdataListParm.parammaps.inputDatetime == '' || this.getdataListParm.parammaps.inputDatetime == null) {
+        this.getdataListParm.parammaps.inputDatetime = ''
+        this.getdataListParm.parammaps.startTime = ''
+        this.getdataListParm.parammaps.endTime = ''
+      } else {
+        this.getdataListParm.parammaps.startTime = parseTime(this.getdataListParm.parammaps.inputDatetime, '{y}-{m}') + '-01'
+        const year = new Date(this.getdataListParm.parammaps.inputDatetime).getFullYear();
+        const month = new Date(this.getdataListParm.parammaps.inputDatetime).getMonth() + 1; // 月份从0开始
+        const lastDay = new Date(year, month, 0).getDate(); // 获取当前月份的最后一天
+        this.getdataListParm.parammaps.endTime = parseTime(this.getdataListParm.parammaps.inputDatetime,'{y}-{m}') + '-' + lastDay;
+        // this.getdataListParm.parammaps.endTime = parseTime(this.getdataListParm.parammaps.inputDatetime,'{y}-{m}')+ '-31'
+      }
+    if (this.getdataListParm.parammaps.departmentId == undefined) { this.getdataListParm.parammaps.departmentId = '' }
+
+        // 对于多选的牧场,根据数组的名称来转换 pastureArr =》 pastureId TODO:
+      if (this.getdataListParm.parammaps.pastureArr && this.getdataListParm.parammaps.pastureArr.length > 0) {
+        const arr = this.findAllPasture.filter((item) => {
+          if (this.getdataListParm.parammaps.pastureArr.includes(item.name)) {
+            return item
+          }
+        })
+        const ids = arr.map((child) => { return child.id })
+        this.getdataListParm.parammaps.pastureId = ids.toString();
+      }
+      const obj = JSON.parse(JSON.stringify(this.getdataListParm.parammaps));
+
+      delete obj.pastureArr
+      delete obj.endTime
+      delete obj.startTime
+      getBigData(obj).then(response => {
+        console.log('table数据', response.data.list)
+        if (response.data.list !== null) {
+          this.list = response.data.list.map((child) => {
+            const status = this.statusMap.find(item => item.id == child.status);
+            console.log(status,'status')
+            child.status = status && status.value || ''
+            child.enable = child.enable == true ? '禁用' : '启用'
+            return child;
+          })
+          this.pageNum = 1
+          this.pageSize = response.data.pagecount
+        } else {
+          this.list = []
+        }
+        this.total = response.data.count
+        this.listLoading = false;
+        // setTimeout(() => {
+        //   this.listLoading = false
+        // }, 100)
+
+      })
+    },
+    changePastureName(item) {
+      this.getDepartParam.parammaps.pastureId = this.getdataListParm.parammaps.pastureId
+      this.getdataListParm.parammaps.departmentId = ''
+      this.getDepartDownList()
+    },
+    handleSelectionChange(item) {
+      this.selectionList = item
+    },
+    form_search() {
+      if (this.getdataListParm.parammaps.inputDatetime == null) {
+        this.getdataListParm.parammaps.inputDatetime = ''
+        this.getdataListParm.parammaps.startTime = ''
+        this.getdataListParm.parammaps.endTime = ''
+      } else {
+        this.getdataListParm.parammaps.startTime = this.getdataListParm.parammaps.inputDatetime[0]
+        this.getdataListParm.parammaps.endTime = this.getdataListParm.parammaps.inputDatetime[1]
+      }
+      this.getdataListParm.offset = 1
+      this.get_table_data()
+    },
+    form_see(row){
+      this.see.temp = Object.assign({}, row) // copy obj
+      this.dialogStatus = 'see'
+      this.dialogFormVisible = true
+      this.activeName = 'first'
+    },
+    form_delete(row){
+      MessageBox.confirm('确认删除此信息?', {
+        confirmButtonText: '确认',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(() => {
+        let url = 'authdata/stock/del'
+        let data = {
+          id:[row.id]
+        }
+        postJson(url,data).then(response => {
+          if (response.msg !== 'fail') {
+            this.$notify({ title: '成功', message: '删除成功', type: 'success', duration: 2000 })
+            this.get_table_data()
+          } else {
+            this.$notify({ title: '失败', message: response.data, type: 'warning', duration: 2000 })
+          }
+        })
+      })
+    },
+    handleDelete(){
+      if(this.selectionList.length == 0){
+        this.$message({ type: 'error', message: '请选择要删除的信息!', duration: 2000 })
+        return false
+      }
+      let array = []
+      this.selectionList.forEach((item)=>{
+        array.push(item.id)
+      })
+      let str = '确认删除选择的'+ array.length+ '条信息?'
+      MessageBox.confirm(str, {
+        confirmButtonText: '确认',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(() => {
+        let url = 'authdata/stock/del'
+        let data = {
+          id:array
+        }
+        postJson(url,data).then(response => {
+          if (response.msg !== 'fail') {
+            this.$notify({ title: '成功', message: '删除成功', type: 'success', duration: 2000 })
+            this.get_table_data()
+          } else {
+            this.$notify({ title: '失败', message: response.data, type: 'warning', duration: 2000 })
+          }
+        })
+      })
+    },
+
+// 处理每一行数据,生成与表头对应的字段
+processData(downLoadList, filterVal, tHeader) {
+    return downLoadList.map(item => {
+        let row = {};
+        // 遍历 filterVal,根据顺序提取相应字段的值
+        filterVal.forEach((key, index) => {
+            // 如果是 1 到 31 天的数据,处理工作时长和加油量
+            if (key.includes('时长')) {
+                // 对应工作时长
+                const dayIndex = parseInt(key.split('(')[0]) - 1; // 获取天数索引
+                row[key] = item.hours[dayIndex] || '0'; // 如果没有数据则默认为0
+            } else if (key.includes('加油量')) {
+                // 对应加油量
+                const dayIndex = parseInt(key.split('(')[0]) - 1; // 获取天数索引
+                row[key] = item.diesel[dayIndex] || '0'; // 如果没有数据则默认为0
+            } else {
+                // 其他字段直接赋值
+                row[key] = item[key] || ''; // 如果没有数据则默认为空
+            }
+        });
+        return row;
+    });
+},
+
+    handleDownload() {
+      this.$alert('设备大数据正在导出中,请勿刷新或离开本页面,若导出时间过长,建议缩小导出数据范围重新导出', {})
+      this.isPercentage = true
+      this.percentage = 1
+      var timer = setInterval(() => {
+        this.percentage += 5
+        if (this.percentage > 95) {
+          this.percentage = 99
+          clearInterval(timer)
+        }
+        this.percentage = this.percentage
+      }, 1000)
+      if (this.getdataListParm.parammaps.inputDatetime == '' || this.getdataListParm.parammaps.inputDatetime == null) {
+        this.getdataListParm.parammaps.inputDatetime = ''
+        const currentYear = new Date().getFullYear();
+        this.getdataListParm.parammaps.startTime = `${currentYear}-01-01`;
+        this.getdataListParm.parammaps.endTime = `${currentYear}-12-31`;
+      } else {
+        this.getdataListParm.parammaps.startTime = parseTime(this.getdataListParm.parammaps.inputDatetime,'{y}-{m}')+'-01'
+        const year = new Date(this.getdataListParm.parammaps.inputDatetime).getFullYear();
+        const month = new Date(this.getdataListParm.parammaps.inputDatetime).getMonth() + 1; // 月份从0开始
+        const lastDay = new Date(year, month, 0).getDate(); // 获取当前月份的最后一天
+        this.getdataListParm.parammaps.endTime = parseTime(this.getdataListParm.parammaps.inputDatetime,'{y}-{m}') + '-' + lastDay;
+      }
+      if( this.getdataListParm.parammaps.departmentId == undefined){ this.getdataListParm.parammaps.departmentId = ''}
+
+       // 对于多选的牧场,根据数组的名称来转换 pastureArr =》 pastureId TODO:
+      if (this.getdataListParm.parammaps.pastureArr && this.getdataListParm.parammaps.pastureArr.length > 0) {
+        const arr = this.findAllPasture.filter((item) => {
+          if (this.getdataListParm.parammaps.pastureArr.includes(item.name)) {
+            return item
+          }
+        })
+        const ids = arr.map((child) => { return child.id })
+        this.getdataListParm.parammaps.pastureId = ids.toString();
+      }
+      this.getdataListParm.parammaps.pagecount = 999999;
+      const obj = JSON.parse(JSON.stringify(this.getdataListParm.parammaps));
+      // obj.parammaps.pagecount = 999999;
+      delete obj.pastureArr
+      getDownLoadData(obj).then(response => {
+        var downLoadList = response.data.list.map((child) => {
+          const status = this.statusMap.find(item => item.id == child.status);
+          child.status = status && status.value;
+          child.enable = child.enable == true ? '禁用' : '启用'
+          return child
+        })
+        this.percentage = 99;
+          setTimeout(() => {
+            this.isPercentage = false;
+            this.getdataListParm.parammaps.pagecount = 50;
+        }, 2000);
+
+
+        const days = downLoadList.length > 0 && downLoadList[0].day || [];
+        let filterVal = []
+        const filterVal0 = ['date', 'pastureName', 'eqClassName','eqName', 'eqCode', 'specification', 'brandName', 'status', 'purpose', 'purchaseDate', 'financeCode', 'yuanzhi', 'salvage', 'upkeepgrade', 'yearUpkeepCost', 'yearMaintainCost', 'departmentName', 'employeName', 'license', 'duration', 'work',
+           'cardCode', 'cardType', 'enable'];
+        filterVal = [...filterVal0];
+
+        // 添加每一天的 hours 和 diesel 数据
+        days.forEach(day => {
+          filterVal.push(`${day}(时长)`); // 添加对应的 hours
+        });
+        days.forEach(day => {
+          filterVal.push(`${day}(加油量)`); // 添加对应的 diesel
+        });
+
+
+
+
+        const table = this.$refs.table;
+
+
+          const labels = ['日期', '牧场', '设备类别','设备名称', '设备内部编号', '设备规格', '品牌', '状态', '用途', '购置日期', '财务编号','原值', '残值', '保养级别', '保养费用', '维修费用', '部门', '责任人', '物联网编码', '标准工作时长', '工作类别',
+          '油卡号','油卡类型','油卡状态'
+        ];
+        const tHeader = [...labels, ...days.map(d => `${d}(时长)`), ...days.map(d => `${d}(加油量)`)];
+
+        const processedData = this.processData(downLoadList, filterVal, tHeader);
+
+        const elecExcelDatas = [
+          {
+            tHeader: tHeader,
+            filterVal: filterVal,
+            tableDatas: processedData,
+            sheetName: '设备大数据',
+            autowidth: true
+          }
+        ];
+        console.log(elecExcelDatas, 'elecExcelDatas')
+        json2excel(elecExcelDatas, '设备大数据', false, 'xlsx')
+     })
+    },
+
+    handleImportExcelSuccess(res, file) {
+      if (res.msg === 'ok') {
+        this.$message({ title: '成功', message: '导入成功:' + res.data.success + '条!', type: 'success', duration: 2000 })
+        if (res.data.err_count > 0) {
+          this.$notify({ title: '失败', message: '导入失败:' + res.data.err_count + '条!', type: 'danger', duration: 2000 })
+          import('@/vendor/Export2Excel').then(excel => {
+            const list1 = res.data.result
+            const tHeader = [
+              '牧场','部门', '资产编号', '资产名称', '设备内部编号', '实物入账日期', '计量单位', '规格', '资产数量', '资产原值', '实际盘点数', '盈亏量', '有无标签', '备注','报错信息'
+            ]
+            const filterVal = [
+              '牧场','部门', '资产编号', '资产名称', '设备内部编号', '实物入账日期', '计量单位', '规格', '资产数量', '资产原值', '实际盘点数', '盈亏量', '有无标签', '备注','error_msg'
+            ]
+            const data1 = this.formatJson(filterVal, list1)
+            excel.export_json_to_excel({
+              header: tHeader,
+              data: data1,
+              filename: '资产盘点模板报错信息',
+              autoWidth: true,
+              bookType: 'xlsx'
+            })
+          })
+        }
+      } else {
+        this.$notify({ title: '失败', message: '上传失败', type: 'danger', duration: 2000 })
+      }
+    },
+    formatJson(filterVal, jsonData) {
+      return jsonData.map(v =>
+        filterVal.map(j => {
+          if (j === 'timestamp') {
+            return parseTime(v[j])
+          } else {
+            return v[j]
+          }
+        })
+      )
+    },
+    formatJsonTemp(filterVal, jsonData) {
+      return jsonData.map(v =>
+        filterVal.map(j => {
+          if (j === 'timestamp') { return parseTime(v[j])  } else { return v[j] } })
+      )
+    },
+  }
+}
+</script>
+<style lang="scss" scoped>
+  .el-autocomplete-suggestion li{
+    padding:0 3px!important;
+  }
+  .el-table .warning-row {
+      background: oldlace;
+  }
+  .el-table .success-row {
+      background: #f0f9eb;
+  }
+
+  .select_up {
+    padding: 0 12px;
+    font-size: 14px;
+    position: absolute;
+    z-index: 99999;
+    background-color: white;
+    top: 0px;
+    width: 100%;
+    border-radius: 5px 5px 0 0;
+
+    ::v-deep .el-button {
+        color: #bcbcbc;
+        font-size: 14px;
+
+        i {
+            font-size: 14px;
+        }
+    }
+
+    ::v-deep .el-button:hover {
+        color: #409EFF;
+    }
+
+        .el-button+.el-button {
+            margin-left: 6px;
+        }
+    }
+
+    .select_list {
+        margin-top: 25px;
+    }
+</style>

+ 1 - 1
src/views/basic/assetStandardManagement/index.vue

@@ -99,7 +99,7 @@ import Pagination from '@/components/Pagination'
 import { MessageBox } from 'element-ui'
 import TreeSelect from '@/components/TreeSelect'
 export default {
-  name: 'AssetStandardManagement',
+  // name: 'AssetStandardManagement',
   components: { Pagination, TreeSelect },
   data() {
     return {

+ 7 - 1
src/views/console/user/index.vue

@@ -7,6 +7,7 @@
           placeholder="牧场"
           style="width:120px"
           class="filter-item"
+          @change="changePastureName"
         >
           <el-option
             v-for="item in findAllPasture"
@@ -244,7 +245,7 @@ export default {
       ],
       getdataListParm: {
         name: 'getuserallL', offset: 1, pagecount: 50, returntype: 'Map',
-        parammaps: { pastureId: Cookies.get('pastureid'), empCode: '', empname: '' }
+        parammaps: { pastureId: Cookies.get('pastureid'), empCode: '', empname: '', }
       },
       updateParam: {
         name: 'getMaintenanceTypeByUser', offset: 1, pagecount: 0, returntype: 'list',
@@ -277,6 +278,11 @@ export default {
     this.get_table_data()
   },
   methods: {
+     changePastureName(item) {
+      this.getdataListParm.parammaps.pastureId = this.findAllPasture.find(
+        (obj) => obj.name == item
+      ).id
+    },
     tableSort(column) {
       sortChange(column, this.list)
     },

+ 2 - 1
src/views/cost/diesel/index.vue

@@ -573,7 +573,7 @@ export default {
         parammaps: {
           startTime: startTime,
           endTime: endTime,
-          pastureName: this.pastureName.toString(),
+          pastureName: this.getdataListParm.parammaps.pastureName || Cookies.get('pasturename'),
         },
       }
       GetReportform(datas).then(response => {
@@ -1028,6 +1028,7 @@ export default {
     },
     changePastureName(item) {
       this.getDepartParam.parammaps.pastureId = this.findAllPasture.find(obj => obj.name == item).id
+      this.getdataListParm.parammaps.pastureName = item
       this.getdataListParm.parammaps.deptName = ''
       this.getDepartDownList()
     },

+ 2 - 0
src/views/cost/elec/index.vue

@@ -990,6 +990,8 @@ export default {
     changePastureName(item) {
       this.getDepartParam.parammaps.pastureId = this.findAllPasture.find(obj => obj.name == item).id
       this.getdataListParm.parammaps.departName = ''
+      // this.getdataListParm.parammaps.pastureName = item
+      this.getdataListParm.parammaps.pastureName = item
       this.getDepartDownList()
     },
     form_search() {

+ 1 - 0
src/views/cost/water/index.vue

@@ -1005,6 +1005,7 @@ export default {
     changePastureName(item) {
       this.getDepartParam.parammaps.pastureId = this.findAllPasture.find(obj => obj.name == item).id
       this.getdataListParm.parammaps.departName = ''
+          this.getdataListParm.parammaps.pastureName = item
       this.getDepartDownList()
     },
     form_search() {

+ 2 - 1
src/views/custom/basic/index.vue

@@ -39,7 +39,8 @@
           />
           <el-button v-waves class="filter-item" type="primary" icon="el-icon-search" @click="form_search">搜索</el-button>
           <div>
-            <el-button v-if="isBasicAdd" class="filter-item" type="primary" icon="el-icon-edit" @click="form_add">新增</el-button>
+
+            <!-- <el-button v-if="isBasicAdd" class="filter-item" type="primary" icon="el-icon-edit" @click="form_add">新增</el-button> -->
             <el-button v-if="isBasicTemplate" v-waves class="filter-item" type="info" icon="el-icon-tickets" @click="handleDownloadTemp">模板</el-button>
             <el-button v-if="isDisable" v-waves class="filter-item" type="danger" icon="el-icon-remove-outline"  @click="handleBatchDisable">批量禁用</el-button>
             <el-button v-if="isEnable" v-waves class="filter-item" type="danger" icon="el-icon-success"  @click="handleBatchEnable">批量启用</el-button>

+ 14 - 5
src/views/custom/purchase/index.vue

@@ -1020,12 +1020,18 @@
                 <span v-else-if="scope.row.purchase_type == 4">奶厅申购</span>
                 <span v-else>新增申购</span>
               </template>
+            </el-table-column>
+              <el-table-column label="申购牧场" min-width="110px" align="center">
+              <template slot-scope="scope">
+                <span>{{ scope.row.chiIdPastureName }}</span>
+              </template>
             </el-table-column>
             <el-table-column label="申购部门" min-width="110px" align="center">
               <template slot-scope="scope">
                 <span>{{ scope.row.departmentName }}</span>
               </template>
             </el-table-column>
+
             <el-table-column label="采购人" min-width="110px" align="center">
               <template slot-scope="scope">
                 <span>{{ scope.row.empname }}</span>
@@ -2434,7 +2440,8 @@ export default {
                   'srcpath': i.srcpath,
                   'picpath': i.picpath,
                   'departmentName': i.departmentName,
-                  'isParity': y
+                  'isParity': y,
+                  'chiIdPastureId': i.chiIdPastureId
                 })
               }
             })
@@ -2499,7 +2506,7 @@ export default {
     confirmationSheet() {
       console.log('点击立确认配单')
       this.temp1.matchCode = ''
-      console.log(this.list1) // table表格数据
+      console.log(this.list1,'0000000') // table表格数据
       // -------------------------------------------
       function groupBy1(array, f) {
         var groups1 = {}
@@ -2602,7 +2609,8 @@ export default {
             providerId: ai.providerId,
             providerName: ai.providerName,
             purpose: ai.purpose,
-            list: [ai]
+            list: [ai],
+            chiIdPastureId: ai.chiIdPastureId
           })
           providerNameMap[ai.providerName] = ai
           providerNameMap[ai.providerId] = ai
@@ -2658,7 +2666,7 @@ export default {
         })
         this.$forceUpdate()
       })
-      console.log(OrderNumberArray)
+      console.log(OrderNumberArray,'OrderNumberArray====')
       this.listConfirmationSheet = providerNameDest
       // console.log(JSON.stringify(this.listConfirmationSheet))
       console.log('根据供应商分类表格listConfirmationSheet', this.listConfirmationSheet)
@@ -2736,7 +2744,8 @@ export default {
               sumAmount: '@insertSpotList.sumAmount',
               contractId: '@insertSpotList.id',
               departmentName: '@insertSpotList.departmentName',
-              remark: '@insertSpotList.purpose'
+              remark: '@insertSpotList.purpose',
+              chiIdPastureId: '@insertSpotList.chiIdPastureId'
             }}
             a = a + 1
           })

+ 23 - 9
src/views/custom/subscribe/index.vue

@@ -2539,7 +2539,8 @@ import {
   ExecDataByConfig,
   checkButtons,
   failproccess,
-  GetAccount
+  GetAccount,
+  getPartsListSGList
 } from '@/api/common'
 import waves from '@/directive/waves' // waves directive
 import { parseTime, sortChange, json2excel } from '@/utils/index.js'
@@ -3376,19 +3377,32 @@ export default {
             this.createTemp.providerName
         }
       }
+
       this.requestSparePart.parammaps['partCode'] = queryString
       // this.createTemp.partCode = queryString
       this.$set(this.requestSparePart.parammaps, 'partCode', queryString)
       this.$set(this.requestSparePart.parammaps, 'pastureId', this.createTemp.pastureId )
       this.$set(this.createTemp, 'partCode', queryString)
-      GetDataByName(this.requestSparePart).then((response) => {
-        console.log('备件模糊查询搜索data', response.data.list)
-        if (response.data.list == null) {
-          cb([])
-        } else {
-          cb(response.data.list)
-        }
-      })
+      if (this.requestSparePart.name == 'getPartsListSG') {
+        getPartsListSGList(this.requestSparePart).then((response) => {
+          console.log('111', response.data.list)
+          if (response.data.list == null) {
+            cb([])
+          } else {
+            cb(response.data.list)
+          }
+        })
+      } else {
+        GetDataByName(this.requestSparePart).then((response) => {
+          console.log('备件模糊查询搜索data', response.data.list)
+          if (response.data.list == null) {
+            cb([])
+          } else {
+            cb(response.data.list)
+          }
+        })
+      }
+
     },
     brandSearch(queryString, cb) {
       console.log('品牌模糊查询输入值', queryString)

+ 56 - 12
src/views/maintenance/repair/index.vue

@@ -336,7 +336,16 @@
                 <span  >
                   <el-input v-model="scope.row.contractCode" style="margin-top:10px" />
                 </span>
-
+              </template>
+            </el-table-column>
+             <el-table-column :key="9" label="铅封号" prop="sealNumber" align="center" min-width="80px">
+              <template slot-scope="scope">
+                   <el-input v-model="scope.row.sealNumber" style="margin-top:10px" />
+              </template>
+            </el-table-column>
+            <el-table-column  :key="10"  label="历史铅封号" prop="sealNumberHis" align="center" min-width="80px">
+              <template slot-scope="scope">
+                <span >{{ scope.row.sealNumberHis }}</span>
               </template>
             </el-table-column>
             <el-table-column :key="7" label="备注" prop="remark" align="center" min-width="80px">
@@ -425,8 +434,8 @@
               </el-form-item> -->
                <!-- 这里PC和APP都需要等后端接口出来,是选了设备后带出故障内容。T T -->
               <el-form-item label="故障情况:" prop="details">
-                <el-select v-model="createTemp.details" multiple placeholder="故障情况" filterable class="filter-item" style="width:100%" @change="changeDetails">
-                  <el-option v-for="item in  DetailList" :key="item.describe" :label="item.describe" :value="item.describe" />
+                <el-select v-model="createTemp.details"  placeholder="故障情况" filterable class="filter-item" style="width:100%" @change="changeDetails">
+                  <el-option v-for="item in  DetailList" :key="item.id" :label="item.describe" :value="item.describe" />
                 </el-select>
 
               </el-form-item>
@@ -1732,6 +1741,16 @@ export default {
           pastureId: Cookies.get('pastureid')
         }
       },
+      requestEqName2: {
+        name: 'getOutsourceEqbyNameCode',
+        page: 1,
+        offset: 1,
+        pagecount: '',
+        returntype: 'Map',
+        parammaps: {
+          pastureId: Cookies.get('pastureid')
+        }
+      },
       getdataListParmDetail: {
         name: 'getFaultdescription',
         parammaps: {   eqClassId: '',  }
@@ -2431,7 +2450,7 @@ export default {
 
     add_dialog_save_cont() {
       this.isokDisable = true
-      console.log(this.createTempCont, '点击保存ss')
+      console.log(this.createTempCont,this.listAddCont, '点击保存ss')
       setTimeout(() => {
         this.isokDisable = false
       }, 1000)
@@ -2537,6 +2556,14 @@ export default {
         // ========================
         for (var j = 0; j < this.listAddCont.length; j++) {
           console.log(this.listAddCont[j].amount)
+          if(this.listAddCont[j].sealNumber == ''){
+            this.$message({ type: 'warning', message: '铅封号不能为空', duration: 2000 })
+            return false
+          }
+          if( !/^\d+$/.test(this.listAddCont[j].sealNumber)){
+            this.$message({ type: 'warning', message: '铅封号格式不对', duration: 2000 })
+            return false
+          }
           if (this.listAddCont[j].amount == null || this.listAddCont[j].amount === '') {
             // this.$message({ type: 'warning', message: '请检查金额是否未填写', duration: 2000 })
             // return false
@@ -2617,7 +2644,9 @@ export default {
                       "providerName": "@insertSpotList.providerName",
                       "contractCode": "@insertSpotList.contractCode",
                       "remark": "@insertSpotList.remark",
-                      "status":this.createTempCont.status
+                      "status":this.createTempCont.status,
+                      "sealNumber": "@insertSpotList.sealNumber",
+                      "sealNumberHis" : "@insertSpotList.sealNumberHis"
                       }
                   }
               ]
@@ -2774,17 +2803,28 @@ export default {
       console.log(this.createTempCont.description,'====')
       this.reset_create_cont()
       // 初始化填型号+输出号
-      this.listAddCont = [{providerName:"",providerId: "0",eqId: row.eqId,contractId: "0",amount:"",contractCode:"",date:"",eqCode:row.eqCode, eqName:row.eqName, remark:"",typea:"",}]
+      this.listAddCont = [{providerName:"",providerId: "0",eqId: row.eqId,contractId: "0",amount:"",contractCode:"",date:"",eqCode:row.eqCode, eqName:row.eqName,sealNumberHis:'', remark:"",typea:"",sealNumber:''}]
 
       this.getDepartParam2.parammaps.pastureId = this.createTempCont.pastureId
       this.get_depart_list2()
       this.createTempCont.RUCode = row.repairCode
-      this.dialogFormVisibleCont = true
-      this.listLoading = false
+
+     // 获取设备编号的下拉列表
+      this.requestEqName2.parammaps['eqCode'] = row.eqCode;
+      GetDataByName(this.requestEqName2).then(response => {
+        this.EqNameList = response.data.list
+        console.log(this.EqNameList ,'this.EqNameList ')
+        this.listAddCont[0].sealNumberHis = this.EqNameList[0].sealNumberHis;
+
+        this.dialogFormVisibleCont = true
+        this.listLoading = false
+      })
       this.$nextTick(() => {
         this.$refs['createTempCont'].clearValidate()
       })
 
+
+
        //新增生成单号
       this.get_create_num()
     },
@@ -2958,6 +2998,7 @@ export default {
       console.log('备件名称/设备内部编号模糊查询选中值', item)
       this.$set(this.createTemp, 'eqCode', item.eqCode)
       this.$set(this.createTemp, 'eqId', item.eqId)
+      // this.$set(this.createTemp, 'sealNumberHis', item.sealNumberHis)
       this.$set(this.createTemp, 'eqClassId', item.eqClassId)
       this.$set(this.createTemp, 'pickId', '')
       if (item.deptName !== undefined && item.departmentId !== undefined) {
@@ -2996,6 +3037,7 @@ export default {
       this.$set(this.createTemp, 'eqId', item.eqId)
       this.$set(this.createTemp, 'eqClassId', item.eqClassId)
       this.$set(this.createTemp, 'pickId', '')
+      this.$set(this.createTemp, 'sealNumberHis', item.sealNumberHis)
       if (item.deptName !== undefined && item.departmentId !== undefined) {
         this.$set(this.createTemp, 'deptName', item.deptName)
         this.$set(this.createTemp, 'departmentId', item.departmentId)
@@ -3495,8 +3537,8 @@ export default {
 
     querySearchEqNameCont(queryString, cb) {
       console.log('备件名称/设备内部编号模糊查询输入值', queryString)
-      this.requestEqName.parammaps['eqName'] = queryString
-      GetDataByName(this.requestEqName).then(response => {
+      this.requestEqName2.parammaps['eqName'] = queryString
+      GetDataByName(this.requestEqName2).then(response => {
         console.log('备件名称模糊查询搜索data', response.data.list)
         this.EqNameList = response.data.list
         cb(this.EqNameList)
@@ -3506,12 +3548,13 @@ export default {
       console.log('备件名称/设备内部编号模糊查询选中值', item.eqName)
       console.log('备件名称/设备内部编号模糊查询选中值所在行', row)
       this.$set(row, 'eqCode', item.eqCode)
+      this.$set(row, 'sealNumberHis', item.sealNumberHis)
       this.$forceUpdate()
     },
     querySearchCodeCont(queryString, cb) {
       console.log('备件名称/设备内部编号模糊查询输入值', queryString)
-      this.requestEqName.parammaps['eqCode'] = queryString
-      GetDataByName(this.requestEqName).then(response => {
+      this.requestEqName2.parammaps['eqCode'] = queryString
+      GetDataByName(this.requestEqName2).then(response => {
         console.log('备件名称模糊查询搜索data', response.data.list)
         this.EqNameList = response.data.list
         cb(this.EqNameList)
@@ -3521,6 +3564,7 @@ export default {
       console.log('备件名称/设备内部编号模糊查询选中值', item)
       console.log('备件名称/设备内部编号模糊查询选中值所在行', row)
       this.$set(row, 'eqName', item.eqName)
+      this.$set(row, 'sealNumberHis', item.sealNumberHis)
       this.$forceUpdate()
     },
     blurSelectEqNameCont(item, row) {

+ 92 - 17
src/views/maintenance/subcontractingMainten/tabPage/tab1.vue

@@ -52,6 +52,8 @@
       <el-button  class="filter-item" type="primary" icon="el-icon-search" @click="form_search">搜索</el-button>
 
       <el-button v-if="istab1Add" class="filter-item" type="primary" icon="el-icon-edit" @click="form_add">新增</el-button>
+      <!-- isRepairExport
+      <el-button class="filter-item" type="success" icon="el-icon-download" style="" @click="handleDownload">导出</el-button> -->
 
 
 
@@ -306,6 +308,19 @@
                 <span v-if="dialogStatus ==='see'">{{ scope.row.contractCode }}</span>
               </template>
             </el-table-column>
+            <el-table-column   :key="9"  label="铅封号" prop="sealNumber" align="center" min-width="80px">
+              <template slot-scope="scope">
+                <span v-if="dialogStatus ==='create'||dialogStatus ==='update'">
+                  <el-input v-model="scope.row.sealNumber" style="margin-top:10px" />
+                </span>
+                <span v-if="dialogStatus ==='see'">{{ scope.row.sealNumber }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column :key="10"  label="历史铅封号" prop="sealNumberHis" align="center" min-width="80px">
+              <template slot-scope="scope">
+                <span>{{ scope.row.sealNumberHis }}</span>
+              </template>
+            </el-table-column>
             <el-table-column :key="8" label="备注" prop="remark" align="center" min-width="180px">
               <template slot-scope="scope">
                 <span v-if="dialogStatus ==='create'||dialogStatus ==='update'">
@@ -392,9 +407,9 @@
 <script>
 import echarts from 'echarts'
 require('echarts/theme/macarons')
-import { GetDataByNames, GetReportform, GetDataByName, PostDataByName, checkButtons, ExecDataByConfig} from '@/api/common'
+import { GetDataByNames, GetReportform, GetDataByName,GetAccount, PostDataByName, checkButtons, ExecDataByConfig} from '@/api/common'
 import Cookies from 'js-cookie'
-import { parseTime, json2excel } from '@/utils/index.js'
+import { parseTime, json2excel ,sortChange} from '@/utils/index.js'
 import { MessageBox } from 'element-ui'
 import Pagination from '@/components/Pagination'
 export default {
@@ -404,6 +419,9 @@ export default {
   data() {
     return {
       // todo
+      isRepairExport: [],
+      isPercentage: false,
+      percentage: 0,
       findAllPasture:[],
       rejectList: [{ id: '0', name: '正常' }, { id: '1', name: '已关单' }],  // TODO: 已关单状态
       myHeight:document.documentElement.clientHeight - 85- 200,
@@ -453,7 +471,16 @@ export default {
 
         ]
       },
-
+      requestEqName2: {
+        name: 'getOutsourceEqbyNameCode',
+        page: 1,
+        offset: 1,
+        pagecount: '',
+        returntype: 'Map',
+        parammaps: {
+          pastureId: Cookies.get('pastureid')
+        }
+      },
       getAddContListParam:  {
         name: "getOutsourcingList",
         page: 1,offset: 1,pagecount: 20,returntype: "Map",
@@ -531,7 +558,7 @@ export default {
       },
 
       listAddCont:[
-         {providerName:"",providerId: "0",eqId: "0",contractId: "0",}
+         {providerName:"",providerId: "0",eqId: "0",contractId: "0",sealNumber:"",sealNumberHis:""}
       ],
       activeList: [],
       active: 1,
@@ -595,15 +622,43 @@ export default {
     this.get_auto_buttons()
   },
   methods: {
-      // 删除
-    removeTag(type) {
 
-      if (type == 1) {
-        this.tableObj1.getdataListParm.parammaps.pastureArr = []
+    // 导出
+    handleDownload() {
+      this.$alert('正在导出中,请勿刷新或离开本页面,若导出时间过长,建议缩小导出数据范围重新导出', {})
+      this.isPercentage = true
+      this.percentage = 1
+      var timer = setInterval(() => {
+        this.percentage += 5
+        if (this.percentage > 95) {
+          this.percentage = 99
+          clearInterval(timer)
+        }
+        this.percentage = this.percentage
+      }, 1000)
+      this.downLoadParm = {}
+      this.downLoadParm.name = 'loadRepirsList'
+      this.downLoadParm.offset = 0
+      this.downLoadParm.page = 1
+      this.downLoadParm.returntype = 'Map'
+       if (this.$refs['inputDatetime'] !== undefined && this.$refs['inputDatetime'].value !== null) {
+       this.tableObj1.getdataListParm.parammaps.startTime = this.$refs['inputDatetime'].value[0]
+       this.tableObj1.getdataListParm.parammaps.stopTime = this.$refs['inputDatetime'].value[1]
       } else {
-        this.tableObj1.getdataListParm2.parammaps.pastureArr = []
+       this.tableObj1.getdataListParm.parammaps.startTime = ''
+       this.tableObj1.getdataListParm.parammaps.stopTime = ''
       }
+      this.downLoadParm.parammaps =this.tableObj1.getdataListParm.parammaps
+      GetAccount(this.downLoadParm).then(response => {
+        console.log('导出', response)
+      })
+    },
+
+   // 删除
+    removeTag() {
+       this.tableObj1.getdataListParm.parammaps.pastureArr = []
     },
+
     // 全选
     selectAll(val) {
       val = []
@@ -681,12 +736,17 @@ export default {
       const istab1Shenhe4 = checkButtons(this.$store.state.user.buttons, 'maintenance:subcontractingMainten:shenhe4')
       this.istab1Shenhe4 = istab1Shenhe4
 
+      // 导出
+      const RejectExport = 'maintenance:subcontractingMainten::rejectExport'
+      const isRepairExport = checkButtons(this.$store.state.user.buttons, RejectExport)
+      this.isRepairExport = isRepairExport
+
     },
 
     querySearchEqNameCont(queryString, cb) {
       console.log('备件名称/设备内部编号模糊查询输入值', queryString)
-      this.requestEqName.parammaps['eqName'] = queryString
-      GetDataByName(this.requestEqName).then(response => {
+      this.requestEqName2.parammaps['eqName'] = queryString
+      GetDataByName(this.requestEqName2).then(response => {
         console.log('备件名称模糊查询搜索data', response.data.list)
         this.EqNameList = response.data.list
         cb(this.EqNameList)
@@ -696,12 +756,13 @@ export default {
       console.log('备件名称/设备内部编号模糊查询选中值', item.eqName)
       console.log('备件名称/设备内部编号模糊查询选中值所在行', row)
       this.$set(row, 'eqCode', item.eqCode)
+       this.$set(row, 'sealNumberHis', item.sealNumberHis)
       this.$forceUpdate()
     },
     querySearchCodeCont(queryString, cb) {
       console.log('备件名称/设备内部编号模糊查询输入值', queryString)
-      this.requestEqName.parammaps['eqCode'] = queryString
-      GetDataByName(this.requestEqName).then(response => {
+      this.requestEqName2.parammaps['eqCode'] = queryString
+      GetDataByName(this.requestEqName2).then(response => {
         console.log('备件名称模糊查询搜索data', response.data.list)
         this.EqNameList = response.data.list
         cb(this.EqNameList)
@@ -711,6 +772,7 @@ export default {
       console.log('备件名称/设备内部编号模糊查询选中值', item)
       console.log('备件名称/设备内部编号模糊查询选中值所在行', row)
       this.$set(row, 'eqName', item.eqName)
+      this.$set(row, 'sealNumberHis', item.sealNumberHis)
       this.$forceUpdate()
     },
     blurSelectEqNameCont(item, row) {
@@ -873,7 +935,7 @@ export default {
 
 
 
-      this.listAddCont = [{providerName:"",providerId: "0",eqId: "0",contractId: "0",amount:"",contractCode:"",date:"",eqCode:"",eqName:"",remark:"",typea:"",}]
+      this.listAddCont = [{providerName:"",providerId: "0",eqId: "0",contractId: "0",amount:"",contractCode:"",date:"",eqCode:"",eqName:"",remark:"",typea:"",sealNumber:"",sealNumberHis:""}]
 
     },
 
@@ -888,13 +950,14 @@ export default {
     },
 
     add_dialog_save() {
+       console.log(this.listAddCont,'000')
       this.isokDisable = true
       setTimeout(() => {
         this.isokDisable = false
       }, 1000)
       this.$refs['createTemp'].validate(valid => {
         if (valid) {
-          console.log(this.listAddCont)
+
           if (this.createTemp.outsourcingCode == '' || this.createTemp.outsourcingCode == null || this.createTemp.outsourcingCode == undefined) {
             GetDataByName(this.getParmCreateNumber2).then(response => {
               this.$nextTick(() => {
@@ -914,7 +977,8 @@ export default {
 
     add_dialog_saveSave() {
 
-        for (var j = 0; j < this.listAddCont.length; j++) {
+      for (var j = 0; j < this.listAddCont.length; j++) {
+          console.log(this.listAddCont,'')
           console.log(this.listAddCont[j].amount)
           if(this.createTemp.contract == 1){
             if(this.listAddCont[j].providerName == ''){
@@ -922,6 +986,15 @@ export default {
               return false
             }
           }
+          if(this.listAddCont[j].sealNumber == ''){
+            this.$message({ type: 'warning', message: '铅封号不能为空', duration: 2000 })
+            return false
+          }
+          if( !/^\d+$/.test(this.listAddCont[j].sealNumber)){
+            this.$message({ type: 'warning', message: '铅封号格式不对', duration: 2000 })
+            return false
+          }
+
           if(this.listAddCont[j].eqName == ''){
             this.$message({ type: 'warning', message: '请检查设备名称是否未填写', duration: 2000 })
             return false
@@ -992,7 +1065,9 @@ export default {
                       "providerName": "@insertSpotList.providerName",
                       "contractCode": "@insertSpotList.contractCode",
                       "remark": "@insertSpotList.remark",
-                      "status":this.createTemp.status
+                      "status": this.createTemp.status,
+                       "sealNumber": "@insertSpotList.sealNumber",
+                      "sealNumberHis" : "@insertSpotList.sealNumberHis"
                       }
                   }
               ]

+ 135 - 16
src/views/maintenance/subcontractingMainten/tabPage/tab2.vue

@@ -46,6 +46,8 @@
 
 
       <el-button  class="filter-item" type="primary" icon="el-icon-search" @click="form_search">搜索</el-button>
+         <!-- isRepairExport -->
+      <el-button class="filter-item" type="success" icon="el-icon-download" style="" @click="handleDownload">导出</el-button>
 
       <!-- <el-button  v-if="istab2Add" class="filter-item" type="primary" icon="el-icon-edit" @click="form_add">新增</el-button> -->
 
@@ -257,11 +259,17 @@
             <el-table-column :render-header="addRedStar"  label="铅封号 " prop="sealNumber" align="center" min-width="80px">
               <template slot-scope="scope">
                 <span v-if="dialogStatus ==='create'||dialogStatus ==='update'">
-                  <el-input v-model="scope.row.sealNumber" style="margin-top:10px" />
+                  <!-- <el-input v-model="scope.row.sealNumber" style="margin-top:10px" /> -->
+                   {{ scope.row.sealNumber }}
                 </span>
                 <span v-if="dialogStatus ==='see'">{{ scope.row.sealNumber }}</span>
               </template>
             </el-table-column>
+            <el-table-column :key="10"  label="历史铅封号" prop="sealNumberHis" align="center" min-width="80px">
+              <template slot-scope="scope">
+                <span>{{ scope.row.sealNumberHis }}</span>
+              </template>
+            </el-table-column>
             <el-table-column   :render-header="addRedStar"  label="质保日期" prop="warrantydate" align="center" min-width="80px">
               <template slot-scope="scope">
                 <span v-if="dialogStatus ==='create'||dialogStatus ==='update'">
@@ -372,11 +380,8 @@
                 </template>
               </el-table-column>
 
+              <el-table-column label="领用状态" min-width="100px" align="center" :formatter="formatStatue"  prop="statue"/>
 
-
-
-
-              <el-table-column label="领用状态" min-width="100px" align="center" :formatter="statue" />
               <el-table-column label="操作" min-width="80px" align="center">
                 <template slot-scope="{row}">
                   <el-button type="primary" size="mini" @click="handleCollarUseSee(row)">查看</el-button>
@@ -731,9 +736,9 @@
 <script>
 import echarts from 'echarts'
 require('echarts/theme/macarons')
-import { GetDataByNames, GetReportform, GetDataByName, PostDataByName, checkButtons, ExecDataByConfig} from '@/api/common'
+import { GetDataByNames, GetReportform, GetDataByName, PostDataByName, checkButtons,GetAccount, getDownList,ExecDataByConfig} from '@/api/common'
 import Cookies from 'js-cookie'
-import { parseTime, json2excel } from '@/utils/index.js'
+import { parseTime, json2excel,sortChange } from '@/utils/index.js'
 import { MessageBox } from 'element-ui'
 import Pagination from '@/components/Pagination'
 export default {
@@ -742,6 +747,9 @@ export default {
   inject: ['reload'],
   data() {
     return {
+      isRepairExport: [],
+      isPercentage: false,
+      percentage: 0,
       findAllPasture:[],
       myHeight:document.documentElement.clientHeight - 85- 200,
       //多个下拉框 - 请求内容
@@ -983,14 +991,101 @@ export default {
 
   },
   methods: {
-       // 删除
-    removeTag(type) {
-      if (type == 1) {
-        this.tableObj1.getdataListParm.parammaps.pastureArr = []
+     formatStatue(row,column) {
+      if (row.statue == 0) {
+        return '未领用'
+      } else if (row.statue == 1) {
+        return '已领用'
       } else {
-        this.tableObj1.getdataListParm2.parammaps.pastureArr = []
+        return '已关闭'
       }
     },
+       // 导出
+    handleDownload() {
+      this.$alert('正在导出中,请勿刷新或离开本页面,若导出时间过长,建议缩小导出数据范围重新导出', {})
+      this.isPercentage = true
+      this.percentage = 1
+      var timer = setInterval(() => {
+        this.percentage += 5
+        if (this.percentage > 95) {
+          this.percentage = 99
+          clearInterval(timer)
+        }
+        this.percentage = this.percentage
+      }, 1000)
+      this.downLoadParm = {}
+      this.downLoadParm.name = 'getBigacceptanceExcelList'
+      this.downLoadParm.offset = 0
+      this.downLoadParm.page = 1
+      this.downLoadParm.returntype = 'Map'
+       if (this.$refs['inputDatetime'] !== undefined && this.$refs['inputDatetime'].value !== null) {
+       this.tableObj1.getdataListParm.parammaps.startTime = this.$refs['inputDatetime'].value[0]
+       this.tableObj1.getdataListParm.parammaps.stopTime = this.$refs['inputDatetime'].value[1]
+      } else {
+       this.tableObj1.getdataListParm.parammaps.startTime = ''
+       this.tableObj1.getdataListParm.parammaps.stopTime = ''
+      }
+      this.downLoadParm.parammaps =this.tableObj1.getdataListParm.parammaps
+      getDownList(this.downLoadParm).then(response => {
+        console.log('导出', response)
+           if(response.data.list !== null && response.data.list !== ''){
+          for(let i=0;i<response.data.list.length;i++){
+                  //  <span v-if="scope.row.iscontract == 0 ">有</span>
+            if (response.data.list[i].status == 0) {
+              this.$set(response.data.list[i], 'status', '未离厂')
+            } else if (response.data.list[i].status == 1) {
+              this.$set(response.data.list[i], 'status', '未回厂')
+            } else if (response.data.list[i].status == 2) {
+              this.$set(response.data.list[i], 'status', '已回厂')
+            } else {
+               this.$set(response.data.list[i], 'status', '已验收')
+            }
+
+            if (response.data.list[i].iscontract == 0) {
+              this.$set(response.data.list[i],'iscontract','有合同')
+            } else {
+              this.$set(response.data.list[i],'iscontract','无合同')
+            }
+
+            if (response.data.list[i].partCode) {
+              this.$set(response.data.list[i], 'amountStauts', response.data.list[i].amountStauts == 0 ? '未领用' : '已领用');
+            } else {
+              this.$set(response.data.list[i], 'amountStauts', '');
+            }
+
+          }
+        }else{
+          response.data.list = []
+        }
+        this.downLoadList = response.data.list
+        console.log(this.downLoadList)
+        if (response.data.list !== '') {
+          this.percentage = 99
+          setTimeout(() => {
+            this.isPercentage = false
+          }, 2000)
+        }
+          const elecExcelDatas = [
+          {
+              tHeader: ['委外验收单号', '牧场', '部门', '申请人', '有无合同', '审核状态', '离厂日期', '回厂日期',
+                '供应商', '设备名称', '设备内部编号', '费用类型', '铅封号', '历史铅封号', '质保日期', '领用单号', '领用部门', '领用日期', '领用状态',
+                '备件编号', '备件名称', '备件规格', '领用数量'],
+              filterVal: ['acceptanceCode', 'pastureName', 'departmentName', 'applicantName', 'iscontract', 'status', 'lcdate', 'hcdate',
+                'providerName', 'eqName', 'eqCode', 'typea', 'sealNumber', 'sealNumberHis', 'warrantydate', 'applyCode', 'bpDepartment', 'applyDate', 'amountStauts',
+                'partCode', 'partName', 'specification', 'amount'],
+            tableDatas: this.downLoadList,
+            sheetName: '验收委外维修'
+          }
+        ]
+        json2excel(elecExcelDatas, '验收委外维修', true, 'xlsx')
+
+      })
+    },
+
+       // 删除
+    removeTag() {
+       this.tableObj1.getdataListParm.parammaps.pastureArr = []
+    },
 
     // 全选
     selectAll(val) {
@@ -1253,6 +1348,7 @@ export default {
       GetDataByName(this.getCollarUseSeeParm).then(response => {
         this.listCreateCollectionSpareParts = response.data.list
 
+
       })
     },
 
@@ -1570,17 +1666,29 @@ export default {
       console.log('备件模糊查询选中值', item)
       if (this.listCreateCollectionSpareParts.length > 0) {
         // eslint-disable-next-line no-redeclare
+
+
         if (this.listCreateCollectionSpareParts.find(obj => obj.partId === item.partId)) {
           this.$message({ type: 'warning', message: '此备件已存在,请重新选择备件' })
         } else {
-
+           if (this.listAddCont.length > 0) {
+             this.$set(item, 'eqCode', this.listAddCont[0].eqCode)
+             this.$set(item, 'eqName', this.listAddCont[0].eqName)
+        }
           item.date = this.collectionSparePartsSeeTemp.applyDate
+          console.log(item,'001')
           this.listCreateCollectionSpareParts.unshift(item)
         }
       } else {
+         if (this.listAddCont.length > 0) {
+            this.$set(item, 'eqCode', this.listAddCont[0].eqCode)
+            this.$set(item, 'eqName', this.listAddCont[0].eqName)
+         }
         item.date = this.collectionSparePartsSeeTemp.applyDate
+          console.log(item,'002')
         this.listCreateCollectionSpareParts.unshift(item)
       }
+
     },
 
 
@@ -1732,9 +1840,20 @@ export default {
     getCollectionSpareParts() {
       this.getCollarUseListParm.parammaps.RUCode = this.createTemp.acceptanceCode
       GetDataByName(this.getCollarUseListParm).then(response => {
-        console.log('领用table数据', response.data.list)
-        this.listCollectionSpareParts = response.data.list
-      })
+
+        this.listCollectionSpareParts = response.data.list.map((item) => {
+          if (item.statue == 0) {
+            item.statusName = '未领用'
+          } else if (item.statue == 1) {
+            item.statusName = '已领用'
+          } else if (item.statue == 2) {
+            item.statusName = '关闭'
+          }
+          return item
+        })
+
+         console.log('领用table数据', this.listCollectionSpareParts )      })
+
     },
 
     // 新增删除

Alguns arquivos não foram mostrados porque muitos arquivos mudaram nesse diff