Browse Source

接口对接

renmy 3 years ago
parent
commit
3088cdc1b8

+ 103 - 55
src/views/device/allocation/allocationAdd.vue

@@ -67,7 +67,7 @@
 			<el-tab-pane label="选择批次" name="second">
 				<el-form :inline="true" @keyup.enter.native="searchHandle()">
 					<el-form-item label="批次号">
-						<el-input type="primary"></el-input>
+						<el-input type="primary" v-model="listQuery.batchNum"></el-input>
 					</el-form-item>
 					<el-form-item style="float: right;">
 						<el-button type="primary" @click="searchHandle()">查询</el-button>
@@ -75,7 +75,7 @@
 					</el-form-item>
 					<el-row>
 						<el-form-item>
-							<el-button type="primary" @click="searchHandle()">调拨</el-button>
+							<el-button type="primary" @click="addBatchHandle()">调拨</el-button>
 						</el-form-item>
 					</el-row>
 				</el-form>
@@ -88,44 +88,49 @@
 					border
 					fit
 					highlight-current-row
+					@selection-change="handleSelectionChange"
 				>
-					<el-table-column label="序号" type="index" width="50"></el-table-column>
+					<el-table-column
+						type="selection"
+						:selectable="checkSelectable"
+						width="55">
+					</el-table-column>
 
 					<el-table-column label="批次号">
 						<template slot-scope="scope">
-							{{ scope.row.intime }}
+							{{ scope.row.batch_num }}
 						</template>
 					</el-table-column>
 
 					<el-table-column label="未调拨" prop="plateNumber">
 						<template slot-scope="scope">
-							{{ scope.row.code }}
+							{{ scope.row.total -  scope.row.transfer}}
 						</template>
 					</el-table-column>
 
 					<el-table-column label="可调拨" prop="deptId">
 						<template slot-scope="scope">
-							{{ scope.row.total}}
+							{{ scope.row.total -  scope.row.transfer }}
 						</template>
 					</el-table-column>
 
 					<el-table-column label="不可调拨" prop="vin">
 						<template slot-scope="scope">
-							{{ scope.row.type }}
+							{{ scope.row.out_storage }}
 						</template>
 					</el-table-column>
 
 					<el-table-column label="入库时间" prop="vin">
 						<template slot-scope="scope">
-							{{ scope.row.type }}
+							{{ scope.row.deliver_time }}
 						</template>
 					</el-table-column>
 
-					<el-table-column align="center" label="查看明细" width="180">
+					<!-- <el-table-column align="center" label="查看明细" width="180">
 						<template slot-scope="scope">
 							<el-button @click="cerateHandle(scope.row.id, 1)" type="text">查看</el-button>
 						</template>
-					</el-table-column>
+					</el-table-column> -->
 				</el-table>
 
 				<el-pagination style="float: right; margin-top: 30px;" :current-page="listQuery.index" :page-sizes="[10, 20, 50, 100]" :page-size="listQuery.length" :total="total"
@@ -136,16 +141,19 @@
 		</el-tabs>
 
     <add-or-update v-if="addVisible" ref="addOrUpdate" @refreshDataList="getDatalist"></add-or-update>
+
+		<addBatch v-if="addBatchVisible" ref="addBatch" @refreshDataList="getDataBatchlist"></addBatch>
   </div>
 </template>
 
 <script>
 import { postJson, getSort } from '@/api/page'
-import { getInfoList } from '@/api/device/info'
+import { getInfoList, getBatchList } from '@/api/device/info'
 import AddOrUpdate from '@/views/device/allocation/allocation-modal.vue'
