Browse Source

铅封号

Shan9312 4 months ago
parent
commit
75a92d6a76

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


File diff suppressed because it is too large
+ 0 - 0
dist/index.html


+ 11 - 11
src/router/index.js

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

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

@@ -0,0 +1,701 @@
+<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.assetCode"
+            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-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"
+      >
+        <!-- <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="assetCode" />
+       <el-table-column label="设备名称" align="center" prop="eqName" />
+        <el-table-column label="设备内部编号" align="center" prop="eqCode" />
+        <el-table-column label="状态" align="center" prop="rzdate" />
+        <el-table-column label="置换日期"   align="center" prop="unit" />
+        <el-table-column label="财务编号" align="center" prop="specification" />
+        <el-table-column label="部门" align="center" prop="departmentName" />
+        <el-table-column label="责任人" sortable align="center" prop="yuanzhi" />
+        <el-table-column label="物联网编码" sortable align="center" prop="count" />
+        <el-table-column label="标准工作时长" sortable align="center" prop="profit" />
+        <el-table-column label="油卡号" sortable align="center" prop="tag" />
+        <el-table-column label="油卡类型" sortable align="center" prop="importdate" />
+        <el-table-column label="油卡状态" sortable align="center" prop="inventorydate" />
+        <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.offset" :limit.sync="getdataListParm.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="8">
+                <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="8">
+                <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="8">
+                <el-form-item label="设备类别:" prop="departmentName">
+                 <el-input ref="departmentName" v-model="see.temp.departmentName" placeholder="部门" disabled />
+                </el-form-item>
+              </el-col>
+            </el-row>
+            <el-row>
+              <el-col :span="8">
+                <el-form-item label="设备内部编号:" prop="assetCode">
+                 <el-input ref="assetCode" v-model="see.temp.assetCode" placeholder="设备内部编号" disabled />
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="设备规格:" prop="eqName">
+                 <el-input ref="eqName" v-model="see.temp.eqName" placeholder="资产名称" disabled />
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="品牌:" prop="eqCode">
+                  <el-input ref="eqCode" v-model="see.temp.eqCode" placeholder="资产编号" disabled />
+                </el-form-item>
+              </el-col>
+
+            </el-row>
+            <el-row>
+              <el-col :span="8">
+
+                <el-form-item label="用途:" prop="unit">
+                  <el-input ref="unit" v-model="see.temp.unit" placeholder="计量单位" disabled />
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <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="8">
+                <el-form-item label="财务编号:" prop="quantity">
+                 <el-input ref="quantity" v-model="see.temp.quantity" placeholder="资产数量" disabled />
+                </el-form-item>
+              </el-col>
+            </el-row>
+            <el-row>
+              <el-col :span="8">
+                <el-form-item label="残值:" prop="count">
+                  <el-input ref="count" v-model="see.temp.count" placeholder="实际盘点数" disabled />
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="保养级别:" prop="profit">
+                 <el-input ref="profit" v-model="see.temp.profit" placeholder="盈亏量" disabled />
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="保养费用:" prop="tag">
+                 <el-input ref="tag" v-model="see.temp.tag" placeholder="有无标签" disabled />
+                </el-form-item>
+              </el-col>
+
+            </el-row>
+            <el-row>
+              <el-col :span="8">
+                <el-form-item label="责任人:" prop="inventorydate">
+                  <el-input ref="inventorydate" v-model="see.temp.inventorydate" placeholder="盘点时间" disabled />
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="物联网编码:" prop="checkTakerName">
+                 <el-input ref="checkTakerName" v-model="see.temp.checkTakerName" placeholder="盘点人" disabled />
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="标准工作时长:" prop="remark">
+                 <el-input ref="remark" v-model="see.temp.remark" placeholder="备注" disabled />
+                </el-form-item>
+              </el-col>
+            </el-row>
+            <el-row>
+              <el-col :span="8">
+                <el-form-item label="油卡号:" prop="inventorydate">
+                  <el-input ref="inventorydate" v-model="see.temp.inventorydate" placeholder="盘点时间" disabled />
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="油卡类型:" prop="checkTakerName">
+                 <el-input ref="checkTakerName" v-model="see.temp.checkTakerName" placeholder="盘点人" disabled />
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="油卡状态:" prop="remark">
+                 <el-input ref="remark" v-model="see.temp.remark" placeholder="备注" disabled />
+                </el-form-item>
+              </el-col>
+            </el-row>
+          </el-form>
+          </el-tab-pane>
+
+          <el-tab-pane label="记录" name="second">
+            <div style="margin-bottom: 40px;">
+            <el-date-picker
+              v-model="mountDate"
+              type="month"
+              value-format="yyyy-MM"
+              style="margin-bottom: 20px;"
+              placeholder="选择月">
+            </el-date-picker>
+
+             <el-table
+              key="tableRef"
+              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"
+           >
+            <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="工作时长/h" align="center" prop="assetCode" />
+            <el-table-column label="加油量/L" align="center" prop="eqName" />
+             </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 } 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 {
+      mountDate:'',
+      tableKey: 0,
+      list: [],
+      activeName: 'first',
+      getDictByName:[],
+      total: 0,
+      listLoading: true,
+      getdataListParm: {
+        name: 'getAssetList', page: 1, offset: 1, pagecount: 50, returntype: 'Map',
+        parammaps: { pastureId: parseInt(Cookies.get('pastureid')),  inputDatetime: '', startTime: '', stopTime: '', departmentId: '' }
+      },
+      isAssetinventorySee: [], isBasicsCard: [], isBasicsUpdate: [], isBasicsDel: [], isBasicsDel2: [], isBasic: [], isBasicSH: [], isBasicExamine: [],
+      requestParams: [
+        { 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
+    }
+  },
+  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_table_data()
+
+  },
+  methods: {
+    handleClick(){
+      // this.get_table_data()
+      this.activeName = 'second'
+    },
+        // 删除
+    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.getdataListParm.parammaps.pastureArr = this.findAllPasture.map(item => {
+          return item.name
+           })
+
+          this.getDepartDownList()
+        }
+      })
+    },
+    getDepartDownList() {
+      GetDataByName(this.getDepartParam).then(response => {
+        this.findAllDepart = response.data.list
+      })
+    },
+    get_table_data() {
+      this.listLoading = true
+      if (this.getdataListParm.parammaps.inputDatetime == null || this.getdataListParm.parammaps.inputDatetime == []) {
+        this.getdataListParm.parammaps.inputDatetime = ''
+        this.getdataListParm.parammaps.startTime = ''
+        this.getdataListParm.parammaps.stopTime = ''
+      } else {
+        this.getdataListParm.parammaps.startTime = parseTime(this.getdataListParm.parammaps.inputDatetime[0],'{y}-{m}')+'-01'
+        this.getdataListParm.parammaps.stopTime = parseTime(this.getdataListParm.parammaps.inputDatetime[1],'{y}-{m}')+ '-31'
+      }
+      // if( this.getdataListParm.parammaps.startTime == undefined){ this.getdataListParm.parammaps.startTime = ''}
+      // if( this.getdataListParm.parammaps.stopTime == undefined){ this.getdataListParm.parammaps.stopTime = ''}
+      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();
+      }
+
+      let url ='/authdata/stock/list?'
+      let data = 'offset=' + this.getdataListParm.offset
+                + '&pagecount=' + this.getdataListParm.pagecount
+                + '&pastureId=' + this.getdataListParm.parammaps.pastureId
+                + '&departmentId=' + this.getdataListParm.parammaps.departmentId
+                + '&startdate=' + this.getdataListParm.parammaps.startTime
+                + '&enddate=' + this.getdataListParm.parammaps.stopTime
+      getJson(url,data).then(response => {
+        console.log('table数据', response.data.list)
+        if (response.data.list !== null) {
+          this.list = response.data.list
+          this.pageNum = 1
+          this.pageSize = response.data.pagecount
+        } else {
+          this.list = []
+        }
+        this.total = response.data.count
+        setTimeout(() => {
+          this.listLoading = false
+        }, 100)
+        this.get_select_list()
+      })
+    },
+    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.stopTime = ''
+      } else {
+        this.getdataListParm.parammaps.startTime = this.getdataListParm.parammaps.inputDatetime[0]
+        this.getdataListParm.parammaps.stopTime = 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
+    },
+    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 })
+          }
+        })
+      })
+    },
+    handleDownloadTemp(){
+      const elecExcelDatas = [
+        {
+          tHeader: ['序号','牧场','部门', '资产编号', '资产名称', '设备内部编号', '实物入账日期', '计量单位', '规格', '资产数量', '资产原值', '实际盘点数', '盈亏量', '有无标签', '备注'  ],
+          filterVal: ['','','', '', '', '', '', '', '', '', '', '', '', '', ''],
+          tableDatas: [],
+          sheetName: '资产盘点模板'
+        }
+      ]
+      json2excel(elecExcelDatas, '资产盘点模板', true, 'xlsx')
+    },
+    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 == null || this.getdataListParm.parammaps.inputDatetime == []) {
+        this.getdataListParm.parammaps.inputDatetime = ''
+        this.getdataListParm.parammaps.startTime = ''
+        this.getdataListParm.parammaps.stopTime = ''
+      } else {
+        this.getdataListParm.parammaps.startTime = parseTime(this.getdataListParm.parammaps.inputDatetime[0],'{y}-{m}')+'-01'
+        this.getdataListParm.parammaps.stopTime = parseTime(this.getdataListParm.parammaps.inputDatetime[1],'{y}-{m}')+ '-31'
+      }
+      if( this.getdataListParm.parammaps.departmentId == undefined){ this.getdataListParm.parammaps.departmentId = ''}
+      let url ='/authdata/stock/list?'
+      let data = 'offset=' + this.getdataListParm.offset
+                + '&pagecount='+9999999
+                + '&pastureId=' + this.getdataListParm.parammaps.pastureId
+                + '&departmentId=' + this.getdataListParm.parammaps.departmentId
+                + '&startdate=' + this.getdataListParm.parammaps.startTime
+                + '&enddate=' + this.getdataListParm.parammaps.stopTime
+      getJson(url,data).then(response => {
+        var downLoadList = response.data.list
+        if (response.data.list !== '') {
+          this.percentage = 99
+          setTimeout(() => {
+            this.isPercentage = false
+          }, 2000)
+        }
+        const elecExcelDatas = [
+          {
+            tHeader: ['牧场','部门', '资产编号', '资产名称', '设备内部编号', '实物入账日期', '计量单位', '规格', '资产数量', '资产原值', '实际盘点数', '盈亏量', '有无标签','导入日期','盘点日期','盘点人', '备注'],
+            filterVal: ['pastureName','departmentName', 'eqCode', 'eqName', 'assetCode', 'rzdate', 'unit', 'specification', 'quantity', 'yuanzhi', 'count', 'profit', 'tag', 'importdate', 'inventorydate', 'checkTakerName', 'remark'],
+            tableDatas: downLoadList,
+            sheetName: '资产盘点'
+          }
+        ]
+        json2excel(elecExcelDatas, '资产盘点', true, 'xlsx')
+      })
+    },
+    // 导入
+     beforeImportExcel(file) {
+      const isLt2M = file.size / 1024 / 1024 < 10
+      if (!isLt2M) {
+        this.$message.error('上传文件大小不能超过 10MB!')
+      }
+      return isLt2M
+    },
+    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/custom/subscribe/index.vue

