<template> <section class="quote pagex"> <div class="quote-con"> <el-form :inline="true" :model="formInline" class="demo-form-inline"> <el-form-item label="报价型号"> <el-autocomplete @keyup.enter.native="onSubmit" v-model="formInline.goods_name" :trigger-on-focus="false" :fetch-suggestions="querySearchAsync" placeholder="请输入型号" @select="handleSelectGoodsName"></el-autocomplete> </el-form-item> <el-form-item label="品牌"> <el-autocomplete @keyup.enter.native="onSubmit" v-model="formInline.brand_name" :trigger-on-focus="false" :fetch-suggestions="querySearchAsync2" placeholder="请输入品牌" @select="handleSelectBrandName"></el-autocomplete> </el-form-item> <el-form-item label="状态"> <el-select v-model="formInline.status" placeholder="请选择"> <el-option label="比价中" value="1"></el-option> <el-option label="已选中" value="2"></el-option> <el-option label="已确认" value="3"></el-option> <el-option label="已成单" value="4"></el-option> <el-option label="已关闭" value="5"></el-option> </el-select> </el-form-item> <el-form-item label="最近报价时间"> <el-date-picker v-model="formInline.date" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期"></el-date-picker> </el-form-item> <el-form-item> <div @click="onSubmit" class="search-btn">搜索</div> </el-form-item> </el-form> <div class="btn-nav clr"> <div class="fl dcg" @click="exportChange">导出</div> <div class="fl dcg" @click="close">关闭</div> <div class="fl dcg delbtn" @click="del">删除</div> </div> <div class="data-box th-all"> <el-table :data="tableData" border style="width: 100%" @selection-change="handleSelectionChange"> <el-table-column fixed type="selection" width="40" align="center"></el-table-column> <el-table-column prop="goods_name" fixed="left" label="型号" width="200"> <template slot-scope="scope"> <div class="price-mores"> <el-tooltip effect="light" placement="bottom-start" popper-class="popper-class-box"> <div slot="content"> <p class="p-text row verCenter"> <em class="row">型号</em> <span class="row verCenter boxsiz">{{scope.row.goods_name}}</span> </p> <p class="p-text row verCenter"> <em class="row">品牌</em> <span class="row verCenter boxsiz">{{scope.row.brand_name}}</span> </p> <p class="p-text row verCenter"> <em class="row">数量</em> <span class="row verCenter boxsiz">{{scope.row.quote_number}}</span> </p> <p class="p-text row verCenter"> <em class="row">批次</em> <span class="row verCenter boxsiz">{{scope.row.batch}}</span> </p> <p class="p-text row verCenter"> <em class="row">交货日期</em> <span class="row verCenter boxsiz">{{scope.row.delivery_time}}</span> </p> </div> <div class="more-search-btn">{{scope.row.goods_name}}</div> </el-tooltip> </div> </template> </el-table-column> <el-table-column prop="brand_name" fixed="left" label="品牌" width="200"></el-table-column> <el-table-column prop="inquiry_sn" label="询价单号" width="200"></el-table-column> <el-table-column prop="quote_goods_name" label="报价型号" width="200"></el-table-column> <el-table-column prop="quote_brand_name" label="报价品牌" width="200"></el-table-column> <el-table-column prop="status" label="状态" width="100"> <template slot-scope="scope"> <span v-if="scope.row.status==1" class="f-green">比价中</span> <span v-else-if="scope.row.status==2" class="f-yellow1">已选中</span> <span v-else-if="scope.row.status==3">已确认</span> <span v-else-if="scope.row.status==4">已成单</span> <span v-else-if="scope.row.status==5" class="f-red1">已关闭</span> <span v-else-if="scope.row.status==9" class="f-red1">已删除</span> <span v-else-if="scope.row.status==-1" class="f-red1">已撤销</span> </template> </el-table-column> <el-table-column prop="expire_status_val" label="是否有效" width="100"></el-table-column> <el-table-column prop="quote_number" label="报价数量" width="100"></el-table-column> <el-table-column prop="price_origin" label="价格" width="200"> <template slot-scope="scope"> <span>{{scope.row.price_origin|floatZero}}</span> </template> </el-table-column> <el-table-column prop="currency_val" label="币种" width="100"></el-table-column> <el-table-column prop="tax_rate" label="税率" width="100"></el-table-column> <el-table-column prop="batch" label="批次" width="100"></el-table-column> <el-table-column prop="delivery_time" label="货期" width="100"></el-table-column> <el-table-column prop="mpq" label="最小包装数量" width="150"></el-table-column> <el-table-column prop="moq" label="起订量" width="100"></el-table-column> <el-table-column prop="price_other" label="其他费用" width="100"> <template slot-scope="scope"> <span>{{scope.row.price_other|floatZero}}</span> </template> </el-table-column> <el-table-column prop="expire_time" label="报价有效期" width="200"></el-table-column> <el-table-column prop="remark" label="备注" width="200"></el-table-column> <el-table-column prop="create_time" label="最近报价时间" width="200"></el-table-column> </el-table> <el-pagination layout="prev, pager, next,jumper" :page-size="limit" :total="total" @current-change="handleCurrentChange" :current-page="page"></el-pagination> </div> </div> <Menu/> </section> </template> <script> import Vue from 'vue'; import Menu from "@/components/menu.vue"; import { Form, FormItem, Select, Option, Input, DatePicker, Button, Dropdown, DropdownMenu, DropdownItem, Table, TableColumn, MessageBox, Message, Dialog, Pagination, Autocomplete, Tooltip } from 'element-ui' import { NODE_ENVS } from "../../ajax"; import Tool from '../../tool' Vue.prototype.$message=Message Vue.use(Button).use(Form).use(Select).use(Option).use(Input).use(FormItem).use(Dialog).use(Autocomplete).use(Tooltip); Vue.use(DatePicker).use(Dropdown).use(DropdownMenu).use(DropdownItem).use(TableColumn).use(Table).use(Pagination); export default { name: "inquire", data() { return { total: 0, limit: 10, page: 1, tableData: [], multipleSelection: [], formInline: { goods_name: '', brand_id: '', brand_name:"", date: '', status: '' } }; }, watch: { 'formInline.date'(val){ if(!val){ this.formInline.date=[] } }, 'formInline.brand_name'(val){ if(!val){ this.formInline.brand_id="" return } var arr_=[] this.brandList=this.brandList||[] for(var i=0;i<this.brandList.length;i++){ arr_.push(this.brandList[i].value) } if(arr_.indexOf(val)==-1){ this.formInline.brand_id="" } } }, created() { this.getData(); }, computed: {}, methods: { getData() { console.log(this.formInline) this.$http('get', "/api/quote/getlist", { page: this.page, limit: this.limit, goods_name: this.formInline.goods_name, brand_id: this.formInline.brand_id, brand_name: this.formInline.brand_name, start_time: this.formInline.date ? this.formInline.date[0] : '', end_time: this.formInline.date ? this.formInline.date[1] : '', status: this.formInline.status }).then(res => { if (res.err_code === 0) { this.tableData = res.data.list || []; this.total = res.data.total; } else { this.$message(res.err_msg); } }) }, onSubmit() { this.page = 1; this.getData(); }, handleSelectionChange(val) { this.multipleSelection = val; }, handleCurrentChange(val) { this.page = val; this.getData(); }, exportChange() { var arr = []; if (this.multipleSelection.length == 0) { this.$message("请至少选择一条数据"); return; } for (var i = 0; i < this.multipleSelection.length; i++) { arr.push(this.multipleSelection[i]['id']) } window.location.href =NODE_ENVS+ '/api/quote/export?ids=' + arr.join(",")+'&token='+Tool.getCookie('token') ;; }, close() { var arr = []; if (this.multipleSelection.length == 0) { this.$message("请至少选择一条数据"); return; } for (var i = 0; i < this.multipleSelection.length; i++) { arr.push(this.multipleSelection[i]['id']) } this.$http('post', "/api/quote/close", { ids: arr.join(",") }).then(res => { if (res.err_code === 0) { this.$message("关闭成功"); this.getData(); } else { this.$message(res.err_msg); } }) }, del() { var arr = []; if (this.multipleSelection.length == 0) { this.$message("请至少选择一条数据"); return; } for (var i = 0; i < this.multipleSelection.length; i++) { arr.push(this.multipleSelection[i]['id']) } MessageBox.confirm('确认到删除当前勾选数据吗?', { type: 'error' }).then(() => { this.$http('post', "/api/quote/delete", { ids: arr.join(",") }).then(res => { if (res.err_code === 0) { this.$message("删除成功"); this.getData(); } else { this.$message(res.err_msg); } }) }).catch(()=>{ }) }, handleSelectGoodsName(item) { this.formInline.goods_name = item.value }, handleSelectBrandName(item) { this.formInline.brand_name = item.value; this.formInline.brand_id = item.brand_id; }, querySearchAsync(queryString, cb) { this.$http('get', "/api/search/getspu", { spu_name: this.formInline.goods_name }).then(res => { if (res.err_code == 0) { var arrlist_ = res.data || []; var arr_ = [] for (var i = 0; i < arrlist_.length; i++) { arr_.push({value: arrlist_[i]['spu_name']}) } cb(arr_); } }) }, querySearchAsync2(queryString, cb) { this.$http('get', "/api/search/getbrand", { brand_name: this.formInline.brand_name, type:2 }).then(res => { if (res.err_code == 0) { var arrlist_ = res.data || []; this.brandList = [] this.formInline.brand_id = "" for (var i = 0; i < arrlist_.length; i++) { this.brandList.push({value: arrlist_[i]['brand_name'], brand_id: arrlist_[i]['brand_id']}) } cb(this.brandList); } }) } }, components: { Menu } }; </script> <style scoped> @import "../../assets/css/list/quote.min.css"; </style>