123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482 |
- // 排队开始
- <template>
- <div class="sale">
- <div class="top">
- <el-form :inline="true" style="margin-top: 1rem;">
- <el-form-item>
- <label class="el-form-item__label" style="width: auto;">车牌号</label>
- </el-form-item>
- <el-form-item>
- <el-input v-model="capacityNo"></el-input>
- </el-form-item>
- <el-form-item>
- <el-button
- type="primary"
- class="btn"
- @click="onclick"
- style="margin-left: 4px;"
- clearable
- ><i class="el-icon-search"></i>查询</el-button
- >
- </el-form-item>
- <el-form-item>
- <el-button
- type="primary"
- class="btn"
- @click="onclickMaterial"
- style="margin-left: 4px;"
- clearable
- ><i class="el-icon-search"></i>查询物资</el-button
- >
- </el-form-item>
- <el-form-item
- ><el-button type="primary" class="btn" @click="allow">
- <i class="el-icon-d-arrow-right"></i>放行
- </el-button></el-form-item
- >
- </el-form>
- </div>
- <!-- 物资选择模态框 -->
- <el-drawer
- title="选择物资信息"
- :visible.sync="table1"
- direction="rtl"
- size="90%"
- :show-close="true"
- >
- <el-form :inline="true" style="margin-top: 0.5rem;">
- <el-form-item>
- <label class="el-form-item__label" style="width: auto;"
- >物资名称</label
- >
- </el-form-item>
- <el-form-item>
- <el-input
- placeholder="请输入内容"
- v-model="materialNameText"
- clearable
- ></el-input>
- </el-form-item>
- <el-form-item>
- <label class="el-form-item__label" style="width: auto;">规格</label>
- </el-form-item>
- <el-form-item>
- <el-input
- placeholder="请输入内容"
- v-model="materialSpecificationText"
- clearable
- ><template slot="prepend">Φ</template></el-input
- >
- </el-form-item>
- <el-button
- type="primary"
- class="btn"
- @click="onclickMaterial1"
- style="margin-left: 4px;"
- ><i class="el-icon-search"></i>查询</el-button
- >
- <el-button type="primary" @click="makeSureMaterial"
- ><i class="el-icon-check"></i>确定</el-button
- >
- </el-form>
- <div class="tablecls">
- <!-- 查询所有的物资 -->
- <dilTable
- v-bind.sync="optionMa"
- @selection-change="selectionChange2"
- @rowDbClick="rowDbClick"
- >
- </dilTable>
- </div>
- </el-drawer>
- <div class="tabs">
- <el-tabs v-model="activeName" type="card" @tab-click="handleClick">
- <el-tab-pane label="单拼车辆排队链表" name="first">
- <el-table
- :data="tableData1"
- border
- style="width: 100%; margin-top: 20px"
- @selection-change="handleSelectionChange"
- max-height="500px"
- >
- <el-table-column type="selection" width="55"></el-table-column>
- <el-table-column type="index" width="50"> </el-table-column>
- <el-table-column prop="capacityNumber" label="车牌号" fit>
- </el-table-column>
- <el-table-column prop="resultStartTime" label="排队开始时间">
- </el-table-column>
- <el-table-column
- prop="listNodeOrder"
- label="序号"
- ></el-table-column>
- <el-table-column prop="materialName" label="物资名称">
- </el-table-column>
- <el-table-column prop="materialSpecification" label="物资规格">
- </el-table-column>
- <el-table-column prop="materialModel" label="物资型号">
- </el-table-column>
- <el-table-column prop="materialNumber" label="物资件数">
- </el-table-column>
- <el-table-column prop="driverTel" label="司机电话号码">
- </el-table-column>
- <el-table-column prop="sureTime" label="可进厂确认时间">
- </el-table-column>
- <el-table-column prop="gatepostName" label="进厂门岗">
- </el-table-column>
- <el-table-column label="装货点" width="100">
- <template slot-scope="scope">
- <el-select size="mini" v-model="scope.row.id">
- <el-option
- v-for="item in option"
- :key="item.id"
- :label="item.value"
- :value="item.id"
- >
- </el-option>
- </el-select>
- </template>
- </el-table-column>
- <el-table-column fixed="right" label="操作" width="100">
- <template slot-scope="scope">
- <el-button type="text" size="mini" @click="updateBill(scope)">
- 修改提货单
- </el-button>
- </template>
- </el-table-column>
- </el-table>
- </el-tab-pane>
- <el-tab-pane label="多拼车辆排队链表" name="second">
- <el-table
- :data="tableData"
- :span-method="objectSpanMethod"
- border
- style="width: 100%; margin-top: 20px"
- @selection-change="handleSelectionChange"
- max-height="500px"
- >
- <el-table-column type="selection" width="55"></el-table-column>
- <el-table-column prop="capacityNumber" label="车牌号" fit>
- </el-table-column>
- <el-table-column prop="grid" label="拼数" fit> </el-table-column>
- <el-table-column prop="resultStartTime" label="排队开始时间">
- </el-table-column>
- <el-table-column
- prop="listNodeOrder"
- label="序号"
- ></el-table-column>
- <el-table-column prop="materialName" label="物资名称">
- </el-table-column>
- <el-table-column prop="materialSpecification" label="物资规格">
- </el-table-column>
- <el-table-column prop="materialModel" label="物资型号">
- </el-table-column>
- <el-table-column prop="materialNumber" label="物资件数">
- </el-table-column>
- <el-table-column prop="driverTel" label="司机电话号码">
- </el-table-column>
- <el-table-column prop="gatepostName" label="进厂门岗">
- </el-table-column>
- <el-table-column prop="sureTime" label="可进厂确认时间">
- </el-table-column>
- <el-table-column label="装货点" width="100">
- <template slot-scope="scope">
- <el-select size="mini" v-model="scope.row.id">
- <el-option
- v-for="item in option"
- :key="item.id"
- :label="item.value"
- :value="item.id"
- >
- </el-option>
- </el-select>
- </template>
- </el-table-column>
- <el-table-column fixed="right" label="操作" width="100">
- <template slot-scope="scope">
- <el-button type="text" size="mini" @click="updateBill(scope)">
- 修改提货单
- </el-button>
- </template>
- </el-table-column>
- </el-table>
- </el-tab-pane>
- </el-tabs>
- </div>
- </div>
- </template>
- <script>
- import { getCookie } from "@/utils/util.js";
- export default {
- data() {
- return {
- capacityNo: "",
- inputText: "",
- option1: {
- // 表格请求数据的地址
- requestUrl: "",
- selectionType: "select"
- },
- optionMa: {
- // 表格请求数据的地址
- requestUrl: "",
- // 控制显示多选列
- selectionType: "select"
- },
- activeName: "first",
- tableData: [],
- tableData1: [],
- //存放每一行记录的合并数
- spanArr: [],
- maplist: [],
- id: null,
- option: [],
- filterArr1: [],
- table1: false,
- //物资选中表格
- materialList: [],
- //物资选中暂存
- materialList1: [],
- //物资信息查询内容
- materialNameText: null,
- materialSpecificationText: null,
- materialModelText: null
- };
- },
- watch: {
- activeName() {}
- },
- mounted() {
- this.infomation();
- this.getSpellingArray();
- this.getNoSpellingArray();
- },
- methods: {
- rowDbClick(row) {
- this.materialList = [];
- this.materialList.push(row);
- this.makeSureMaterial();
- },
- //物资模态框查询
- onclickMaterial1() {
- this.optionMa.requestUrl =
- "/api/v1/uc/getSteelMaterial?apiId=244&materialNameText=" +
- this.materialNameText +
- "&materialSpecificationText=" +
- this.materialSpecificationText;
- },
- onclickMaterial() {
- this.table1 = true;
- this.optionMa.requestUrl =
- "/api/v1/uc/getSteelMaterial?apiId=244&i=" + new Date();
- console.log("dasd");
- },
- //返回选中的物资信息
- selectionChange2(selection) {
- this.materialList1 = [];
- this.materialList1 = selection;
- this.materialList = this.materialList.concat(this.materialList1);
- },
- makeSureMaterial() {
- console.log(this.materialList);
- var materialIdList = [];
- this.materialList.forEach(e => {
- if (materialIdList.indexOf(e.materialId) == -1) {
- materialIdList.push(e.materialId);
- }
- });
- let map = {
- materialList: materialIdList
- };
- this.materialList = [];
- this.materialList1 = [];
- if (this.activeName == "first") {
- this.axios
- .post("/api/v1/qms/getQueueListByQueueUp?isSpelling=0", map)
- .then(res => {
- this.tableData1 = res.data.data;
- });
- } else {
- this.axios
- .post("/api/v1/qms/getQueueListByQueueUp?apiId=473&isSpelling=1", map)
- .then(res => {
- this.tableData = res.data.data;
- this.getSpanArr(this.tableData);
- });
- }
- this.table1 = false;
- },
- infomation() {
- this.axios.get("/api/v1/uc/getSteelWarehouse").then(res => {
- console.log(res.data);
- this.option = res.data;
- });
- },
- //记录每一行的合并数
- getSpanArr(data) {
- //每次调用方法初始化
- this.spanArr = [];
- for (var i = 0; i < data.length; i++) {
- if (i === 0) {
- this.spanArr.push(1);
- this.pos = 0;
- } else {
- // 判断当前元素与上一个元素是否相同
- if (data[i].resultTotalId === data[i - 1].resultTotalId) {
- this.spanArr[this.pos] += 1;
- this.spanArr.push(0);
- } else {
- this.spanArr.push(1);
- this.pos = i;
- }
- }
- }
- },
- objectSpanMethod({ row, column, rowIndex, columnIndex }) {
- if (
- columnIndex === 0 ||
- columnIndex === 1 ||
- columnIndex === 2 ||
- columnIndex === 3 ||
- columnIndex === 4 ||
- columnIndex === 9 ||
- columnIndex === 10 ||
- columnIndex === 12
- ) {
- const _row = this.spanArr[rowIndex];
- const _col = _row > 0 ? 1 : 0;
- return {
- rowspan: _row,
- colspan: _col
- };
- }
- },
- handleClick() {
- if (this.activeName == "first") {
- this.getNoSpellingArray();
- } else {
- this.getSpellingArray();
- }
- },
- getNoSpellingArray() {
- this.axios
- .post("/api/v1/qms/getQueueListByQueueUp?isSpelling=0&i=" + new Date())
- .then(res => {
- this.tableData1 = res.data.data;
- });
- },
- getSpellingArray() {
- this.axios
- .post(
- "/api/v1/qms/getQueueListByQueueUp?apiId=473&isSpelling=1&i=" +
- new Date()
- )
- .then(res => {
- this.tableData = res.data.data;
- console.log(this.tableData);
- this.getSpanArr(this.tableData);
- });
- },
- onclick() {
- if (this.activeName == "first") {
- this.option1.requestUrl =
- "/api/v1/qms/getQueueListByQueueUp?apiId=473&isSpelling=0?capacityNumber=" +
- this.capacityNo +
- "&i=" +
- new Date();
- } else {
- this.axios
- .post(
- "/api/v1/qms/getQueueListByQueueUp?apiId=473&isSpelling=1&i=" +
- new Date() +
- "&capacityNumber=" +
- this.capacityNo
- )
- .then(res => {
- this.tableData = res.data.data;
- this.getSpanArr(this.tableData);
- });
- }
- },
- handleSelectionChange(selection) {
- this.maplist = [];
- this.maplist = selection;
- },
- updateBill(scope) {
- console.log(scope.row.capacityId);
- this.$router.push(
- `/editBill/${scope.row.capacityId}/${scope.row.capacityNumber}`
- );
- },
- filterArr(resultId) {
- console.log("fdhjsaj");
- this.filterArr1 = this.filterArr1.concat(
- this.tableData.filter(ele => ele.resultId == resultId)
- );
- },
- allow() {
- if (this.maplist.length == 0) {
- this.$message.error("请选择需要放行的车辆");
- return;
- }
- for (let i = 0; i < this.maplist.length; i++) {
- if (typeof this.maplist[i].id == "undefined") {
- this.$message.error("请选择装货点");
- return;
- }
- this.filterArr(this.maplist[i].resultId);
- }
- var filterArr2 = [];
- this.filterArr1.forEach(e => {
- if (filterArr2.indexOf(e) === -1) {
- filterArr2.push(e);
- }
- });
- let map = {
- ssoId: getCookie("userId"),
- mapList: filterArr2
- };
- if (this.activeName == "first") {
- map.mapList = this.maplist;
- }
- this.axios.post("/api/v1/qms/allowEnFactory", map).then(res => {
- if (res.data.code == "200") {
- this.$message.success("放行成功,等待进厂");
- this.getNoSpellingArray();
- this.getSpellingArray();
- }
- });
- }
- }
- };
- </script>
- <style lang="scss" scoped>
- .sale {
- .top {
- width: 100%;
- height: 80px;
- display: flex;
- align-items: center;
- padding-left: 40px;
- .el-form {
- display: flex;
- justify-content: center;
- align-items: center;
- .el-form-item__label {
- align-items: center;
- line-height: 80px;
- }
- }
- }
- .input {
- width: 250px;
- margin-right: 20px;
- }
- .tabs {
- margin-left: 20px;
- margin-top: 10px;
- .tabs /deep/ .el-tabs__nav {
- font-size: 40px;
- }
- }
- }
- </style>
|