@@ -2590,7 +2590,7 @@ export default {
       requestParams: [
         { name: 'findAllProvider', offset: 0, pagecount: 0, params: [] },
         {
-          name: 'findAllMainPasture',
+          name: 'findAllPasture',
           offset: 0,
           pagecount: 0,
           returntype: 'Map',

+ 25 - 9
src/views/maintenance/repair/index.vue

@@ -434,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>
@@ -1741,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: '',  }
@@ -2440,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)
@@ -2626,7 +2636,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"
                       }
                   }
               ]
@@ -2783,7 +2795,7 @@ 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()
@@ -2967,6 +2979,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) {
@@ -3005,6 +3018,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)
@@ -3504,8 +3518,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)
@@ -3515,12 +3529,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)
@@ -3530,6 +3545,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) {

+ 21 - 8
src/views/maintenance/subcontractingMainten/tabPage/tab1.vue

@@ -471,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",
@@ -549,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,
@@ -736,8 +745,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)
@@ -747,12 +756,13 @@ export default {
       console.log('备件名称/设备内部编号模糊查询选中值', item.eqName)
       console.log('备件名称/设备内部编号模糊查询选中值所在行', row)
       this.$set(row, 'eqCode', item.eqCode)
+       this.$set(this.createTemp, '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)
@@ -762,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) {
@@ -924,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:""}]
 
     },
 
@@ -1043,7 +1054,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"
                       }
                   }
               ]

Some files were not shown because too many files changed in this diff