+import addBatch from '@/views/device/allocation/allocationBatch-modal.vue'
 
 export default {
-  components: { AddOrUpdate },
+  components: { AddOrUpdate, addBatch },
   data() {
     return {
 			/**默认tab */
@@ -165,17 +173,37 @@ export default {
         type: undefined,
         sort: '',
 				sn: '',
+				batchNum: ''
       },
 			/**是否显示新增弹窗 */
 			addVisible: false,
-      /**是否显示批量导入弹窗 */
-      upVisible: false,
+      /**是否显示批量弹窗 */
+      addBatchVisible: false,
+			/**批量选中的数据列表 */
+			multipleSelection: [],
     }
   },
   created() {
     this.getDatalist()
   },
   methods: {
+		//打开批量调拨弹窗
+		addBatchHandle() {
+			if(this.multipleSelection.length === 0) return this.$message.warning("请选择电池")  
+			this.addBatchVisible = true
+			let numbers = []
+			this.multipleSelection.forEach(item => {
+				numbers.push(item.batch_num)
+			})
+			this.$nextTick(() => {
+				this.$refs.addBatch.init()
+				this.$refs.addBatch.title = '设备调拨'
+				this.$refs.addBatch.dataForm.batchNum = numbers
+				this.$refs.addBatch.number = 88
+				// this.$refs.addOrUpdate.packTitle = row.packTitle
+				// this.$refs.addOrUpdate.typeTitle = row.typeTitle
+			});
+		},
 		//返回上一页
     goBack() {
       this.$store.dispatch('tagsView/delView', this.$route)
@@ -184,16 +212,25 @@ export default {
 		/**tab页切换 */
 		handleClick(tab, event) {
 			this.activeName = tab.name
-			this.getDatalist()
+			if(tab.name === 'first') {
+				this.getDatalist()
+			} else {
+				this.getDataBatchlist()
+			}
 		},
 		//搜索
 		searchHandle() {
 			this.listQuery.index = 1
-			this.getDatalist()
+			if(this.activeName === 'first') {
+				this.getDatalist()
+			} else {
+				this.getDataBatchlist()
+			}
 		},
 		//获取列表数据
 		getDatalist() {
 			this.loading = true
+			this.data = []
 			getInfoList(this.listQuery).then(res => {
 				if (res.code === 200) {
           this.data = res.data
@@ -206,35 +243,58 @@ export default {
 			})
 		},
 
-		// getDatalist1() {
-		// 	this.loading = true
-		// 	transferBatch(this.listQuery).then(res => {
-		// 		if (res.code === 200) {
-    //       this.data = res.data
-    //       this.total = res.total
-    //       this.loading = false
-    //     } else {
-    //       this.loading = false
-    //       return this.$message.error(res.message)
-    //     }
-		// 	})
-		// },
+		getDataBatchlist() {
+			this.loading = true
+			this.data = []
+			getBatchList(this.listQuery).then(res => {
+				if (res.code === 200) {
+          this.data = res.data
+          this.total = res.total
+          this.loading = false
+        } else {
+          this.loading = false
+          return this.$message.error(res.message)
+        }
+			})
+		},
 
 		//重置
 		resetForm() {
-
+			this.listQuery = {
+        index: 1,
+        length: 20,
+        importance: undefined,
+        title: undefined,
+        type: undefined,
+        sort: '',
+				sn: '',
+				batchNum: ''
+      }
+			if(this.activeName === 'first') {
+				this.getDatalist()
+			} else {
+				this.getDataBatchlist()
+			}
 		},
 
 		// 分页, 每页条数
     pageSizeChangeHandle (val) {
       this.listQuery.index = 1
       this.listQuery.length = val
-      this.getDatalist()
+			if(this.activeName === 'first') {
+				this.getDatalist()
+			} else {
+				this.getDataBatchlist()
+			}
     },
     // 分页, 当前页
     pageCurrentChangeHandle (val) {
       this.listQuery.index = val
-      this.getDatalist()
+			if(this.activeName === 'first') {
+				this.getDatalist()
+			} else {
+				this.getDataBatchlist()
+			}
     },
 
 		//打开新增弹窗
@@ -268,30 +328,18 @@ export default {
       })
     },
 
+		/**批量选择表格数据 */
+		handleSelectionChange(val) {
+			this.multipleSelection = val
+		},
 
-    fetchData() {
-      this.page.loading = false
-      postJson('/api/v1/carinfo/pageQuery', this.page.param).then(response => {
-        if (response.code === 200) {
-          this.page.data = response.data
-          this.page.total = response.total
-          this.page.loading = false
-        }
-      })
-    },
-
-    del(val) {
-      this.$confirm('此操作将删除该数据, 是否继续?', '提示', {
-        confirmButtonText: '确定',
-        cancelButtonText: '取消',
-        type: 'warning'
-      }).then(() => {
-        postJson('/api/v1/carinfo/delete', { id: val }).then(response => {
-          if (response.code === 200) {
-            this.getDatalist()
-          }
-        })
-      })
+		/**确认哪些行禁止选择 */
+    checkSelectable(row) {
+      if (row.total -  row.transfer > 0) {
+        return true
+      } else {
+        return false
+      }
     }
   }
 }

+ 161 - 0
src/views/device/allocation/allocationBatch-modal.vue

@@ -0,0 +1,161 @@
+<template>
+  <el-dialog :visible.sync="visible" :title="title" :close-on-click-modal="false" :close-on-press-escape="false">
+    <el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataFormSubmitHandle()" :label-width="'120px'">
+			<el-row>
+				<el-col :span="12">
+					<el-form-item label="设备SN">
+						<span>{{number}}</span>
+					</el-form-item>
+				</el-col>
+				<el-col :span="12">
+					<el-form-item label="厂家">
+						<span>{{packTitle || ''}}</span>
+					</el-form-item>
+				</el-col>
+			</el-row>
+			<el-row>
+				<el-col :span="12">
+					<el-form-item label="型号">
+						<span>磷酸铁锂6060</span>
+					</el-form-item>
+				</el-col>
+				<el-col :span="12">
+					<el-form-item label="类型">
+						<span>{{typeTitle || ''}}</span>
+					</el-form-item>
+				</el-col>
+			</el-row>
+			<el-form-item label="设备类型" prop="deviceType">
+				<el-select v-model="dataForm.deviceType">
+					<el-option v-for="(item, index) in option" :key="index" :label="item.label" :value="item.value"></el-option>
+				</el-select>
+			</el-form-item>
+			<el-form-item label="设备用途" prop="usedArr">
+				<el-checkbox-group v-model="dataForm.usedArr" @change="usedChange">
+					<el-checkbox v-for="(item, index) in usedOption" :key="index" :label="item.value">{{item.label}}</el-checkbox>
+				</el-checkbox-group>
+			</el-form-item>
+			<el-form-item label="设备说明" prop="describeArr">
+				<el-checkbox-group v-model="dataForm.describeArr" @change="disChange">
+					<el-checkbox v-for="(item, index) in disdOption" :key="index" :label="item.value">{{item.label}}</el-checkbox>
+				</el-checkbox-group>
+			</el-form-item>
+			<el-form-item label="客户" prop="customId">
+				<el-select v-model="dataForm.customId">
+					<el-option v-for="(item, index) in cusOption" :key="index" :label="item.label" :value="item.value"></el-option>
+				</el-select>
+			</el-form-item>
+    </el-form>
+    <template slot="footer">
+			<el-button type="primary" v-if="type !== 1" @click="dataFormSubmitHandle()">确认</el-button>
+      <el-button @click="visible = false">取消</el-button>
+    </template>
+  </el-dialog>
+</template>
+
+<script>
+import debounce from 'lodash/debounce'
+
+import { transfer } from '@/api/device/allocation'
+export default {
+  data () {
+    return {
+			/**是否显示弹窗 */
+      visible: false,
+			/**弹窗标题 */
+			title: '',
+			/**区分打开弹窗操作类型 null:新增,1:查看,2:修改 */
+			type: null,
+			/**区分弹窗交互类型 first:产品类型代码,second:PACK制造商简称,third:电芯厂家名称,fourth:产品规格代码,fifth:产品扩展代码 */
+			activeName: '',
+			/**提交表单对象 */
+      dataForm: {
+        id: '',
+				deviceType: '',
+				usedArr: [],
+				used: '',
+				describeArr: [],
+				describe: '',
+				customId: '',
+				batchNum: []
+      },
+			packTitle: '',
+			typeTitle: '',
+      number: 0,
+			option: [
+				{label: '动力电池', value: '1'},
+				{label: '储能电池', value: '2'}
+			],
+			usedOption: [
+				{label: '智慧运营', value: '1'},
+				{label: '智慧运维2', value: '2'},
+			],
+			disdOption: [
+				{label: '运营设备', value: '1'},
+				{label: '备件设备', value: '2'},
+			],
+			cusOption: [
+				{label: '骑享科技', value: '1'}
+			]
+    }
+  },
+  computed: {
+    dataRule () {
+      return {
+				deviceType: [
+					{ required: true, message: '设备类型不能为空', trigger: 'change' }
+				],
+				customId: [
+					{ required: true, message: '客户不能为空', trigger: 'change' }
+				],
+				usedArr: [
+					{ required: true, message: '设备用途不能为空', trigger: 'change' }
+				],
+				describeArr: [
+					{ required: true, message: '设备说明不能为空', trigger: 'change' }
+				]
+      }
+    }
+  },
+  methods: {
+    init () {
+      this.visible = true
+      this.$nextTick(() => {
+				this.$refs['dataForm'].resetFields()
+        
+      })
+    },
+
+		usedChange(value) {
+			this.dataForm.used = value.join(',')
+		},
+
+		disChange(value) {
+			this.dataForm.describe = value.join(',')
+		},
+    
+    // 表单提交
+    dataFormSubmitHandle: debounce(function () {
+      this.$refs['dataForm'].validate((valid) => {
+        if (!valid) {
+          return false
+        }
+        transfer(this.dataForm).then(res => {
+          if (res.code !== 200) {
+            return this.$message.error(res.msg)
+          }
+          this.$message({
+            message: '操作成功',
+            type: 'success',
+            duration: 500,
+            onClose: () => {
+              this.visible = false
+              this.$emit('refreshDataList')
+            }
+          })
+        }).catch(() => {})
+      })
+    }, 1000, { 'leading': true, 'trailing': false })
+  }
+}
+</script>

+ 9 - 6
src/views/device/allocation/details.vue

@@ -106,7 +106,7 @@ export default {
         imei: '',
         status: null,
         sn: '',
-        sort: '+id'
+        sort: ''
       }
     }
   },
@@ -125,16 +125,19 @@ export default {
     },
     //重置
     resetForm() {
-      listQuery = {
-        page: 1,
-        limit: 20,
+      debugger
+      this.listQuery = {
+        index: 1,
+        length: 20,
         importance: undefined,
+        batchNum: this.listQuery.batchNum,/**批次Id */
         imei: '',
         status: null,
         sn: '',
-        sort: '+id'
+        sort: ''
       }
-      this.searchHandle()
+      debugger
+      this.getDataList()
     },
 		/**获取列表数据 */
 		getDataList() {

+ 14 - 17
src/views/device/allocation/index.vue

@@ -7,20 +7,30 @@
 
 		<el-form :inline="true" :model="listQuery" @keyup.enter.native="searchHandle()">
 			<el-row>
-				<el-col :span="8">
+				<el-col :span="5">
 					<el-form-item label="设备SN">
 						<el-input v-model="listQuery.sn" placeholder="请输入设备SN" clearable></el-input>
 					</el-form-item>
 				</el-col>
-				
-				<el-col :span="8">
+				<el-col :span="5">
 					<el-form-item label="出库类型">
 						<el-select v-model="listQuery.type">
               <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"></el-option>
             </el-select> 
 					</el-form-item>
 				</el-col>
-				<el-col :span="8">
+        <el-col :span="9">
+					<el-form-item label="调拨时间">
+						<el-date-picker
+              v-model="listQuery.time"
+              type="datetimerange"
+              range-separator="至"
+              start-placeholder="开始日期"
+              end-placeholder="结束日期">
+            </el-date-picker>
+					</el-form-item>
+				</el-col>
+				<el-col :span="5">
 					<div style="float: right;">
 						<el-form-item>
 							<el-button type="primary" @click="searchHandle()">搜索</el-button>
@@ -31,19 +41,6 @@
 					</div>
 				</el-col>
 			</el-row>
-      <el-row>
-        <el-col :span="12">
-					<el-form-item label="出库时间">
-						<el-date-picker
-              v-model="listQuery.time"
-              type="datetimerange"
-              range-separator="至"
-              start-placeholder="开始日期"
-              end-placeholder="结束日期">
-            </el-date-picker>
-					</el-form-item>
-				</el-col>
-      </el-row>
 			<el-row>
 				<el-form-item>
 					<el-button type="primary" @click="gotoAddHandle()">新增调拨</el-button>

+ 15 - 14
src/views/device/delivery/index.vue

@@ -7,20 +7,31 @@
 
 		<el-form :inline="true" :model="listQuery" @keyup.enter.native="searchHandle()">
 			<el-row>
-				<el-col :span="8">
+				<el-col :span="5">
 					<el-form-item label="设备SN">
 						<el-input v-model="listQuery.sn" placeholder="请输入设备SN" clearable></el-input>
 					</el-form-item>
 				</el-col>
 				
-				<el-col :span="8">
+				<el-col :span="5">
 					<el-form-item label="出库类型">
 						<el-select v-model="listQuery.type">
               <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"></el-option>
             </el-select> 
 					</el-form-item>
 				</el-col>
-				<el-col :span="8">
+        <el-col :span="9">
+					<el-form-item label="出库时间">
+						<el-date-picker
+              v-model="listQuery.time"
+              type="datetimerange"
+              range-separator="至"
+              start-placeholder="开始日期"
+              end-placeholder="结束日期">
+            </el-date-picker>
+					</el-form-item>
+				</el-col>
+				<el-col :span="5">
 					<div style="float: right;">
 						<el-form-item>
 							<el-button type="primary" @click="searchHandle()">搜索</el-button>
@@ -32,17 +43,7 @@
 				</el-col>
 			</el-row>
       <el-row>
-        <el-col :span="12">
-					<el-form-item label="出库时间">
-						<el-date-picker
-              v-model="listQuery.time"
-              type="datetimerange"
-              range-separator="至"
-              start-placeholder="开始日期"
-              end-placeholder="结束日期">
-            </el-date-picker>
-					</el-form-item>
-				</el-col>
+        
       </el-row>
 			<el-row>
 				<el-form-item>

+ 18 - 9
src/views/device/info/details.vue

@@ -19,7 +19,7 @@
 				</el-col>
 				<el-col :span="6">
 					<el-form-item label="状态">
-						<el-select v-model="listQuery.status">
+						<el-select v-model="listQuery.statusStr" @change="changeHandle">
               <el-option v-for="item in statusOptins" :key="item.value" :label="item.label" :value="item.value"></el-option>
             </el-select>
 					</el-form-item>
@@ -133,15 +133,19 @@ export default {
         importance: undefined,
         batchNum: '',/**批次Id */
         imei: '',
-        status: null,
+        status: [],
         sn: '',
-        sort: '+id'
+        sort: '',
+        statusStr: null,
       },
       //状态选项
       statusOptins: [
         {label: '全部', value: null},
         {label: '已入库', value: 1},
-        {label: '未入库', value: 2}
+        {label: '未入库', value: 0},
+        {label: '已调拨', value: 2},
+        {label: '已出库', value: 3},
+        {label: '已处置', value: 4},
       ],
       //电池总量
       totalData: 0,
@@ -166,6 +170,10 @@ export default {
     this.getDataList()
   },
   methods: {
+    //选择状态
+    changeHandle() {
+      this.listQuery.status.push(this.listQuery.statusStr)
+    },
     //搜索
     searchHandle() {
       this.listQuery.index = 1
@@ -173,16 +181,17 @@ export default {
     },
     //重置
     resetForm() {
-      listQuery = {
-        page: 1,
-        limit: 20,
+      this.listQuery = {
+        index: 1,
+        length: 20,
         importance: undefined,
+        batchNum: this.listQuery.batchNum,/**批次Id */
         imei: '',
         status: null,
         sn: '',
-        sort: '+id'
+        sort: ''
       }
-      this.searchHandle()
+      this.getDataList()
     },
 		/**获取列表数据 */
 		getDataList() {

+ 0 - 10
src/views/device/info/index.vue

@@ -23,16 +23,6 @@
             </el-date-picker>
 					</el-form-item>
 				</el-col>
-				<!-- <el-col :span="6">
-					<el-form-item label="设备SN">
-						<el-input v-model="listQuery.sn" placeholder="请输入设备SN" clearable></el-input>
-					</el-form-item>
-				</el-col>
-				<el-col :span="6">
-					<el-form-item label="设备IMEI">
-						<el-input v-model="listQuery.imei" placeholder="请输入设备IMEI" clearable></el-input>
-					</el-form-item>
-				</el-col> -->
 				<el-col :span="6">
 					<div style="float: right;">
 						<el-form-item>

+ 16 - 19
src/views/device/storage/index.vue

@@ -7,39 +7,27 @@
 
 		<el-form :inline="true" :model="listQuery" @keyup.enter.native="searchHandle()">
 			<el-row>
-				<el-col :span="6">
+				<el-col :span="5">
 					<el-form-item label="设备SN">
 						<el-input v-model="listQuery.sn" placeholder="请输入设备SN" clearable></el-input>
 					</el-form-item>
 				</el-col>
-				<el-col :span="6">
+				<el-col :span="5">
           <el-form-item label="自检">
             <el-select v-model="listQuery.status">
               <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"></el-option>
             </el-select>  
 					</el-form-item>
 				</el-col>
-				<el-col :span="6">
+				<!-- <el-col :span="6">
 					<el-form-item label="状态">
             <el-select v-model="listQuery.status">
               <el-option v-for="item in statusOptins" :key="item.value" :label="item.label" :value="item.value"></el-option>
             </el-select>  
 					</el-form-item>
-				</el-col>
-				<el-col :span="6">
-					<div style="float: right;">
-						<el-form-item>
-							<el-button type="primary" @click="searchHandle()">搜索</el-button>
-						</el-form-item>
-						<el-form-item>
-							<el-button @click="resetForm()">重置</el-button>
-						</el-form-item>
-					</div>
-				</el-col>
-			</el-row>
-			<el-row>
-        <el-col :span="12">
-					<el-form-item label="入库时间">
+				</el-col> -->
+        <el-col :span="9">
+          <el-form-item label="入库时间">
 						<el-date-picker
               v-model="listQuery.time"
               type="datetimerange"
@@ -48,8 +36,17 @@
               end-placeholder="结束日期">
             </el-date-picker>
 					</el-form-item>
+        </el-col>
+				<el-col :span="5">
+					<div style="float: right;">
+						<el-form-item>
+							<el-button type="primary" @click="searchHandle()">搜索</el-button>
+						</el-form-item>
+						<el-form-item>
+							<el-button @click="resetForm()">重置</el-button>
+						</el-form-item>
+					</div>
 				</el-col>
-				
 			</el-row>
 			<el-row>
 				<el-form-item>